成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

一文了解串口打印,你知道嗎?

商務(wù)辦公
串口在嵌入式領(lǐng)域不僅是一個(gè)通訊接口,還是一種調(diào)試工具,其好用程度不亞于硬件仿真。

[[351379]]

串口在嵌入式領(lǐng)域不僅是一個(gè)通訊接口,還是一種調(diào)試工具,其好用程度不亞于硬件仿真。有些環(huán)境不方便連接Jlink進(jìn)行硬件仿真,或者并不是必現(xiàn)的問(wèn)題,我們需要定位出現(xiàn)問(wèn)題的地方,可以選擇保存log的方式,但是需要后續(xù)讀取,且受到Flash大小的限制,如果可以放置一臺(tái)計(jì)算機(jī)到現(xiàn)場(chǎng),使用串口打印無(wú)疑是最好的辦法,在C語(yǔ)言中 printf函數(shù)輸出各種類(lèi)型的數(shù)據(jù),使用格式控制輸出各種長(zhǎng)度的字符,甚至輸出各種各樣的圖案,需要將串口重定向到printf函數(shù)。

01硬件打印

在STM32的應(yīng)用中,我們常常對(duì)printf進(jìn)行重定向的方式來(lái)把打印信息printf到我們的串口助手。在MDK環(huán)境中,我們常常使用MicroLIB+fputc的方式實(shí)現(xiàn)串口打印功能,即:串口重映射

代碼中記得添加一下頭文件

#include < stdio.h >

兼容不同IDE的putchar重映射。

  1. #ifdef __GNUC__ 
  2.   /* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printf 
  3.      set to 'Yes') calls __io_putchar() */ 
  4.   #define PUTCHAR_PROTOTYPE int __io_putchar(int ch) 
  5. #else 
  6.   #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f) 
  7. #endif /* __GNUC__ */ 

當(dāng)然也需要配置下串口,不需要配置中斷。

  1. void UART_Init(void) 
  2.   USART_InitTypeDef USART_InitStructure; 
  3.   GPIO_InitTypeDef GPIO_InitStructure; 
  4.  
  5.   /* Enable GPIO clock */ 
  6.   RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE); 
  7.   /* Enable UART1 clock */ 
  8.   RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE); 
  9.   /* Connect PXx to USARTx_Tx*/ 
  10.   GPIO_PinAFConfig(GPIOA, 9, GPIO_AF_USART1); 
  11.    
  12.   /* Connect PXx to USARTx_Rx*/ 
  13.   GPIO_PinAFConfig(GPIOA, 10, GPIO_AF_USART1); 
  14.    
  15.   /* Configure USART Tx as alternate function  */ 
  16.   GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; 
  17.   GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; 
  18.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; 
  19.    
  20.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; 
  21.   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; 
  22.   GPIO_Init(GPIOA, &GPIO_InitStructure); 
  23.    
  24.   /* Configure USART Rx as alternate function  */ 
  25.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; 
  26.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; 
  27.   GPIO_Init(GPIOA, &GPIO_InitStructure); 
  28.    
  29.   USART_InitStructure.USART_BaudRate = 115200; 
  30.   USART_InitStructure.USART_WordLength = USART_WordLength_8b; 
  31.   USART_InitStructure.USART_StopBits = USART_StopBits_1; 
  32.   USART_InitStructure.USART_Parity = USART_Parity_No; 
  33.   USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; 
  34.   USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; 
  35.    
  36.   /* USART configuration */ 
  37.   USART_Init(USART1, &USART_InitStructure); 
  38.    
  39.   /* Enable USART */ 
  40.   USART_Cmd(USART1, ENABLE); 

打印函數(shù)

  1. PUTCHAR_PROTOTYPE 
  2.   /* Place your implementation of fputc here */ 
  3.   /* e.g. write a character to the USART */ 
  4.   USART_SendData(USART1, (uint8_t) ch); 
  5.  
  6.   /* Loop until the end of transmission */ 
  7.   while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET) 
  8.   {} 
  9.  
  10.   return ch; 

不同的IDE也要對(duì)應(yīng)的的配置。

Keil配置,需要勾選MicroLIB選項(xiàng)。

 

IAR配置

 

打印效果

本文轉(zhuǎn)載自微信公眾號(hào)「知曉編程」,可以通過(guò)以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系知曉編程公眾號(hào)。

 

責(zé)任編輯:武曉燕 來(lái)源: 知曉編程
相關(guān)推薦

2025-01-14 11:07:30

JenkinsWAR目錄

2022-08-02 10:01:34

Import語(yǔ)句ES模塊

2020-08-27 07:34:50

Zookeeper數(shù)據(jù)結(jié)構(gòu)

2021-05-31 10:22:09

Go語(yǔ)言代碼

2011-05-07 15:30:27

噴墨打印機(jī)技術(shù)優(yōu)缺點(diǎn)

2024-05-28 09:12:10

2024-04-07 00:00:00

ESlint命令變量

2023-12-20 08:23:53

NIO組件非阻塞

2023-12-12 08:41:01

2023-04-26 10:21:04

2024-04-30 09:02:48

2023-04-26 15:43:24

容器編排容器編排工具

2023-11-20 08:18:49

Netty服務(wù)器

2022-02-25 07:34:36

MQTT協(xié)議RabbitMQ

2022-06-08 08:11:56

威脅建模網(wǎng)絡(luò)安全網(wǎng)絡(luò)攻擊

2023-11-06 08:16:19

APM系統(tǒng)運(yùn)維

2025-05-23 09:38:54

JWT開(kāi)發(fā)Go

2022-11-11 19:09:13

架構(gòu)

2020-02-20 08:30:49

OSPF網(wǎng)絡(luò)協(xié)議路由協(xié)議

2021-04-20 23:16:06

SparkSQL語(yǔ)法
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 99re6在线| 亚洲精品日韩一区二区电影 | 天堂视频免费 | 成人免费视频网站在线观看 | 青青草亚洲| 免费性视频 | 日韩欧美三区 | 成人亚洲综合 | 欧美一级做a爰片免费视频 国产美女特级嫩嫩嫩bbb片 | 99视频免费看 | 毛片网站在线观看 | 真人女人一级毛片免费播放 | 99国内精品久久久久久久 | 久草青青草 | 亚洲劲爆av | 九九久久精品视频 | 色婷婷av99xx | 欧美大片一区 | 成人午夜影院 | 成人免费视频播放 | 久久免费视频在线 | 成人免费黄视频 | 亚洲男人天堂av | 久草欧美 | 免费的色网站 | 国产91久久久久 | 欧美视频免费在线 | 国产一区 | 波多野结衣一区二区 | 午夜电影网站 | 欧美亚洲国产日韩 | 另类专区成人 | 国产成人精品一区二区 | 一级黄色在线 | 国产一区二区三区在线 | www.887色视频免费 | 国产亚洲一区二区三区 | 久草成人 | 99久久精品国产一区二区三区 | 精品久久影院 | 黄色免费观看网站 |