- 1、本文档共77页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MSP430串行外设讲述
USART 接收控制寄存器(UxRCTL)编程 状态 状态 URXEIE=0: 若接收到错误字符,则不存入 UxRXBUF , 并且不置位 URXIFGx URXEIE=1: 接收到的字符无论错对,都存入 UxRXBUF, 并置位 URXIFGx URXWIE=0: 接收到的字符无论是地址还是数据, 都置位 URXIFGx( URXEIE=1 ) URXWIE=1: 仅接收到地址字符, 才置位 URXIFGx ( URXEIE=1 ) 1 0 BIS.B #URXEIE , U0RCTL 5). USART 波特率控制寄存器编程 BRCLK=SMCLK=6MHz/8=750,000Hz baud rate=1200bps N= 6MHz/8/1200bps=625=0271h UxBR1=02h, UxBR0=71h UxMCTL=00h UBR00 = 0x71; UBR10 = 0x02; UMCTL0 = 0x00; 6). 编程ME1 SFR,使能USART0模块 ME1 |= UTXE0 + URXE0; // 使能 UART0_INIT: UCTL0 = ~SWRST; // 初始化UART0 P3SEL |= 0x30; // P3.4,5为UART收发端口 0011 UCTL0 |= CHAR; // 8-bit UTCTL0 |= SSEL0; // UCLK = ACLK 32768Hz UBR00 = 0x0D; // 32k/2400 - 13.65 UBR10 = 0x00; // 高位表示整数分频, UMCTL0 = 0x6B; // Modulation, 0110 1011 ME1 |= UTXE0 + URXE0; // 使能USART0收发 USART0初始化子程序 判断发送缓冲器空: Tcheck while (!(IFG1 UTXIFG0)); 判断接收缓冲器满: Rcheck while (!(IFG1 URXIFG0)); 0: U0RXBUF has not received a complete character 1: U0RXBUF has received a complete character 0: U0TXBUF is not empty 1: U0TXBUF is empty UTXIFG0 URXIFG0 IFG1 7 6 5 4 3 2 1 0 rw-1 rw-0 串口查询方式 发送数据流程 N Y N 向发送缓冲器写1字节 已发送完所有数据? 结束 开始 发送缓冲器空? 串口初始化 Y 超时等待判断 串口查询方式 接收数据流程 N Y N 读接收缓冲器 已接收完所有字符? 结束 开始 接收缓冲器满? 串口初始化 Y 超时等待判断 思考: 编程查询方式串口通信程序,实现接收到一个字节后马上将该字节发送出去(字节中继器)。 2. 中断方式串口通信编程 USART 发送中断原理及其控制 USART 软件复位(SWRST=1)将置位 UTXIFGx(以表示发送器空),但禁止 USART 的发送中断。因此,欲使用中断方式发送字符,应编程清零 SWRST 当 SWRST=0 (允许中断请求), 且不考虑 PUC 时: 当被发送的字符从发送缓冲器(UxTXBUF)移入发送移位寄存器时置位 UTXIFGx。此时若 UTXIEx=1 并且 GIE=1, 则向CPU产生中断请求。 UTXIE0=IE1.7 , UTXIE1=IE2.5 USART接收中断原理及其控制 每当 USART 接收器接收到一个字符或检测到一个 Break,则有可能(见下面分析)置位 URXIFGx。若 URXIFGx=1并且 URXIEx=1 和 GIE=1,则 USART 将向 CPU 发出中断请求。 UART Mode (SYNC=0) UART 起始沿 接收功能 URXSE=0: 禁止起始沿接收功能,常用方式。 UART Mode (SYNC=0) URXSE=0 : 禁止UART 起始沿接收功能 SWRST=0 : 允许 UART 工作 SYNC=0 : U
文档评论(0)