中断方式实现发送数据串口驱动

原创 2006年06月23日 18:22:00

    在网上找了不少串口方面的资料,国内的资料都没有提到如何用中断方式来实现串口数据发送。其实,采用中断方式实现串口数据发送和采用中断方式实现串口数据接收的过程差不多,都需要开放8259的IRQ3或IRQ级中断,并需要设定modem控制寄存器使OUT2输出低电平,设置中断允许寄存器开放发送和接收中断。
    这里有一点需要注意,《The Art of assembly language programming》中提到,发送寄存器为空时串口会产生中断,但是只会产生一次,书中采用的解决办法是通过IO端口直接写入发送保持寄存器,此时发送完毕后串口便又会产生“发送保持寄存器为空”中断。还有一种方法,我在分析vxworks的串口驱动程序时看到,vxworks采用的是刷新中断允许寄存器的方法(就是每次发送前都设置中断允许寄存器),从实际效果来看是可以的。

相关文章推荐

动手写一个STM8的轻量级bootloader

STM8轻量级Bootloader的个人编写笔记。

当主函数与中断函数共享变量问题

 当时开发的一个产品,一项功能是在通电后播放40秒的语音.测试时发现,大约通电70-80次就有一次播放时间不够40秒就提前停止。当时以为复位有问题,换了复位片,没好。又先后换了CPU,语音芯片,还有电...

控制台下WinApi同步方式实现的串口发送数据

// ApiOpenCom1.cpp : Defines the entry point for the console application. // #include "stdafx.h" #i...

串口DMA方式发送数据MINI2440UartDma

  • 2012年12月27日 16:47
  • 74KB
  • 下载

STM32的串口采用DMA方式发送数据测试

STM32的串口采用DMA方式发送数据测试 文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 环境: 主机:WIN7 开...
  • jdh99
  • jdh99
  • 2012年08月17日 11:28
  • 34477

stm32RS485串口通信——中断接收发送数据

功能:通过PC机的串口调试助手发送数据给串口A,串口B接收到串口A发送的数据,再由串口B将接收到的数据返回给PC机的串口调试助手。 PC->串口A->串口B->PC。 实验平台:stm32f...

Stm32RS485串口通信——中断接收发送数据

main.c源码: /* *说明: *PA0:KEY1;PA1:KEY2; *PA2:LED1;PA3:LED2; *PA9:USART1_TX;PA10:USART1_RX */ #include...

Stm32RS232串口通信——中断接收发送数据

main.c配置: /* *说明: *PA0:KEY1;PA1:KEY2; *PA2:LED1;PA3:LED2; *PA9:USART1_TX;PA10:USART1_RX */ #include...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:中断方式实现发送数据串口驱动
举报原因:
原因补充:

(最多只允许输入30个字)