loser学ARM实操五:基于STM32F103CubeMX实现串口通信(库函数)

目录

一、前言介绍

1、所用工具:

2、寄存器说明

 二、建立STM32Cube工程

三、代码编写

 四、示波器观察输出

 五、总结

六、参考资料


不知为啥,我的“小白“”成了违规词汇,所以现在就改成loser。

一、前言介绍

在完成了利用STM32CubeMX库函数实现LED灯闪烁之后,接下来我们尝试利用库函数实现STM32F103最小系统板与windows实现建立串口通信,发送“Hello windows”并实现利用keil仿真软件实现输出端口的观察。

1、所用工具

1、芯片: STM32F103C8T6

2、STM32CubeMx软件

3、IDE: MDK-Keil软件

4、STM32F1xx/STM32F1xxHAL库 

5、串口:USART1、PA9、PA10

2、寄存器说明

在进行管脚利用时,我们会发现存在一些管脚具有多种功能,也就是这里的重映像,这里给出3个USART在相应管脚的重映像。

具体的可以参照STM32F103中文教程及参考手册.pdf  ——5.3.6 USART复用功能重映射  

这里是USART寄存器的框图,从中我们可以看到具有读写功能,因此,我们接下来就需要用到该寄存器。 

下面列出与串口通信相关的寄存器

 状态寄存器   

波特比率寄存器 

控制寄存器(这里给出一个)

详情请参照 

 二、建立STM32Cube工程

因为之前已经已经给出过如何配置芯片文件,这里就不再说明,直接给出构建工程的具体内容。

选择好芯片后,首先进行USART管脚选择:(此时管脚显示为黄色,先不用管,后面会给出具体配置)

点击芯片,右下角输入USART寄存器,可以发现此时芯片相应管脚闪烁,根据之前所给的管脚重映射选择PA9和PA10管脚,注:PA9选择USART1_TX;PA10选择USART1_RX。

 

 点击RCC,配置寄存器的使能时钟。(关于RCC寄存器的功能,可以翻阅STM32F103中文教程及参考手册.pdf——4.3 RCC寄存器描述)

为了烧录的顺利进行,点击SYS,将Debug设置成Serial Wire。

 配置USART

(选择Connectivity——>选择USART1——>点击Mode,选择异步通信(Asynchonous))

进行管脚自定义(可以不用管)

 然后我们配置USART1,选择中断配置(选择使能中断)

 完成相应的配置后,选择工程管理,将自己的工程命名并选择保存位置

 完成工程配置,生成代码。

三、代码编写

打开工程,选择while循环,在这里进行自己的代码编写。

unsigned char text[15]="Hello Windows\n";
HAL_Delay (1000);
HAL_UART_Transmit (&huart1,text,15,HAL_MAX_DELAY );

代码编写完成后,编译运行。

选择烧录软件,将所生成的HEX文件烧录进去。(具体方式之前也发过相应博客) 

烧录完成后,选择串口工具,进行实验(我这里用的是野火串口助手;可以再官网下载)

现象:

 四、示波器观察输出

 在完成代码的编译后,我们进行输出脚的观察(具体步骤请参考:小白学ARM实操三:基于STM32F103流水灯的实现(寄存器版)_Lc-Yusheng的博客-CSDN博客

 通过对输出电平的观察,这里每个一秒便出现一个高电平,总共12个电平;刚好与“Hello Windows”相对应。     

注:中间有一个空格符号。

 五、总结

通过利用STM32CubeMX软件完成相应效果的展示,真的是非常方便。这次实验真的是给我带来了很大的压力,之前想着通过寄存器的方式来实现,但对于能力有限的我真的是无能为力,所以这里就先直接采用库函数的方式了。同时,也希望我在接下来的时间里通过对ARM芯片的进一步学习,能够实现通过寄存器的方式来完成本次实验,这对我而言,不仅仅是一个目标,同时也是一个挑战。

六、参考资料

STM32F103中文教程及参考手册.pdf 

【【STM32CubeMX基础-3】UART串口通信-哔哩哔哩】https://b23.tv/Hw4ODV

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值