在本次实验中,使用到的STM32硬件为,STM32F103C8T6;
软件为,STM32CubeMX软件,以及STM32F1xxHAL库,KEIL MDK-arm软件。
在主界面点击File->New Project->在左边方框中输入要选择的芯片型号即可,双击两下即可新建工程,新建好如下图所示。
只需把目标LED对应引脚设置为GPIO_Output即可,这里选择管脚PB0
PB5
PA1,左键单击一下对应管教,全部设为GPIO_Output即可
。
点击上面Clock Configuration进行配置,即配置32的时钟树框图,默认时钟是使用内部RC振荡器。
配置RCC使用外部时钟
点击Pinout&Configuration,左侧A->Z->RCC,然后如图操作,选择晶振。
再次回到Clock Configuration,将HCLK改为48MHZ.然后弹窗单击yes。
单击上方Project Manage
填入相应内容即可,记得将IDE选为MDK-ARM,后面按照自己的情况来填写
然后单击Code Gerenator进行下一步配置,如图
然后单击上面GENERATE CODE
进行创建工程。一段时间后,自动调用keil软件。
5、代码编写
在main.c文件的main函数下的while循环中,添加下面几行代码
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_1,GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_5,GPIO_PIN_SET);
HAL_Delay(1000);
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_1,GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_5,GPIO_PIN_SET);
HAL_Delay(1000);
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_1,GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_5,GPIO_PIN_RESET);
HAL_Delay(1000);
编译发现没有错误,就可以进行烧录操作。
由于手边暂时没有开发板,就先不进行实机展示。
在没有示波器条件下,可以使用Keil的软件仿真逻辑分析仪功能观察管脚的时序波形,更方便动态跟踪调试和定位代码故障点。
在使用仿真模式时,需要进行Debug模式设置,下图是Debug设置模式。设置为如下图所示:
设置完成后,开启调试模式,打开逻辑分析仪
添加要观察的I/O口
即可得到仿真图。