stm32L476RG,通过串口打印信息

调试STM32L476RG时,想要通过串口打印信息方法:

1.通过官方的历程,移植USART的程序,

位置STM32Cube_FW_L4_V1.13.0/Projects/NUCLEO-L476RG/Examples/UART/UART_TwoBoards_ComIT,这里选择串口中断的程序,将main.c 和 mian.h 中关于USART的程序CPOY出来,放在自己的程序当中,

这时候会提示 UART_HandleTypeDef 这个没有定义的错误,

解决方法:打开stm32l4xx_hal_conf.h(路径:工程文件夹下的Inc文件下)配置文件,将宏定义 #define HAL_UART_MODULE_ENABLED打开,这样就可以了

stm32L476RG,通过串口打印信息_第1张图片

2.配置好串口后,打信息方法:

第一种:在usart.c中添加代码

/* USER CODE BEGIN 0 */
#include "stdio.h"
//加入以下代码,支持printf函数,而不需要选择use MicroLIB      
#if 1
#pragma import(__use_no_semihosting)             
//标准库需要的支持函数                 
struct __FILE
{
    int handle;
};

FILE __stdout;       
//定义_sys_exit()以避免使用半主机模式    
void _sys_exit(int x)
{
    x = x;
}
//重定义fputc函数
int fputc(int ch, FILE *f)
{     
    while((USARTx->ISR &0X40)==0);//循环发送,直到发送完毕   
    USARTx->TDR  = (uint8_t) ch;  
    return ch;
}
#endif

使用Printf打印

第二种方法:

直接调用函数:HAL_UART_Transmit_IT(&UartHandle, (uint8_t*)ErrorBuf, ERR_SIZE);就可以实现串口打印调试信息

你可能感兴趣的:(C语言)