第三章 点LED测试
前言
既然是替换,那就是要AT32F403A直接去跑stm32的代码更能说明可行性。此文章是使用AT32F403A的开发板去跑stm32f103的LED灯的代码的测试情况。
硬件
硬件方面使用的是雅特力官方发布的AT32F403A开发板,开发板上面还板载了一个ATLINK_EZ的仿真器,ATLINK_EZ还有一个串口的功能,硬件上是接到了MCU的串口1上。这个ATLINK_EZ可以掰下来使用。
如下图是开发板pcb图(左边的就是ATLINK_EZ):
如果仿真工具使用的是jlink的,那可以使用jtag或者swd接口就可以,根据开发板的电路接好线即可。
软件
测试使用的软件是stm32f103的工程代码。想快速验证的可以下正点、野火等的代码回来再根据自己外设的硬件的设计稍微修改就可以进行测试,就是库是stm32F103的3.5标准库的。AT32F403A开发板的三个LED的控制IO分别是PD13,PD14,PD15。
相关软件如下:
void AT32LED_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOD, &GPIO_InitStructure);
}
int main(void)
{
u8 cut=0;
delay_init();
uart1_init(115200);
AT32LED_Init();
printf("AT32F403A 替换 SXX32f103 LED 测试!!! \r\n");
GPIO_ResetBits(GPIOD,GPIO_Pin_13); //LED2 亮
GPIO_SetBits(GPIOD,GPIO_Pin_14); //LED3 灭
GPIO_ResetBits(GPIOD,GPIO_Pin_15); //LED4 亮
while(1)
{
cut++;
delay_ms(1000);
printf ("cut:%d \r\n",cut);
}
}
测试结果
程序正常跑起来,如下图:
403a板子的上的LED2/4亮,LED3灭。(照片不是很清晰)
下面是串口的打印:
总结
从测试来看,AT32F403A是可以直接的跑stm32f103的LED代码,在操作GPIO上面和一模一样的。
本文仅供于学习、测试使用。有问题的也可加qq群,技术交流。
资源: