1、STM32CubeMX的安装
2、固件库的安装
3、利用STM32CubeMX创建工程
4、填写main函数
5、烧写与硬件实现
六、总结
1、STM32CubeMX的安装
参考一下博客
https://blog.csdn.net/qq_43279579/article/details/11221319
2、固件库的安装
点击 Help
-> Manage embedded software paclages
选择最新的1.8.4,再点击install Now
下载完后关闭页面
3、创建工程
左上角有一个part number,我选的是STM32103C8
双击这个界面
回到system core点击RCC,在右边第一个界面选择Crystal/Ceramic Resona
下图从左到右依次修改,先选择HSE(第一个蓝点) ,再选择PLLCLK(第二个蓝点),最后将APB1 Prescaler改为/2
回到system core,点击SYS,将Debug改为serial Wire
GPIO 设置,在右边图中找到 LED 灯对应引脚,选择 GPIO_Output,这里我选的PB5、PB5、PB7为LED的端口
在GPIO output level将三个都改为high
代码生成
在project manager下输入项目名和项目路径,选择应用的 IDE 开发环境 MDK-ARM V5
点击GENERATE CODE生成
填写main函数
打开文件进入main.c程序,
打开文件我们会发现main函数里只有一些初始化,并没有主要的程序,while(1)里面是空的,这时候需要我们来添加代码
下面添加三个流水灯交替闪烁的代码
HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_5);//?PB5??????
HAL_Delay(1000);
HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_6);//?PB5??????
HAL_Delay(1000);
HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_7);//?PB5??????
HAL_Delay(1000);
延时函数(HAL_Delay)
函数原型: void HAL_Delay (__IO uint32_t Delay)
参数说明:Delay表示所要延时的时间大小,单位是毫秒
写管脚函数(HAL_GPIO_WritePin)
函数原型:void HAL_GPIO_WritePin (GPIO_TypeDef * GPIOx, uint16_t
GPIO_Pin, GPIO_PinState PinState)
参数说明:
GPIOx: 管脚组(x的取值为A~G)
GPIO_Pin: 管脚编号(x的取值为0~15)
PinState: 管脚的状态(取值为GPIO_BIT_RESET表示0, GPIO_BIT_SET表示1)
点开debug将Dialog.DLL下改为DARMSTM.DLL,Parameter下改为-pSTM32F103C8
配置好后,点击Debug
点击下图所示按键
点击左上角setup,弹出对话框,添加需要查看的波形的的引脚,点击右上角的添加输入
输入GPIOx_IDR.y
x为选择的GPIO口号
y为选择的引脚号。
在VTREG界面输入dir vtreg
将Command里的地址输入,同时在Display type选择bit
如图则表明成功
五、烧录与硬件实现
点击开始编程
运行效果如图
六、总结
本次实验总的来说要比上次用寄存器实现要简单,用STM32CubeMX来编程省了不少的时间。