
本期我们将利用定时器来模拟串口通信。![]() 首先我们要明白串口通信的帧格式,有一个低电平起始位,八个数据位(可选择校验位)+停止位组成。 需要注意的是,这里的数据位从低到高!!! 通常,我们不会设置校验位,选择一个停止位。 因此我们的一帧数据共一个字节+2位,总计十位。而波特率则是一秒钟可以传输多少位的数据。例如9600的波特率则代表着一秒钟传输9600位,总计960帧,所以总共960个字节,有效位960*8位代表数据。 以9600波特率为例,每一位的持续时间约为104us. 因此在CubeMX中我们可以设置定时器的触发时间为104us。 ![]()
我们在定时器中断回调函数中,将Data(一帧)中的数据逐位发送。
写一个函数用来写入串口数据,并且启动定时器。
MyPrintf('l'); HAL_Delay(100); MyPrintf('o'); HAL_Delay(100); ![]() 成功的模拟了串口!!! 属于我的串口重定向!
![]() ![]() Win,成功的模拟了串口! 下期尝试添加标志位和设置波特率。 转载自:电路小白 如有侵权请联系删除 |
【下载有礼】STM32 Finder华为应用商店正式上线!移动选型工具助力开发效率升级
【2025·STM32峰会】GUI解决方案实训分享5-调通板载的NRF24L01 SPI接口并使用模块进行无线通信(发送和接收)
【2025·STM32峰会】GUI解决方案实训分享2-编译运行TouchGFX咖啡机例程(含桌面仿真)
实战经验 | Keil工程使用NEAI库的异常问题
STM32 ISP IQTune:真正零门槛的免费ISP调整软件
【经验分享】STM32 新建基于STM32F40x 固件库的MDK5 工程
意法半导体MCU双供应链策略,打消中国客户后顾之忧
2024意法半导体工业峰会:赋能智能电源和智能工业,构筑可持续未来
ST推出灵活、面向未来的智能电表通信解决方案,助力能源转型
意法半导体 x Qu-Bit Electronix:推动新一轮的数字声音合成革命