<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      【MSPM0G3507 系列】printf多串口重定向

      引言

      這里帶來MSPM0G3507的多串口重定向,與STM32的類似。

      syscfg配置

      image

      引腳配置注意

      推薦引腳配置:(建議按照推薦的來配置,一開始測試的時候某些引腳例如PA21復用了其他功能,不能正常使用)
      UART0 ———— Tx PA11 / Rx PA10(方便使用USB先直接進行串口調試)
      UART1 ———— Tx PA18 / Rx PA17
      UART2 ———— Tx PB16 / Rx PB17
      UART3 ———— Tx PA13 / Rx PA14

      printf重定義程序

      image

      點擊查看代碼
      int fputc(int c, FILE* stream) {
          DL_UART_Main_transmitDataBlocking(current_uart, c);
          return c;
      }
      
      int fputs(const char* restrict s, FILE* restrict stream) {
          uint16_t i, len;
          len = strlen(s);
          for (i = 0; i < len; i ++) {
              DL_UART_Main_transmitDataBlocking(current_uart, s[i]);
          }
          return len;
      }
      
      int puts(const char* _ptr) {
          int count = fputs(_ptr, stdout);
          count += fputs("\n", stdout);
          return count;
      }
      

      多串口printf定向程序

      image

      點擊查看代碼
      #define UART0_IDX 1
      #define UART1_IDX 2
      #define UART2_IDX 3
      #define UART3_IDX 4
      
      static UART_Regs *current_uart;
      
      void Set_CurrentUART(uint8_t UART_type) {
          switch (UART_type) {
              case UART0_IDX:
                  current_uart = UART_0_INST;
              break;
              case UART1_IDX:
                  current_uart = UART_1_INST;
              break;
              case UART2_IDX:
                  current_uart = UART_2_INST;
              break;
              case UART3_IDX:
                  current_uart = UART_3_INST;
              break;
              default:
              break;
          }
      }
      

      工程測試代碼(全)

      點擊查看代碼
      
      #include "ti_msp_dl_config.h"
      #include "stdio.h"
      #include "string.h"
      
      #define UART0_IDX 1
      #define UART1_IDX 2
      #define UART2_IDX 3
      #define UART3_IDX 4
      
      static UART_Regs *current_uart;
      
      void Set_CurrentUART(uint8_t UART_type);
      
      int main(void)
      {
          SYSCFG_DL_init();
      
          while (1) {
                  Set_CurrentUART(UART0_IDX);
                  printf("串口零打印成功,數字:%f\r\n", 0.1415926);
                  Set_CurrentUART(UART1_IDX);
                  printf("串口一打印成功,數字:%f\r\n", 1.1415926);
                  Set_CurrentUART(UART2_IDX);
                  printf("串口二打印成功,數字:%f\r\n", 2.1415926);
                  Set_CurrentUART(UART3_IDX);
                  printf("串口三打印成功,數字:%f\r\n", 3.1415926);
          }
      }
      
      void Set_CurrentUART(uint8_t UART_type) {
          switch (UART_type) {
              case UART0_IDX:
                  current_uart = UART_0_INST;
              break;
              case UART1_IDX:
                  current_uart = UART_1_INST;
              break;
              case UART2_IDX:
                  current_uart = UART_2_INST;
              break;
              case UART3_IDX:
                  current_uart = UART_3_INST;
              break;
              default:
              break;
          }
      }
      
      int fputc(int c, FILE* stream) {
          DL_UART_Main_transmitDataBlocking(current_uart, c);
          return c;
      }
      
      int fputs(const char* restrict s, FILE* restrict stream) {
          uint16_t i, len;
          len = strlen(s);
          for (i = 0; i < len; i ++) {
              DL_UART_Main_transmitDataBlocking(current_uart, s[i]);
          }
          return len;
      }
      
      int puts(const char* _ptr) {
          int count = fputs(_ptr, stdout);
          count += fputs("\n", stdout);
          return count;
      }
      
      
      
      

      博客導航

      博客導航

      posted @ 2025-05-25 13:17  膝蓋中箭衛兵  閱讀(485)  評論(0)    收藏  舉報
      ORCID iD icon https://orcid.org/0000-0001-5102-772X
      主站蜘蛛池模板: 九九热在线视频中文字幕| 欧美人成精品网站播放| 夜夜高潮次次欢爽av女| 欧美一本大道香蕉综合视频| 夜夜夜高潮夜夜爽夜夜爰爰| 青青草原国产精品啪啪视频| 国产一区二区三区不卡视频| 国产日韩精品中文字幕| 91精品国产午夜福利| 一本av高清一区二区三区| 国产在线观看网址不卡一区| AV区无码字幕中文色| 亚洲精品一区二区二三区| 毛片久久网站小视频| 亚洲性日韩精品一区二区| 中文字幕日韩精品无码内射| 亚洲精品成人区在线观看| 日韩在线视频线观看一区| 国产精品久久久尹人香蕉| 国产av日韩精品一区二区| www亚洲精品| av永久免费网站在线观看| 沈丘县| 欧洲美熟女乱av在免费| 日韩高清亚洲日韩精品一区二区 | 国产最新精品系列第三页| 亚洲国产精品久久久天堂麻豆宅男 | 国产精品女生自拍第一区| 精品亚洲国产成人av| 免费a级毛片无码av| 亚洲欧美综合一区二区三区| 性xxxxxx中国寡妇mm| 成人精品动漫一区二区| 久久夜色撩人精品国产av| 中文国产成人精品久久一| 遂宁市| 97超级碰碰碰久久久久| 亚洲av成人区国产精品| 亚洲国产美女精品久久久| 日韩有码中文字幕av| 亚洲中文字幕亚洲中文精|