完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
用示波器观察普通方式的串口传输,每个字节有一位起始位,八位数据位,两位停止位;而理论上我的设置是一位起始位,八位数据位,一位停止位,这里问题就来了,为什么会出现两位停止位呢?这里数据位数就对应不上了啊!但是即使数据对应不上,这时的通讯也是正常的,接收的整体数据也是对的,为什么呢?
相较而言,STM32的DMA传输方式下,示波器的波形则是正常的一位起始位,八位数据位,一位停止位。通讯也是正常的。作为一只资深小白瞬间就蒙圈了!期待大神路过~ |
|
相关推荐
7个回答
|
|
补充一下,两种方式都是用stm32库函数去写的
|
|
|
|
|
|
|
|
再说说,一位与两位停止位的区别:
由于串口是异步通讯,即发送端和接收端的时钟不同源;假如没有起始位和停止位,一直连续传输的话,主机和从机的时钟误差很可能越来越大; 一方面方便为了区分每一字节的开头和结尾,一方面消除异步传输的时钟累计误差,所以引入了开始位和停止位.... 停止位其实可以看作传输两个字节之间的固定空闲时间间隔,加入的空闲越长相对传输越可靠,但是传输效率下降 Rs-232串口的设计时序其实还比较简单,有兴趣具体可以百度了解一下 |
|
|
|
232的时序不就是串口通讯的时序么
|
|
|
|
|
|
|
|
可能你的示波器看到的不是两位停止位,而是一位停止位和一位总线空闲位。
|
|
|
|
配置问题
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
hal库中i2c卡死在HAL_I2C_Master_Transmit
815 浏览 1 评论
LL库F030进行3个串口收发,2个串口为232,一个为485,长时间后,会出现串口1停止运行,另外两个正常,只有重启复原
1360 浏览 1 评论
506 浏览 0 评论
992 浏览 0 评论
1119 浏览 1 评论
浏览过的版块 |
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-2 15:17 , Processed in 0.782837 second(s), Total 86, Slave 68 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号