完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
STM32F103C8T6-CubeMx串口收发程序详细设计与测试(1)——CubeMx生成初始代码
关键词:STM32F103C8T6 CubeMX UART 详细程序设计 1.开发环境 (1)STM32CubeMX,版本:4.27.0,截止写稿时,最新版本已到6.0.1,但孔丙火(微信公众号:孔丙火)实在是用不习惯版本5以后的界面,所以还继续用4版本的。 图1-1 (2)MDK(Keil),版本:5.17,有部分朋友用的还是4版本的,建议升级到5,在5下装一个兼容包,就可以用5打开4版本的程序。 2.CubeMx配置及代码生成 (1)新建CubeMX工程 孔丙火(微信公众号:孔丙火)认为,这一步比较简单,点击初始界面中的New Project,在后面出现的配置窗口中,搜索STM32F103C8,选择这个器件,然后点击Start Project就可以了。 (2)按照图1-2和1-3设置外设和端口。 图1-2 我用的是12M的外部晶振,图中两个红框处配置一下,其他按照默认即可。注意一下APB1 Timer clocks的值是多少,这个在后面配置定时器时需要用到,原因见图1-5,TIM2使用的是APB1的时钟。 图1-4 图1-5 (4)USART1和TIM2的参数配置,见图1-6。 UART的参数配置见图1-7,需要注意word length这一选项,括号里有个including parity,意思是说包含奇偶校验位,孔丙火(微信公众号:孔丙火)要着重强调一下,如果是无校验,那这个参数就是数据长度,如果是奇校验或偶校验,那个这个参数就是实际的数据长度+1,这个不要弄错了,否则通信会出问题。图1-8中的那个USART的中断要打勾,已启用中断。 图1-6 图1-7 图1-8 图1-9 图1-9是TIM2的参数设置,设置每个计时周期为50us,TIM2采用的是APB1的时钟,即12MHz,则计算公式为: ,x为Prescaler的数值+1,可以计算得到:x = 600,Counter Period设为35-1,则TIM2每进一次中断的周期为:1750us,之所以这样设置,孔丙火(微信公众号:孔丙火)主要是为以后的Modbus设计做准备。图1-10中的TIM2的红框需要打勾,以启用TIM2的中断。 图1-10 图1-11 完成以上设置后,点开STM32CubeMx的project settings选项,按照图1-11和图1-12的提示设置。然后按照图1-13的提示生产即可生产工程代码,孔丙火(微信公众号:孔丙火)使用的是MDK V5。使用V4版本的朋友建议升级到V5,看到有的朋友使用V5时带不开V4的工程,只要装一个兼容包,就可以了,不会弄的朋友可以在公众号留言。 图1-12 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1529 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1482 浏览 1 评论
900 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
644 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1523 浏览 2 评论
1840浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
587浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
489浏览 3评论
489浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
470浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-1 14:02 , Processed in 0.807973 second(s), Total 79, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号