完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
#include
#include #define uchar unsigned char #pragma interrupt_handler SerialService:12 uchar rtemp,sflag; void SerialInit(void) { UCSRB=(1< UBRRL=51; //晶振8M,波特率9600,则UBRR初始值为51 SREG|=BIT(7); //开全局中断 } void SerialService(void) { rtemp=UDR; //读接收缓冲区 //UCSRA&=~BIT(RXC); //此行没有必要,读出缓冲区后,接收结束标志位清零由硬件自动完成,而且我不确定RXC是写1清零还是赋0清零。 sflag=1; } void main(void ) { SerialInit(); while(1) { if(sflag==1) { UCSRB&=~BIT(RXCIE); //关闭接收结束中断使能 sflag=0; UDR=rtemp; //数据送给发送缓冲区 while(!(UCSRA&(BIT(TXC)))); //等待发送结束 UCSRA|=BIT(TXC); //清零发送结束标志位(写1清零) UCSRB|=BIT(RXCIE); //打开接收结束中断使能 } } } |
|
|
|
只有小组成员才能发言,加入小组>>
2513 浏览 0 评论
1083浏览 2评论
700浏览 1评论
452浏览 0评论
193浏览 0评论
329浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 02:36 , Processed in 1.170279 second(s), Total 81, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号