原创 lm3s串口发送函数对比

2012-11-26 10:18 1216 13 14 分类: MCU/ 嵌入式 文集: 单片机与ARM
以下是代码片段:lm3s9b92上的串口发送函数对比
//*****************************************************************************
 //
 // The UART0 INIT.
 //
 //*****************************************************************************
 void Uart0Init()
 {
  SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0);   //移植时更改
  SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);   //移植时更改
  GPIOPinConfigure(GPIO_PA0_U0RX); //移植时更改
     GPIOPinConfigure(GPIO_PA1_U0TX); //移植时更改
     GPIOPinTypeUART(GPIO_PORTA_BASE, GPIO_PIN_0 | GPIO_PIN_1);
  UARTConfigSetExpClk(UART0_BASE, SysCtlClockGet(),115200,
                             (UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE |
                              UART_CONFIG_PAR_NONE));
  //
     // Enable the UART interrupt.
     //
    IntEnable(INT_UART0);
    UARTIntEnable(UART0_BASE, UART_INT_RX|UART_INT_RT);
    IntMasterEnable();
    UARTEnable(UART0_BASE);
 }
 
 //*****************************************************************************
 //方法1:发少量字符(不推荐)
 // Send a string to the UART(这个函数发送字符数不能一次性超过17个(byte)).
 //
 //*****************************************************************************
 void  UARTSend(const uint8 *pucBuffer, uint16 ulCount)
 {
     //
     // Loop while there are more characters to send.
     //
     while(ulCount--)
     {
         //
         // Write the next character to the UART.
         //
         UARTCharPutNonBlocking(UART0_BASE, *pucBuffer++);
     }
 while(UARTBusy(UART0_BASE))  {};           //是否发送结束?
 }
 
 //*****************************************************************************
 //方法二:建议使用,无限制
 // Send a string to the UART.
//这个发送函数使用无任何限制(推荐,但是如果是485发送需要加上 while(UARTBusy(UART0_BASE))  {};           //是否发送结束?
 //
 //*****************************************************************************
 void UART0Send (const uint8  *pucBuffer,uint16 Length)
 {
     uint16 ucByte = Length;
 
     while (ucByte) 
  {
         if ( UARTSpaceAvail(UART0_BASE) ) 
  {
         UARTCharNonBlockingPut(UART0_BASE, *pucBuffer++);
         ucByte--;
         }
     }  
  
 }
 
 
 
 
第三部分:RS485的一个发送实例
/************************************************************************
 * 函数名: 
 * 函数功能:
 * 输入参数:
 * 输出参数:
 * 返回值:
 ************************************************************************/
 void Rs485Send(const unsigned char *pucBuffer, unsigned long ulCount)
 {
  GPIOPinWrite(GPIO_PORTB_BASE,GPIO_PIN_6,GPIO_PIN_6);   //RS485发送
  SysCtlDelay(230);
 
     UART1Send((unsigned char *)pucBuffer, ulCount);
 
  while(UARTBusy(UART1_BASE))  {};              //等待串口空闲
  GPIOPinWrite(GPIO_PORTB_BASE,GPIO_PIN_6,0X00);      //RS485接收
  SysCtlDelay(230);
 }
PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户377235 2012-11-23 23:49

学习一下!
相关推荐阅读
liang890319_284707880 2016-03-22 11:41
[博客大赛]我在搞嵌入式 我有罪
  我在搞嵌入式 我有罪 做嵌入式也有几年了 刚学习的时候书上说嵌入式的定义是以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计...
liang890319_284707880 2015-10-22 11:57
帕萨特迈腾蒙迪欧哪个好
氵灬清风灬说:太小了,没法穿了,懒得换了 junyao00022说:............................... jd272475byp说:宝贝收到啦,衣服质量非常不错,...
liang890319_284707880 2015-10-22 11:56
二手荣威550和二手起亚k2哪个好
二手荣威550和二手起亚k2哪个好   风之乞说:衣服挺好的,就是偏小,已经更换了 梦里水乡0609说:不错 很好  不了不错  赞 四灵之首说:衣服质量不错,韵达快递不行~ ...
liang890319_284707880 2015-10-22 11:55
澳大利亚深海鱼油哪个牌子好
hgjfhgj说:不错  价格便宜  款式不错  开始买中码小了一点  免费给换的  好店家 小杰c子说:非常合适。也很有气质 天佑945说:还可以,性价比高。。。。。。。。。。 Ab...
liang890319_284707880 2015-10-19 11:03
常用DDR sdram和Flash型号
  以下是代码片段: http://blog.csdn.net/myarrow/article/details/7854863   主要是三星 现代 ...
liang890319_284707880 2013-09-29 17:00
ROM FLASH RAM
EPROM、EEPROM、FLASH的总结性区别   http://xdc0363.blog.163.com/blog/static/11546200220...
EE直播间
更多
我要评论
1
13
关闭 站长推荐上一条 /1 下一条