HAL_UART_Receive(&huart1,&ch, 1, 0xffff); return ch; } //后面直接使用printf函数即可: printf("AnQi测试\r\n"); 若不想自己封装代码,只需把usart_printf.c复制到主函数即可。 3.主函数main.c 记得在主函数中引入.h文件 直接使用printf即可,和C语言中的用法相同 4.Keil设置 在编译下载之前,一定要...
其次,定义打印函数(以串口2为例): /** * @brief 自定义UART2串口打印 * @param *fmt,... 要打印的数据内容,用法类似printf * @retval void */ extern UART_HandleTypeDef huart2; void My_printf(char* fmt,...) { static __align(8) uint8_t USART2_buffer[128]; va_list ap; va_start(ap,...
HAL_UART_Transmit(&UartHandle,temp,1,2); //UartHandle是串口的句柄 } //重定向函数2 PUTCHAR_PROTOTYPE { HAL_UART_Transmit(&UARTHandle, (uint8_t *)&ch, 1, 0xFFFF); return ch; } 在keil中勾选使用C库 之后就可以 使用printf()函数,像C语言一样输出打印信息,支持 %d %x 等一些格式输出。...
uint8_t ch_r; //重写这个函数,重定向printf函数到串口,意思就是说printf直接输出到串口,其默认输出到控制台的 /*fputc*/ intfputc(intc,FILE* f) { ch=c; HAL_UART_Transmit(&huart1,&ch,1,1000);//发送串口 returnc; } //重定向scanf函数到串口 意思就是说接受串口发过来的数据,其默认是接受控制...
//重定向scanf函数到串口 意思就是说接受串口发过来的数据 /*fgetc*/ int fgetc(FILE * F) { HAL_UART_Receive (&huart1,&ch_r,1,0xffff);//接收 return ch_r; } 3.修改main.c 文件 #include "stdio.h"/*添加头文件 */ 在main()函数里添加测试代码:printf("\n===函数Printf函数发送数据===...
重定义printf函数 HAL库,UART中断接收 HAL库UATR接收与发送例程 工程创建 1设置RCC 设置高速外部时钟HSE...
对于printf() 函数我们并不陌生,初学C语言使用的第一个函数,其作用是在终端打印显示格式化字符串。 但是如果我们使用的是单片机运行C语言代码,如果不经任何修改直接使用 printf() 函数,结果是什么现象都没有。要想使用这个函数,常规方法是重定向 printf() 函数,结合串口来打印到串口助手上位机。这里的重定向就非常复...
//重写这个函数,重定向printf函数到串口,意思就是说printf直接输出到串口,其默认输出到控制台的 /*fputc*/ intfputc(intc,FILE* f) { ch=c; HAL_UART_Transmit(&huart1,&ch,1,1000);//发送串口 returnc; } //重定向scanf函数到串口 意思就是说接受串口发过来的数据,其默认是接受控制台的数据 ...