- 1、本文档共26页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
K60—UART串口通信讲解
第4章 异步串行通信;;4.1 异步串行通信的通用基础知识;串行通信的波特率
串行通信的波特率单位是位/秒,记为bps。通常情况下,波特率的单位可以省略。通常使用的波特率有300、600、900、1200、1800、2400、4800、9600、19200、38400、57600、115200等
奇偶校验
字符奇偶校验检查(character parity checking)称为垂直冗余检查( vertical redundancy checking,VRC),它是每个字符增加一个额外位使字符中“1”的个数为奇数或偶数。
奇校验:如果字符数据位中“1”的数目是偶数,校验位应为“1”,如果“1”的数目是奇数,校验位应为“0”。
偶校验:如果字符数据位中“1”的数目是偶数,则校验位应为“0”,如果是奇数则为“1”;串行通信的传输方式
单工(Simplex):数据传送是单向的,一端为发送端,另一端为接收端。这种传输方式中,除了地线之外,只要一根数据线就可以了。有线广播就是单工的。
全双工(Full-duplex):数据传送是双向的,且可以同时接收与发送数据。这种传输方式中,除了地线之外,需要两根数据线,站在任何一端的角度看,一根为发送线,另一根为接收线。一般情况下,MCU的异步串行通信接口均是全双工的。
半双工(Half-duplex):数据传送也是双向的,但是在这种传输方式中,除了地线之外,一般只有一根数据线。任何一个时刻,只能由一方发送数据,另一方接收数据,不能同时收发。;4.1.2 RS-232总线标准
串行传输标准
MCU引脚输入/输出一般使用TTL(Transistor Transistor Logic)电平,即晶体管-晶体管逻辑电平,它适用于板内数据传输。为使信号传输得更远,美国电子工业协会EIA(Electronic Industry Association)制订了串行物理接口标准RS-232C。
;上图为9芯串行接口排列;4.1.4 TTL电平到RS-232电平转换电路;MAX232芯片进行电平转换基本原理是:
发送过程:MCU的TXD(TTL电平)经过MAX232的11脚(T1IN)送到MAX232内部,在内部TTL电平被“提升”为232电平,通过14脚(T1OUT)发送出去
接收过程:外部232电平经过MAX232的13脚(R1IN)进入到MAX232的内部,在内部232电平被“降低”为TTL电平,经过12脚(R1OUT)送到MCU的RXD,进入MCU内
;4.2 UART模块功能;4.2 UART模块功能;4.2 UART模块功能;4.3 K60的UART模块编程结构;4.3 K60的UART模块编程结构;4.4 K60的UART构件设计概述;4.4.2 K60的UART构件的函数
通过以上分析,可以设计UART构件的8个基本功能函数。
(1)初始化:uint8 hw_uart_init (uint8 uartNo, uint32 baud);
(2)接收单个字节:uint8 hw_uart_re1 (uint8 uartNo,uint8 *fp);
(3)发送单个字节:uint8 hw_uart_send1(uint8 uartNo, uint8 ch);
(4)接收N个字节:uint8 hw_uart_reN (uint8 uartNo ,uint16 len ,uint8* buff);
(5)发送N个字节:uint8 hw_uart_sendN (uint8 uartNo ,uint16 len ,uint8* buff);
(6)发送字符串:uint8 hw_uart_send_string(uint8 uartNo, void *buff);
(7)使能串口接收中断:void hw_uart_enable_re_int(uint8 uartNo);
(8)禁止串口接收中断:void hw_uart_disable_re_int(uint8 uartNo);
;4.4.3 K60的UART的头文件
与UART通信子函数相关的文件有头文件hw_uart.h,以及包含UART初始化和收发子函数的程序文件hw_uart.c。
头文件hw_uart.h中的内容可分为两个主要的部分,它们分别是8个函数原型的声明和外设模块寄存器相关信息的定义。前者给出了本UART构件对上层构件或软件所提供的接口函数,而后者则指明了本“元构件”与具体硬件相关的信息。
这样设计,应用程序和上层构件在使用(调用)它时,将具有极大的灵活性。;4.5以查询方式接收的UART模块测试实例;4.5 以查询方式接收的UART模块测试实例;4.5 以查询方式接收的UART
文档评论(0)