此帖出自嵌入式系统论坛
最新回复
你的串口中断服务程序不对
if(num=1)
{
SBUF=temp; 当执行完这句时,TI并不马上就等于1
if(TI) TI=0; 所以这句的TI=0没有热行。
num=0; 而直接热行了num=0.
}
然后就退出中断。
待当TI真的等于是时,再进中断时,又没有机会再清它。
如果,你只是想完成最简单的一个字节收发,可以这样试试。
void Com_Interrupt(void) interrupt 4 using 3
{
if (RI)
{
RI=0;
RECEIVR_Buffer=SBUF;
SBUF=RECEIVR_Buffer;
}
if (TI)
TI=0;
}
详情
回复
发表于 2008-6-2 13:55
| ||
|
||
| |
|
|
| |
|
|
此帖出自嵌入式系统论坛
| ||
|
||
此帖出自嵌入式系统论坛
| ||
|
||
| |
|
|
此帖出自嵌入式系统论坛
| ||
|
||
EEWorld Datasheet 技术支持