<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          STM32 串口之中斷接受

          作者: 時(shí)間:2016-11-25 來(lái)源:網(wǎng)絡(luò) 收藏

          本文引用地址:http://www.ex-cimer.com/article/201611/321299.htm

          //========================================================
          PUTCHAR_PROTOTYPE
          {


          USART_SendData(USART, (uint8_t) ch);


          while (USART_GetFlagStatus(USART, USART_FLAG_TC) == RESET)
          {

          }
          return ch;
          }
          //========================================================

          //========================================================
          #ifdef Use_USART_Printf
          static char *itoa(int value, char *string, int radix)
          {
          int i, d;
          int flag = 0;
          char *ptr = string;


          if (radix != 10)
          {
          *ptr = 0;
          return string;
          }

          if (!value)
          {
          *ptr++ = 0x30;
          *ptr = 0;
          return string;
          }


          if (value < 0)
          {
          *ptr++ = -;


          value *= -1;
          }

          for (i = 10000; i > 0; i /= 10)
          {
          d = value / i;

          if (d || flag)
          {
          *ptr++ = (char)(d + 0x30);
          value -= (d * i);
          flag = 1;
          }
          }


          *ptr = 0;

          return string;

          }

          void USART_printf(USART_TypeDef* USARTx, uint8_t *Data,...)
          {
          const char *s;
          int d;
          char buf[16];

          va_list ap;
          va_start(ap, Data);

          while ( *Data != 0) // 判斷是否到達(dá)字符串結(jié)束符
          {
          if ( *Data == 0x5c ) //
          {
          switch ( *++Data )
          {
          case r: //回車符
          USART_SendData(USARTx, 0x0d);
          Data ++;
          break;

          case n: //換行符
          USART_SendData(USARTx, 0x0a);
          Data ++;
          break;

          default:
          Data ++;
          break;
          }
          }
          else if ( *Data == %)
          { //
          switch ( *++Data )
          {
          case s: //字符串
          s = va_arg(ap, const char *);
          for ( ; *s; s++)
          {
          USART_SendData(USARTx,*s);
          while( USART_GetFlagStatus(USARTx, USART_FLAG_TC) == RESET );
          }
          Data++;
          break;

          case d://十進(jìn)制
          d = va_arg(ap, int);
          itoa(d, buf, 10);
          for (s = buf; *s; s++)
          {
          USART_SendData(USARTx,*s);
          while( USART_GetFlagStatus(USARTx, USART_FLAG_TC) == RESET );
          }
          Data++;
          break;
          default:
          Data++;
          break;
          }
          }
          else USART_SendData(USARTx, *Data++);
          while( USART_GetFlagStatus(USARTx, USART_FLAG_TC) == RESET );
          }
          }
          #endif
          //========================================================

          4、最后就是USART 中斷服務(wù)程序,截圖如下:




          上一頁(yè) 1 2 下一頁(yè)

          關(guān)鍵詞: STM32串口中斷接

          評(píng)論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();