完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
#include
#include #define uchar unsigned char #define uint unsigned int #pragma interrupt_handler uart_rx:12 uchar rdata,flag=0; void delay(uint ms) { uint i,j; for(i=0;i for(j=0;j<1141;j++); } } void uart_init() { UCSRB = 0x00; //disable while setting baud rate UCSRA = 0x00; UCSRC = BIT(URSEL) | 0x06; UBRRL = 0x01; //set baud rate lo UBRRH = 0x00; //set baud rate hi UCSRB = 0x00; } void uart_sendB(uchar data) { while(!(UCSRA&(BIT(UDRE)))) ; UDR=data; while(!(UCSRA&(BIT(TXC)))); UCSRA|=BIT(TXC); } void uart_rx() { UCSRB&=~BIT(RXCIE); rdata=UDR; flag=1; UCSRB|=BIT(RXCIE); } void main() { uart_init(); while(1) { if(flag) { uart_sendB(rdata); flag=0; } } } 我这样写可以通过串口助手发什么收什么,但是我现在想改用如下的: 比如当我收到0xAB的时候,我让串口回复给我0x88 我写成这样 void uart_rx() { UCSRB&=~BIT(RXCIE); rdata=UDR; if(rdata == 0xAB) flag=1; UCSRB|=BIT(RXCIE); } void main() { uart_init(); while(1) { if(flag) { uart_sendB(0X88); flag=0; } } } 但是当我发送0XAB的时候,串口没有任何回复,请问各位是怎么回事呢? 多谢!! |
|
相关推荐
1 个讨论
|
|
你正在撰写讨论
如果你是对讨论或其他讨论精选点评或询问,请使用“评论”功能。
【瑞萨RA6E2】瑞萨E2S软件安装过程,等待过程玩下97_e2 studio_ZGZZ
140 浏览 0 评论
483 浏览 0 评论
【原创】【RA4M2-SENSOR开发板评测】低功耗+USB综合测试
815 浏览 0 评论
1346 浏览 2 评论
804 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
16904 浏览 31 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 20:05 , Processed in 0.528938 second(s), Total 50, Slave 38 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
763