AVR 单片机的中断函数能在头文件里面声明吗?
展开全部
我在ICCAVR软件里是可以的!
曾经也发现过中断函数没有被调用的情况!研究了一下才发现原因出在编译时没有设置单片机类型。
不知道回答对你有没有用!
曾经也发现过中断函数没有被调用的情况!研究了一下才发现原因出在编译时没有设置单片机类型。
不知道回答对你有没有用!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
函数中没开接收中断,你提问时也没上传接收中断函数,我没法分析。
从你的设计思路上说,接收中断函数里应该有unsigned cRXData;cRXData=UDR; Usart_PutChar(cRXData);
或者更简单一点:Usart_PutChar(UDR);
至于“不接电源时能收到数据也能发送”原因是TXD和RXD线上由MAX232引脚带电,经AVR的引脚内部保护二极管向VCC及耦合电容供电,使AVR电压达到一定值后工作,但工作一个小时间段后,VCC下降,AVR停止工作,而后又有一次又一次的充放电……,所以可能会断续地发0X31。
“RXD和TXD亮”的原因可能是你的串口调试软件一直在发送数据。
猜测中,等你的自问自答正解。
从你的设计思路上说,接收中断函数里应该有unsigned cRXData;cRXData=UDR; Usart_PutChar(cRXData);
或者更简单一点:Usart_PutChar(UDR);
至于“不接电源时能收到数据也能发送”原因是TXD和RXD线上由MAX232引脚带电,经AVR的引脚内部保护二极管向VCC及耦合电容供电,使AVR电压达到一定值后工作,但工作一个小时间段后,VCC下降,AVR停止工作,而后又有一次又一次的充放电……,所以可能会断续地发0X31。
“RXD和TXD亮”的原因可能是你的串口调试软件一直在发送数据。
猜测中,等你的自问自答正解。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我去,直接试一哈不就知道了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询