调试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打开,这样就可以了
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);就可以实现串口打印调试信息
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)