fpbl.net
当前位置:首页 >> STC12C5A60S2单片机的串口中断问题求助 >>

STC12C5A60S2单片机的串口中断问题求助

几毫秒产生一个数据,用串口发送,串口应该跟不上.可以将产生的数据放在存储器中,然后用串口发送,不过这样等待发送的数据也会越来越多.研究了下,这种情况应该是你的定时器中断造成的,可以在串口发送数据是禁止定时器中断,数据发送完成后再打开定时器中断.

这个似乎不难吧,按照你的说法,串口1接第一次收到数据后启动定时器开始计时,并把每次接收的数据放在一个临时的缓存里,当定时器时间到的时候开始串口2的发送程序.个人感觉给串口1的数据里定义一个起始位和结束位更好,这样就不用定时器了

在使用STC12C5A60S2单片机串口二的问题,是你单片机接收用了 串口 void UART_send_char(uchar c) { SBUF=c; // 这是 串口1 发送 while(!(S2CON&S2TI)); //S2TI=0, S2CON&=~S2TI; //S2TI=0 ±ê } void UART_2Interrupt(void) interrupt 8 { if(S2CON&S2RI) //±ê { S2CON&=~S2RI; // flag2=1; temp2=S2BUF; // 这是 串口2 接收 } }

摘录一段我写的程序供参考:;------------------相关寄存器定义------------------------AUXR EQU 8EH ;辅助寄存器AUXR1 EQU 0A2H ;辅助寄存器1CLK_DIV EQU 97H ;时钟分频器S2CON EQU 9AH ;串口2控制寄存器S2BUF EQU 9BH ;串口2

呵呵,你这水平真该恶补一下了.当然不亮了~ “ LED=1; ” 你应该知道是怎么回事了吧,如果代码不是抄的,应该能看懂,不用更多解释了吧? --------------------------------------------------------------------------------------------------------------- 好歹把完整程序给一下,这档次的程序不用捂这么严吧~

在同一个程序里面,可以串口1使用中断方式、串口2使用查询方式.当然,串口2也可以使用中断方式,并且推荐这样做.中断的开启和关闭应该怎样具体操作?为什么关闭中断?设置好串口(不管1、2),打开中断,就不需要关闭中断了,除非特殊需要.是不是串口1收发完成时关总中断?同上,为什么老要关中断你?串口2就可以使用查询方式正常收发了,然后串口1需要通信时再打开总中断?你自己不觉得这样安排很别扭吗?串口2任何时候都可以使用查询方式正常收发(包括中断方式),跟串口1无关.

很想帮你但无奈那个STC89C5*的数据手册里找不到RCAP2L 和 RCAP2H 的含义,而12C5A60的T2设置里没有这个,所以你的程序问题应该在也这里,建议仔细读12C5A60的数据手册,只有手册能帮到你.

说明书说有4个,但看不到除了t0,t1还有哪两个.

很简单啊先定义两个数组,分别存放11 22 33,44 55 66;然后不停的检测32号脚的电平,当从低变高时就发第一个数组的内容,从高变低时发第二个数组的内容.检测电平变化时应该像检测按

串口中断对PCA可能造成的影响是:1、如果是优先级一样,那么一个中断在执行过程中,其他中断只能排队等候,所以有中断响应延迟的情况出现.2、如果是优先级不一样,那么低级中断就可能被高级中断打断的可能.3、如果没有使用using n(n~3)那么如果多个中断都使用了同一个名称的工作寄存器的话,可能会干涉.

alloyfurniture.com | qmbl.net | msww.net | jjdp.net | snrg.net | 网站首页 | 网站地图
All rights reserved Powered by www.fpbl.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com