PIC串口通讯问题

PIC串口通讯问题,第1张

串口御猜轿接镇肆受完成时RC1IF被置1,如果你打开了RC1IE,则运行中断程序。类似你说的兆闹第一条。

是允许接受数据完成之后触发RC1IF对应的中断程序。

如果你需要这个flag,根据芯片的型号,还要设定其他一些寄存器才可以正常使用这个中断,比如PEIE,GIE,PEIP等。

函数_write_com和_delay_ms在中断和主程序中都有调用,会导致混合调用。

英文写的很明白了,会上网就不会查英文单词吗?还是不知道什么是混合调用。

比如你主程序调用_delay_ms做100ms延时,正在做循环延时,结果一个中断进来,中断处理程序也调用了_delay_ms,结果就是_delay_ms原有的数据冲掉,从头再来,这次执行是对的。等中断处理完,再执行走到一半的_delay_ms程序,因为数据被冲掉了,轿巧天知道是什么结果。

用的是PIC的C语言吧?不好好看书,PIC的C语言最不灵光的(之一)就是程序的混合调用。资源不够啊!

其它单片机看编译器,有的也会报错,闭裂键有源派的会很聪明(比如KEIL)的知道要保护原始数据,在中断里帮你保护了。

//串口初始化

void usart_init()

{

TRISC = 0xFF//设置C口方向全为输入

RCSTA = 0x90//使能串口工作,连续接收

TXSTA = 0x24//设定TXSTA寄存器。

SPBRG = 0x19//4MHZ, BRGH=1, 9600BPS

INTCON = 0xC0/键液/开放全局中断,使能外部中断

RCIE = 0x1//使能USART接收中断

}

这样配置 还有就是中断配置了 这个我认为你的接受与发送的数据一样说明你的团扮中断在你加一处理以前动作了 明白吗?在稿或物仔细看一下,尤其是PIC的中断系统结构!


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12346656.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-22
下一篇2023-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存