声明:
- 本文章为作者学习时所作笔记,很大程度上引用了CSDN上已有文章,以此为基础进行整理、补充。所引文章皆在文末标出,若有不当之处恳请指正。
- 本节内容并不系统,仅是作者本人在学习过程中遇到的难点总结;若需要系统讲解,可参考文末引用处的链接。
【大纲】
串口通信的概念、作用和目的
- 直观来讲,串口通信(Serial Communications)就是利用单根数据线实现数据传输。
- UART:通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),是一种常见的串口通信接口。
- 串口按位(bit)发送和接收字节的通信方式。
- 这种通信方式使用的数据线少,在远距离通信中可以节约通信成本,但其传输速度比并行传输低。
C51实现串口通信的相关芯片和部件
- [CH340] 是USB总线的转接芯片,实现USB转串口。
串口通信实现的思路 &直观理解
- 串口所需的初始化
1.1 设置定时器T1(即设置好波特率)、串行口设置、中断控制
串口通信的样例程序
- https://blog.csdn.net/u014453898/article/details/57123007 中的例子很好。
串口通信的重难点
- 为什么需要波特率翻倍?
答:这仅仅是用于当你的晶体频率不能满足要求,而你需要更高速率时使用可以提高一倍的通讯速率,同时可以使你的频率组合种类更多,更能够满足使用要求。 - 讲相关的寄存器,即在说明要实现此功能要提前设置好的参数。
- 为什么和定时器1有关:在串口通信的方式1和方式3中波特率可变,而此时波特率由定时器T1的溢出率来决定。
blank
- 串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通信的端口,这些参数必须匹配。
- 异步/同步通信 概念
2.1 异步通信:1) 发送和接收设备的时钟不要求一致;2)每个字符(5-9bit)前后要附加2-3位起止位;3)各字符(字符帧)之间存在间隔;4)由上可知其传输效率不高。
2.2 同步通信:1)时钟完全相同;2)字符帧之间不留间隙 - 串行通信分为 单工、半双工、全双工三种传输方向。
- 串行通信 常见的错误校验:
4.1 奇偶校验
4.2 代码和校验
4.3 循环冗余校验 - 比特率 (即波特率):表示传输数据的速率;实质位每秒钟传输二进制代码的位数。
引用声明
- https://baike.baidu.com/item/%E4%B8%B2%E5%8F%A3%E9%80%9A%E4%BF%A1
- https://blog.csdn.net/u014453898/article/details/57123007
- https://wenwen.sogou.com/z/q700873491.htm?ch=fromnewwenwen.pc
- https://blog.csdn.net/sinat_38816924/article/details/84706854?ops_request_misc=%25257B%252522request%25255Fid%252522%25253A%252522161052931416780264035889%252522%25252C%252522scm%252522%25253A%25252220140713.130102334.pc%25255Fall.%252522%25257D&request_id=161052931416780264035889&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_v2~rank_v29-2-84706854.pc_search_result_cache&utm_term=c51%20%E4%B8%B2%E5%8F%A3%E9%80%9A%E4%BF%A1