S3C2440之UART操作(FIFO中断模式)

来源:本站
导读:目前正在解读《S3C2440之UART操作(FIFO中断模式)》的相关信息,《S3C2440之UART操作(FIFO中断模式)》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《S3C2440之UART操作(FIFO中断模式)》的详细说明。
简介:本文给大家分享了S3C2440之UART操作(FIFO中断模式)。

3个独立的串口,每一个都可以利用DMA和中断方式操作。每个包含2个64字节FIFO,一个接,一个发。非FIFO模式相当于FIFO模式的一个寄存器缓冲模式。

每一个UART有7种状态,overrun错误,校验错误,帧错误,断点,接收缓冲区准备好,发送缓冲区为空,发送移位寄存器为空。当接收移位寄存器中的数据传给FIFO的时候,且接收的数据触发了Rx FIFO的阀值,Rx中断产生了。发送器中FIFO的还未发得数据到达Tx FIFO阀值的时候,Tx中断产生了。

功能:在串口上输入16字节,包括回车,然后会把输入的字符回显在串口终端上。

程序代码:

//函数声明void Uart_init(void);void int_init(void);void __irq Uart0(void);void Main(void);//缓存static unsigned char mywords[100] = {0,0};static int data_is_ready = 0;  //初始化uartvoid Uart_init(void){//初始化引脚rGPHCON = 0x00faaa;//把引脚设置为TXD0,和RXD0模式rGPHUP  = 0x7ff;  //不加上拉电阻//初始化UARTrULCON0 = 0x03; //每次发送8位数据,一个停止位,无校验,普通模式rUCON0 = (0x05) | (1<<9);//设置接收和发送都是用中断的方式rUFCON0 = (0x3<<6) | (0x2<<4) | (0x01<<0); //使能FIFO,发送48字节,接收16字节rUMCON0 = 0;//设置时钟频率rUBRDIV0 = 26; } //初始化中断void int_init(void){rINTMOD=0x0;//中断模式寄存器    pISR_UART0 = (int)Uart0;//设中断服务函数地址    rINTSUBMSK = ~(0x3);    //打开UART0发送和接收中断屏蔽rINTMSK = ~(0x1<<28);   //打开UART0中断屏蔽//rSUBSRCPND=(BIT_SUB_TXD0); }void Main(void){MMU_Init();int_init();Uart_init();while(1);}//中断处理函数void __irq Uart0(void){unsigned char *ps = mywords;int i;if(rSUBSRCPND & BIT_SUB_RXD0)  //接收中断{rINTSUBMSK |= BIT_SUB_RXD0;  while(((rUFSTAT0&0x1f)>0)) {             *ps++ = rURXH0;          }          data_is_ready = 1;                rSUBSRCPND = BIT_SUB_RXD0;  }//发送中断else if(rSUBSRCPND & BIT_SUB_TXD0) {rINTSUBMSK |= BIT_SUB_TXD0;                      while((!(rUFSTAT0&(1<<14))) && (*ps != 'r'))          {             rUTXH0 = *ps++;                     for(i=0; i<100;i++);          }                         data_is_ready = 0;            rSUBSRCPND = BIT_SUB_TXD0;      }     rSRCPND = BIT_UART0;      rINTPND = BIT_UART0;      if(data_is_ready)          rINTSUBMSK &= ~(BIT_SUB_TXD0);         else          rINTSUBMSK &= ~(BIT_SUB_RXD0);         //rINTSUBMSK &= ~(BIT_SUB_TXD0);} 

提醒:《S3C2440之UART操作(FIFO中断模式)》最后刷新时间 2024-03-14 00:57:50,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《S3C2440之UART操作(FIFO中断模式)》该内容的真实性请自行鉴别。