以9个数据的方式发送帧
发表:2023-08-29 12:05:41 阅读:67

电子资讯】以9个数据的方式发送帧

汇编代码例程

USART_Transmit:

;等待发送缓冲器为空

sbis UCSRA.UDRE

rj mp USART_Transmit

;将第9位从Rl7中复制到TXB8

cbi UCSRB,TXB8

sbrc rl7,0

sbi UCSRB,TXB8

;将低8位数据放入缓冲器,发送数据

out U职.rl6

ret

C代码例程:

void USART_Transmit(uns igned int data)

(

/*等待发送缓冲器为空*/

while(!(UCSRA&(1<

;

/*将第9位复制到TXB8*/

UCSRB&=~(1<

if(data&0x0100)

UCSRBI=(I<

/*将数据放入缓冲器,发送数据*/

UDR=data;

}

第9位数据在多机通信中用于表示地址帧,在同步通信中可以用于协议处理。

 

发送器标志和中断

发送器标志和中断USART发送器有两个标志位:USART数据寄存器空标志UDRE及传输结束标志TXC,两个标志位都可以产生中断。数据寄存器空UDRE标志位表示发送缓冲器是否可以接受一个新的数据,该位在发送缓冲器空时被置“1”;当发送缓冲器包含需要发送的数据时清零。为与将来的器件兼容,写L(SRA寄存器时该位要写“0’’。

当UCSRB寄存器中的数据寄存器空中断使能位UDRIE“1”只要UDRE被置位(且全局中断使能),就将产生USART数据寄存器空中断请求。对寄存器UDR执行写操作.则清零UDRE。

当采用中断方式传输数据时,在数据寄存器空中断服务程序中必须写一个新的数据到UDR以清零UDRE,或者是禁止数据寄存器空中断。否则一旦该中断程序结束,一个新的中当整个数据帧移出发送移位寄存器,同时发送缓冲器中又没有新的数据时,发送结束标志TXC.置位。Txc在传送结束中断执行时自动清零,也可在该位写“l”来清零。TXC标志位对于采用如rs485准的半双工通信接口十分有用。在这些应用里,一旦传送完毕.应用程序必须释放通信总线并进入接收状态。当ucsRB上的发送结束中断使能位TXCIE与全局中断使能位均被置为“1,,时,随着Txc标志位的置位,USART发送结束中断将被执行。一旦进人中断服务程序,TXC标志位即被自动清零,中断处理程序不必执行TXC清零操作。

 

校验位

奇偶校验产生电路为串行数据帧生成相应的校验位。校验位使能(UPMl—1)时,发送控制逻辑电路会在数据的最后一位与第1个停止位之间插入奇偶校验位。

 

禁止发送

TXEN清零后,只有等到所有的数据发送完成后发送器才能够真正禁止,即发送移位寄存器与发送缓冲寄存器中没有要传送的数据。发送器禁止后,TxD引脚恢复其通用I/O功能。

 

 

 

更多推荐信息

片内时钟产生——波特率发生器

数据帧格式数据帧的结构

与SPl接口相关的寄存器

SPl数据传输模式

spi状态寄存器spsr

SPl数据寄存器

USART转发器