(1)试验目的:掌握通过文件系统 *** 作UART设备的方法.
(2)在linux中,所有设备都是以文件的形式被打开并进行读/写 *** 作的,本试验中使用POSIX兼容的文件 *** 作接口函数对底层设备进行 *** 作.其中,POSIX是Portable Operating System Interface for UNIX的首字母缩写,是一套IEEE和ISO标准.
由于没写中断处理程序当发送完成后,触发串口中断进入0x0023地址处运行,就相当于复位了一次一样。所以会出现2次的情况。(第二次由于TI已经为1了所以不会触发中断)解决方法
1、关闭串口中断
EA=0
ES=0
2、写一个串口中断处理函数
void UARTInterrupt(void) interrupt 4
{
if(RI)//RI标志位为1代表接收到数据
{
RI = 0 //清零接收标志位
//在这里添加中断处理函数
}
else
TI = 0//如果RI不为1一般是发送完成中断 把TI(发送完成标志位)清零
}
发送完成后清零TI
SBUF = 'i'
while(!TI)//等待发送完成
TI = 0//发送完成后清零TI
这样就可以实现多个字节发送不会造成冲突
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)