- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
#pragma vector=UART0RX_VECTOR __interrupt void UART0_RX_ISR(void) { while(!(IFG1UTXIFG0)); //发送寄存器空的时 候发送数据 U0TXBUF=U0RXBUF; } #define IFG1_ (0x0002u) /* Interrupt Flag 1 */ DEFC( IFG1 , IFG1_) #define U0IFG IFG1 /* UART0 Interrupt Flag Register */ #define WDTIFG 0x01 /*看门狗中断标志*/ #define OFIFG 0x02 /*外部晶振故障中断标志*/ #define NMIIFG 0x10 /*非屏蔽中断标志*/ #define URXIFG0 0x40 /*串口0接收中断标志*/ #define UTXIFG0 0x80 /*串口0发送中断标志*/ 处理串口0的接收中断 UART通用异步串行接口 UART其实是满足RS232、RS422、RS485等接口标准规范的一系列异步串行通信接口的总称。 使用UART通信需要两个引脚: * 将传输的有效数据按照统一规定的格式一位接一位的传输。 工作原理 1:数据位7位或8位可选,可采用奇校验或偶校验或 者无校验 2:发送移位寄存器和接受移位寄存器相互独立 3:发送缓冲寄存器和接受缓冲寄存器相互独立 4:从最低位开始的数据发送和接受 5:异步模式,支持线路空闲多处理机协议和地址位 通信协议 6:接收起始探测位,可在低功耗状态下自动唤醒 7:可编程的波特率,支持小位数 8:支持错误探测和地址探测 9:独立的收发中断 UART特性 帧的格式 ST:起始位,低电平 D0-D7:数据位 AD:地址位(可选) PA:奇偶校验(可选) SP:停止位,可选一位或两位,高电平 起始位 1位 数据区(由低到高) 一般为7位或8位 校验位 1位 停止位 一般可选为1位或2位 接收状态 URXE:接受允许 发送状态 UTXE:发送允许 一:线路空闲多处理机模式 二:地址位通信格式 异步通信格式 一:线路空闲多处理机模式 在这种模式下,数据块被空闲时间分割。在字符的第一个停止位之后,收到 10 个以上的 高电平,则表示检测到接收线路空闲。 在空闲周期之后收到的第一个字节认为是地址位,后面紧跟的是数据。 如果采用两位停止位,则第二个停止位被认为空闲周期的第一个标志。 URXWIE=1:如果接收到的不是地址,不会将数据写入URXBUF中。如果接收到的是地址,写入URXBUF中,清楚URWXIE,产生中断。 用发送空闲帧来识别地址字符的步骤如下:?设置TXWAKE=1,将任意数据写入 UTXBUF。当发送移位寄存器为空时,发送模块就会向线路发送一个正好 11 位的空闲周期。 TXWAKE自动清零再将目的地址写入? 二:地址位通信格式 数据中增加地址位。 URXWIE=1:根据接受到的地址位判断。 如果为0,不会将数据写入URXBUF中。 如果为1,写入URXBUF中,清楚URWXIE,产 生中断。 发送方根据TXWAKE控制。硬件会自动清楚。 1:FE ?Framing error(帧形成错误)检测到低电平的停止位。如果是采用的两位停止位,只检测第一位停止位 2:PE ?Parity error(奇偶校验错误) 3:OE ?Receive overrun error(覆盖错误)在URXBUF中已有数据,在数据读出之前,又向URXBUF中写入了数据,将以前的数据覆盖掉了。 4:BRK Break condition(中断错误)没有停止位 URXEIE=0, 1||2||4,不写入URXBUF,自动抛弃 URXEIE=1,继续写入 出错情况 URXSE=1,启用边沿检测 进入低功耗模式,UA
原创力文档


文档评论(0)