lwking412 发表于 2008-5-10 20:37 AVR 单片机 ←返回版面 按此察看该网友的资料 按此把**加入收藏夹 按此编辑本帖
楼主: 接收9个数据位的帧这段程序看不懂
《atmega128原理与开发应用指南》上的例子,接收9个数据位的帧 马老师给的例子如下: unsigned int USART_Receive(void) {unsigned char status,resh,resl; /*Wait for data to be received*/ while (!(UCSRA&(1<<RXC))); /*Get status and 9th bit,then data from buffer*/ status=UCSRA; resh=UCSRB; resl=UDR; /*IF error,return -1*/ if(status&(1<<FE)|(1<<DOR)|(1<<PE) return -1; /*Filter the 9th bit,then return*/ resh=(resh>>1)&0x01; Return ((resh<<8)|resl); } |