上海ACM32F070开发板评测,开箱,环境搭建,点亮LED灯,让LED闪烁
[复制链接]
初次接触航芯的产品,感觉航芯还是非常的用心的,ACM32F070开发板和触控功能评估板整体被放置在一个透明的塑料盒子中,还有泡胶棉在上面防止压坏LCD屏,在整体上就给人一种精致、美观的感觉,用心在做事情。
1.开箱的整体效果:
里面有航芯的介绍,地址,相关的公众号,交流群。
这个对老司机没有什么用,对新玩的朋友有一定的帮助。
2、搭建环境:
先来个PACK的固件库文件
再打开KEIL新建工程,-----找到ACM32f070rbt7,再点OK。
工程建好后,再加入相关的文件
这一步很关键,我刚开始用KEIL的时候也经常弄错,首先找到Debug-----再选择CMSIS-DAP Debugger----再点settings----进去如果接入开发板会找到相关的设备,如果这里找不到,请先安装驱动----再在FlashDownload这个界面勾选Reset and Run,并在下面会显示ACM32F0x0 128KB Flash的相关字,如果没有那就是在第一步建工程师没有弄对,可以在建工程那个文件下再选择驱动Select Device for Targer 'Project。
这些都设置好后,再新建C文件和H文件,最后再添加相关的文件路径
3、点亮PD3 IO的LED
上程序:
初始化
void System_Init(void)
{
SCU->RCR |= SCU_RCR_REMAP_EN;
System_Set_Buzzer_Divider(80, FUNC_DISABLE); // disable clock out
/* Configure the Vector Table location add offset address ------------------*/
#ifdef VECT_TAB_SRAM
/* Vector Table Relocation in Internal SRAM */
SCU->VECTOROFFSET = SRAM_BASE | VECT_TAB_OFFSET | SCU_VECTOROFFSET_VOFFSETEN;
#else
/* Vector Table Relocation in Internal FLASH */
SCU->VECTOROFFSET = EFLASH_BASE | VECT_TAB_OFFSET | SCU_VECTOROFFSET_VOFFSETEN;
#endif
/* Initialize the system clock */
if (false == System_Clock_Init(DEFAULT_SYSTEM_CLOCK))
{
while(1);
}
#ifdef HAL_SYSTICK_ENABLED // To activate macro in ACM32Fxx_HAL.h
SysTick_Handler_Callback = NULL;
System_SysTick_Init();
#endif
}
IO的写入函数
void HAL_GPIO_WritePin(enum_GPIOx_t fe_GPIO, uint32_t fu32_GPIO_Pin, enum_PinState_t fe_PinState)
{
GPIO_TypeDef *GPIOx;
#if (USE_FULL_ASSERT == 1)
/* Check the parameters */
if (!IS_GPIO_ALL_INSTANCE(fe_GPIO)) return;
if (!IS_GPIO_PIN(fu32_GPIO_Pin)) return;
if (!IS_GPIO_PIN_ACTION(fe_PinState)) return;
#endif
switch (fe_GPIO)
{
case GPIOA:
case GPIOB:
{
GPIOx = GPIOAB;
}break;
case GPIOC:
case GPIOD:
{
GPIOx = GPIOCD;
}break;
default: break;
}
if (fe_GPIO == GPIOB || fe_GPIO == GPIOD )
{
fu32_GPIO_Pin <<= 16;
}
if (GPIO_PIN_SET == fe_PinState)
{
GPIOx->ODATA |= fu32_GPIO_Pin;
}
else
{
GPIOx->ODATA &= ~fu32_GPIO_Pin;
}
}
主函数中LED点亮语句:
HAL_GPIO_WritePin(GPIOD, GPIO_PIN_3, GPIO_PIN_SET);
点亮的效果:
4.让LED闪烁:
程序:
case LED_BLINK: // use PA1 to drive LED
{
printfS("This is LED Blinking TEST \r\n");
GPIOD_Handle.Pin = GPIO_PIN_3;
GPIOD_Handle.Mode = GPIO_MODE_OUTPUT_PP;
GPIOD_Handle.Pull = GPIO_PULLUP;
GPIOD_Handle.Alternate = GPIO_FUNCTION_0;
HAL_GPIO_Init(GPIOD, &GPIOD_Handle);
while (1)
{
HAL_GPIO_WritePin(GPIOD, GPIO_PIN_3, GPIO_PIN_SET);
System_Delay_MS(500);
HAL_GPIO_WritePin(GPIOD, GPIO_PIN_3, GPIO_PIN_CLEAR);
System_Delay_MS(500);
}
}
主函数闪烁调用语句:以500MS闪烁
APP_GPIO_Test(LED_BLINK);
LED闪烁效果
95954956482439284b25b7d9ee67e1af
|