完善资料让更多小伙伴认识你,还能领取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); //打开接收结束中断使能 } } } |
|
|
|
|
只有小组成员才能发言,加入小组>>
3038 浏览 0 评论
800浏览 1评论
1048浏览 0评论
823浏览 0评论
1006浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 17:50 , Processed in 0.691677 second(s), Total 76, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1475
