目录
一、简述
二、STM32CubeMX
利用CubeMX新建工程点亮LED灯
配置引脚
时钟源配置
工程管理
三、点亮LED
编写主要功能代码
编译与烧录
四、在Keil下载软件仿真观察3个GPIO端口的输出波形
设置仿真模式
使用逻辑分析仪
五、总结
一、简述
利用STM32最小系统核心板STM32F103C8T6,使用GPIOB、GPIOC、GPIOD这3个端口控制LED灯,轮流闪烁,间隔时长1秒。 1)写出程序设计思路,包括GPIOx端口的各寄存器地址和详细参数;
2)分别用汇编语言,C语言编程实现。 器材:STM32F103C8T6+面板板+若干杜邦线+3只红绿蓝LED
二、STM32CubeMX
利用CubeMX新建工程点亮LED灯
在本次实验中,使用到的STM32硬件为,STM32F103C8T6; 软件为,STM32CubeMX软件、KEIL MDK-arm软件,以及STM32F1xxHAL库
直观的选择 STM32 微控制器(MCU)和微处理器(MPU)。
编辑
丰富易用的图形化界面:
编辑
可以直接通过左侧的菜单完成对应pin脚的配置
也可以完成中断,时钟等等信息的配置
所有的配置都可以通过图形化的方式完成
生成初始化代码工程,包含:EWARM、 MDK-ARM、 TureSTUDIO、 SW4STM32等。
编辑
通过项目管理界面可以配置代码生成的条目,配置完成以后,点击生成代码,即可自动生成初始化的工程。
生成的工程就是一个可以正常编译的完整工程,使用的时候只需要添加上用户代码即可。
配置引脚
只需把目标LED对应引脚设置为GPIO_Output即可,按照我在上上篇博客的管脚分配,这里我仍然去选择相同管脚,即PB0 PB5 PA1。
编辑
时钟源配置
即配置32的时钟树框图,默认时钟是使用内部RC振荡器。
编辑
配置RCC使用外部时钟源,操作如图 编辑
在中间格子配置为72MHz,回车;
编辑
弹出小窗口点击ok,即可完成配置。
工程管理
设置完MCU后,可以进行对工程文件的配置了。 在Project处,这里就是工程的各种配置,我们只用到有限几个,其他的默认即可 。
编辑
然后点击Code Generator,进行进一步配置。
编辑
点击GENERATE CODE 创建工程,等待一段时间后,成功打开了工程文件。
编辑
三、点亮LED
编写主要功能代码
然后点击Application…,再打开main.c文件,如图所示:
编辑
复制如下代码到main.c的while(1)里面如图:
编辑
编译与烧录
调试结果以及实际效果
编辑
最后结果如下,LED灯亮:
编辑
四、在Keil下载软件仿真观察3个GPIO端口的输出波形
设置仿真模式
在使用仿真模式时,需要进行Debug模式设置,下图是Debug设置模式。
编辑
注意在Debug设置里下面两项内容进行更改: Dialog DLL默认是DARMSTM.DLL Parameter默认是-pSTM32F103VC
使用逻辑分析仪
点击KEIL5魔法棒,再点击Target,设置合适的晶振
编辑
再点击Debug进行设置,然后点击OK即可,如图所示:
编辑
点右上角放大镜,进入仿真页面,点击图中图标打开逻辑分析仪:
编辑
添加要查看波形的GPIO口:
先在右下角命令框里输入命令,dir vtrge 就可以看到可以查看的GPIO口,为下一步做准备,如图:
编辑
然后点击,setup,然后进行下图操作:
编辑
直接输入PORTA&0X00000020 (0X00000020就是5.1步中查询出来的结果),如图:
编辑
然后点击旁边空白处就可以完成输入,再点击刚刚输入的内容,然后点击Display Type选择bit,如图所示:
编辑
之后,我们便不难得到仿真波形图:
编辑
观察每次变化的时间,对比是否有实际定义的1000ms。
五、总结
本次实验主要是关于熟悉STM32CubeMX的安装、使用过程并且利用STM32CubeMX进行简单嵌入式编程学习的流程。总体来说实验流程比较复杂,也具有一定难度。但在参考了相关资料和指导书之后,也是勉强完成本次实验,对整个过程原理有了更加深刻的认识。