中断方式实现发送数据串口驱动
2006-06-23 18:22
706 查看
在网上找了不少串口方面的资料,国内的资料都没有提到如何用中断方式来实现串口数据发送。其实,采用中断方式实现串口数据发送和采用中断方式实现串口数据接收的过程差不多,都需要开放8259的IRQ3或IRQ级中断,并需要设定modem控制寄存器使OUT2输出低电平,设置中断允许寄存器开放发送和接收中断。
这里有一点需要注意,《The Art of assembly language programming》中提到,发送寄存器为空时串口会产生中断,但是只会产生一次,书中采用的解决办法是通过IO端口直接写入发送保持寄存器,此时发送完毕后串口便又会产生“发送保持寄存器为空”中断。还有一种方法,我在分析vxworks的串口驱动程序时看到,vxworks采用的是刷新中断允许寄存器的方法(就是每次发送前都设置中断允许寄存器),从实际效果来看是可以的。
这里有一点需要注意,《The Art of assembly language programming》中提到,发送寄存器为空时串口会产生中断,但是只会产生一次,书中采用的解决办法是通过IO端口直接写入发送保持寄存器,此时发送完毕后串口便又会产生“发送保持寄存器为空”中断。还有一种方法,我在分析vxworks的串口驱动程序时看到,vxworks采用的是刷新中断允许寄存器的方法(就是每次发送前都设置中断允许寄存器),从实际效果来看是可以的。
相关文章推荐
- 51单片机中用中断方式实现串口数据发送与接收
- STM8S003F使用IO口模拟串口(三)使用中断方式发送和接收数据
- 控制台下WinApi同步方式实现的串口发送数据
- 串口发送数据查询方式与中断方式
- 串口以DMA方式发送(TX)数据
- 串口中断方式实现FIFO
- WPF内实现与串口发送数据和接收数据
- STM32使用串口IDLE中断的两种接收不定长数据的方式
- 关于RS485通讯中使用STM32串口以DMA方式发送数据丢失字节的问题
- 智能LED灯 Android界面及串口发送数据实现
- STM32—无需中断来实现使用DMA接收串口数据(原创)
- dsp控制DM9000实现802.3数据收发第三篇,调试过程程序第二版;接受部分可用,但是容易掉帧,采用的读取dm9000中断寄存器的方式获取数据
- 使用VB 以HttpPost方式 实现数据发送
- 单片机C51串口中断接收和发送测试例程(含通信协议的实现)
- C#实现串口数据循环发送
- zynq的自定义IP的驱动(带中断)怎么写?(petalinux实现方式)
- STM32使用串口中断发送和接受数据
- Zstack之uart中断方式数据发送
- linux串口驱动分析——发送数据
- 串口驱动(四)--中断模式实现禁用fifo串口通信浅析