一、安装STM32cubeMX
二、用STM32CubeMX初始化代码
-
输入芯片型号,这里我用的STM32F103C8,然后点击最右侧的start project -
点击System Core,再点击SYS,在debug选项中选择Serial Wire -
把PLLCLK右边选上 -
将hse设为Crystal/Ceramic Resonator -
点击相应的引脚设置输出寄存器,选择output那一项。我一共选了三个,分别是PA0,PB9,PC15 -
点击project manager,填写路径和项目名,将IDE改为MDK-ARM -
进入code generate界面,选择生成初始化.c/.h文件,后面点击generate code,之后等待一下 -
点击Open就可以从keil中打开项目了
三、修改代码并点亮流水灯
- 打开项目之后,打开main.c文件,找到while函数在里面添加实现功能的代码
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_0,GPIO_PIN_RESET);
HAL_Delay(500);
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_0,GPIO_PIN_SET);
HAL_Delay(500);
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_9,GPIO_PIN_RESET);
HAL_Delay(500);
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_9,GPIO_PIN_SET);
HAL_Delay(500);
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_15,GPIO_PIN_RESET);
HAL_Delay(500);
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_15,GPIO_PIN_SET);
HAL_Delay(500);
- 注意:烧录运行,串口烧录要断电之后把boot0置0才能正常运行。
四、运行结果
- 信号波形图
- 流水灯运行结果
五、总结
使用STMCubeMX生成代码编程比自己写代码会方便很多,只需要自己写一个while函数中的内容就够了。同时也有一些微小的诧异比如将BOOT0置零。
六、参考资料
使用STMCubeMX生成代码(使用hal库)实现流水灯 搭建STM32开发环境——STM32CubeMX,Keil5
|