完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
前言 STM32CubeMX 是 ST 意法半导体近几年来大力推荐的STM32 芯片图形化配置工具,目的就是为了方便开发者, 允许用户使用图形化向导生成C 初始化代码,可以大大减轻开发工作,时间和费用,提高开发效率。STM32CubeMX几乎覆盖了STM32 全系列芯片。 在CubeMX上,通过傻瓜化的操作便能实现相关配置,最终能够生成C语言代码,支持多种工具链,比如MDK、IAR For ARM、TrueStudio等 省去了我们配置各种外设的时间,大大的节省了时间 一、STM32CubeMX安装教程 1.1JRE的安装 由于 STM32CubeMX 软件是基于 JAVA 环境运行的,所以需要安装 JRE (Java Runtime Environment)才能使用 官网: https://www.java.com/en/download/manual.jsp 下载完之后直接安装即可,没有特别需要主义的地方 1.2安装STM32CubeMX 官网:www.st.com/stm32cubemx 打开安装包 同意相关协议 勾选第一个即可 选择安装目录 默认即可 完成 1.3安装HAL库 STM32 HAL固件库是Hardware Abstraction Layer的缩写,中文名称是:硬件抽象层。HAL库是ST公司为STM32的MCU最新推出的抽象层嵌入式软件,为更方便的实现跨STM32产品的最大可移植性。HAL库的推出,可以说ST也慢慢的抛弃了原来的标准固件库,这也使得很多老用户不满。但是HAL库推出的同时,也加入了很多第三方的中间件,有RTOS,USB,TCP / IP和图形等等。 和标准库对比起来,STM32的HAL库更加的抽象,ST最终的目的是要实现在STM32系列MCU之间无缝移植,甚至在其他MCU也能实现快速移植。并且从16年开始,ST公司就逐渐停止了对标准固件库的更新,转而倾于HAL固件库和 Low-layer底层库的更新,停止标准库更新,也就表示了以后使用STM32CubeMX配置HAL/LL库是主流配置环境; HAL库,有在线安装、离线安装两种方式 (1)在线安装:在help中点击Manage embedded... 找到自己需要的软件包进行下载 (2)离线安装 离线安装需要下载安装包,在官网www.st.com/stm32cubemx下载 在上一步的过程中选择from local 如果报错,在help Update Settings中修改文件夹为Repository至你的STM32CubeMX文件目录下 二、使用STM32CubeMX进行点灯 2.1新建工程 在主界面选择File–>New Project 或者直接点击ACCEE TO MCU SELECTOR 进行芯片型号选择,一般直接在左上角搜索自己的芯片型号即可 2.2界面讲解 (1)为为MCU外设资源选择 Categories 种类选择:将MCU的各种外设和资源分类,供用户选择使用 A-Z 顺序选择:MCU的外设资源按A-Z 排序,供用户选择使用 (2)为预览界面 引脚预览可以查看引脚配置了什么功能,和各个引脚的位置; 任意点击一个引脚即可设置该引脚的各种功能 淡黄色这种颜色表示不可配置引脚,电源专用引脚以黄色突出显示,其配置不能更改。 深黄色这种颜色表示你配置了一个I/O口的功能,但是没有初始化对应外设功能,引脚处于no mode状态。 绿色表示配置成功。 系统预览是查看配置的各种外设和GPIO的状态 右侧第三个对勾图标,表示没有问题; 2.3配置硬件 (1)这里只需要把我们的LED灯对应引脚设置为GPIO_Output即可 这里我选择的引脚为PB5、PC3、PD2 (2)设置时钟源 即配置32的时钟树框图,默认时钟是使用内部RC振荡器 在中间格子配置为72MHz,回车; 这里会弹出一个小窗口,确认即可 2.4工程管理 点击Project Manager开始工程配置 然后点击Code Generator,进行进一步配置 选择如下图所示: 点击GENERATE CODE 创建工程,等待一段时间后,成功打开了工程文件 2.5在打开的工程程序中添加实验代码 在main.c文件的main函数下的while循环中,添加下面几行代码即可。 HAL_GPIO_WritePin(GPIOB,GPIO_PIN_5,GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOC,GPIO_PIN_3,GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_SET); HAL_Delay(1000); HAL_GPIO_WritePin(GPIOB,GPIO_PIN_5,GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOC,GPIO_PIN_3,GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_SET); HAL_Delay(1000); HAL_GPIO_WritePin(GPIOB,GPIO_PIN_5,GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOC,GPIO_PIN_3,GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_RESET); HAL_Delay(1000); 如图所示: 2.6编译和烧录程序 编译未出错 具体烧录过程可参考本人另一篇博客STM32F103寄存器方式点亮LED流水灯_亚大贼的博客-CSDN博客 2.7运行结果 三、MDK5观察3个GPIO端口的输出波形 在没有示波器条件下,可以使用Keil的软件仿真逻辑分析仪功能观察管脚的时序波形,更方便动态跟踪调试和定位代码故障点。 用此功能可以观察上文3个GPIO端口的输出波形,并分析其波形反映的时序状态正确与否,高低电平转换周期(LED闪烁周期)实际为多少。3.1 设置仿真模式 1.在使用仿真模式时,要先配置debug模式,配置如下: 在Debug设置里下面两项内容进行更改: (1)Dialog DLL设置为DARMSTM.DLL (2)Parameter设置为-pSTM32F103VC 2.点击逻辑分析仪 点击SetUp,给逻辑分析仪添加要观察的IO口, 然后再下面新建的编辑框中输入PORTB.5,回车之后就会自动转换为下述格式 再依次添加PORTC.3和PROTD..2 再Display Typle出选择Bit 设置好之后,逻辑分析仪窗口左侧会出现刚才设置的两个IO口。然后点全速运行,开始执行程序 等程序执行一段时间后,点停止按钮 3.2观察波形 这时候逻辑分析仪窗口就会出现,三个LED的波形 随意找一处位置,观察到为101,即只有一个灯亮,说明程序执行成功 通过波形上就可以看到LED口电平隔1s翻转一次。 总结 HAL库提供的可视化界面大大提高了编程效率,无需再利用代码去配置管脚了,效果很好,受益匪浅,以后会多加利用。因此可以利用逻辑分析仪进行观察仿真示波器的波形,就可以判断你的代码是否正常(即使不接硬件),此外可以计算出LED的真实闪烁周期是多少秒。在实验的过程中除了开始安装STM32CubeMX的时候出现了很多错误,后面的都还算顺利。 |
|
|
|
只有小组成员才能发言,加入小组>>
3309 浏览 9 评论
2988 浏览 16 评论
3490 浏览 1 评论
9050 浏览 16 评论
4085 浏览 18 评论
1171浏览 3评论
602浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
594浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2331浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1894浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-20 09:47 , Processed in 1.086771 second(s), Total 79, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号