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

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

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

串口接收中断和连续发送的矛盾!

出现的问题:为什么我配置的串口中断,只能接收到数据头和尾?PC发送123,我接收到13;PC发送12345,我接收到15。 波特率也是匹配的呀,怎么就漏接了中间部分呢? 暂时想到的原因:因为...
  • u011964923
  • u011964923
  • 2015年10月10日 11:08
  • 3648

STM32使用串口中断发送和接受数据

主要参考ALIENTEK 战舰STM32的开发教程。因商业上的应用引起的纠纷与本人无关. 这里用到的芯片为STM32F103,使用中断进行串口的接受和发送数据。 这里使用直接操作寄存器的方式,使用库函...
  • OpticalSoliton
  • OpticalSoliton
  • 2014年12月24日 15:07
  • 1840

UART0串口编程系列 串口编程(UART0)之中断方式(一)

本文章针对的是ARM2200环境下编写串口程序,其中设计轮循方式,中断方式,以及在UC/OS-II操作系统下的串口编程。 使用轮循和中断两种方式来实现串口编程。 (当然了,用中断实现串口编...
  • yyyljw
  • yyyljw
  • 2015年12月09日 17:11
  • 1558

MFC串口通信设置及发送、中断接收程序

前一段做了个串口通信小软件,就是现实利用上位机软件通过串口通信对下位机(单片机)通信,校时LED点阵万年历,省去按键调节的麻烦,...
  • u013541325
  • u013541325
  • 2017年07月22日 22:33
  • 691

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

功能:通过PC机的串口调试助手发送数据给串口A,串口B接收到串口A发送的数据,再由串口B将接收到的数据返回给PC机的串口调试助手。 PC->串口A->串口B->PC。 实验平台:stm32f...
  • zhubao124
  • zhubao124
  • 2016年07月18日 14:40
  • 2032

STM32中关于串口中断的调试(不断进入发送中断的原因)

说来惭愧,前日在调试stm32f10系列的单片机的时候,想做一个关于串口发送的状态机,每隔100毫秒发送一次命令。没有用DMA,就是想单纯的使用发送中断来数据,结果在调试的时候一直死在了串口中断那里,...
  • ma57457
  • ma57457
  • 2016年10月08日 20:52
  • 4481

STM8 UART中断发,中断收

STM8 UART 初始化配置STM8 UART的几个常用寄存器分别为: UART1_CR1:控制寄存器1 UART1_CR3:控制寄存器3 UART1_BRR2:波特率寄存器2 UART1_...
  • yuanquanzheng
  • yuanquanzheng
  • 2017年01月23日 16:46
  • 2003

STM32串口发送中断

SECTION 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22...
  • kevinhg
  • kevinhg
  • 2014年10月14日 22:00
  • 38203

用C语言中断方式实现串口的读写

#include #include #include #define LSB 0 #define MSB 1 #define RXR 0 #define TX...
  • neubuffer
  • neubuffer
  • 2013年11月23日 14:18
  • 591

c51单片机上的发送中断标志位

对于一些大多数单片机,他有一个专门的标志位来给串口的发送或接受数据做判断。 比如c51中,TIx和RIx。 TIx标识数据缓冲区的数据是否发送完毕,TIx = 1,表示发送完毕,TIx= 0,表示还没...
  • raining_heart
  • raining_heart
  • 2014年04月02日 14:56
  • 2036
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:中断方式实现发送数据串口驱动
举报原因:
原因补充:

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