打印

串口程序问题

[复制链接]
1726|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
sinadz|  楼主 | 2013-2-26 21:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
火箭球迷| | 2013-2-26 21:34 | 只看该作者
第一配置时钟,时钟使能,第二配置中断,中断使能。第三配置GPIO。第四配置串口通信模式,比如波特率什么的。第五,实现串口中断程序 第六,在主循环里面处理中断接收缓冲区

使用特权

评论回复
板凳
hsbjb| | 2013-2-26 21:47 | 只看该作者
void SIGNAL_Usart0_RX(void) //接收中断
{  
   u8 data;  
   u8 tmphead;         
  
   data = USART_ReceiveData(USART1);

   Frame_counting = 0;  
   tmphead = ( UART0_RxHead + 1 ) & UART0_RX_BUFFER_MASK;   
   UART0_RxHead = tmphead;         

   if ( tmphead == UART0_RxTail )
   {  
        //这里加入队列溢出保护
    }  
   UART0_RxBuf[tmphead] = data;   
}  
//--------------------------------------------------
void SIGNAL_Usart0_TX(void) //发送中断  
{  
    u8 tmptail;  
    if ( UART0_TxHead != UART0_TxTail )   
     {         
       tmptail = ( UART0_TxTail + 1 ) & UART0_TX_BUFFER_MASK;              
       UART0_TxTail = tmptail;      
       USART_SendData(USART1,
       UART0_TxBuf[tmptail]);   
     }
     else
     {  
       USART_ITConfig(USART1,USART_IT_TXE,DISABLE);//
     }  
}  
//照着人家的写个中断程序,然后你在主循环里面处理UART0_TxBuf和UART0_RxBuf缓冲区就可以了。具体代码你自己写下

使用特权

评论回复
地板
txcy| | 2013-2-26 22:00 | 只看该作者
还是建议自己先写写

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

304

主题

2313

帖子

0

粉丝