1、使用printf语句通过串口输出我们想要的参数值 具体的用法:使用之前必须包含相应的头文件#include < stdio.h > int fputc(int ch, FILE *f)//重定向,让printf输出到串口 { USART_SendData(USART1, (uint8_t) ch); while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET); return ch; } 1....
串口是我们常用的一个数据传输接口,STM32F103系列单片机共有5个串口,其中1-3是 通用同步/异步串行接口 USART(Universal Synchronous/Asynchronous Receiver/Transmitter),4,、5是 通用异步 串行接口 UART( Universal Asynchronous Receiver/Transmitter)。 配置串口包括三部分内容 : 1. I/O口配置:TXD配置为复用推挽输出( ...
然后在usart.c代码保护区/* USER CODE BEGIN 0 */添加,不在保护区添加MX生成代码时会被删除,也不能自己手动添加保护区 printf代码 2、处理完usart.c以后我们回到mian.c中也在 ——— /* USER CODE BEGIN Includes */ /* USER CODE END Includes */保护区中添加#include "stdio.h" ——— 不能添加在/...
开发板板载了一个CH340z换串口,连接到USART1。 接下来开始配置USART1: 配置时钟树 STM32L4的最高主频到80M,所以配置PLL,最后使HCLK = 80Mhz即可: 生成工程设置 代码生成设置 最后设置生成独立的初始化文件: 生成代码 点击GENERATE CODE即可生成MDK-V5工程: 3. 重定向printf函数到USART1 参考:【STM32Cube_09】...
使用STM32CubeMX软件配置STM32F407开发板USART1与PC进行异步通信(阻塞传输方式、中断传输方式),具体为 使用WK_UP按键触发串口输出,每按下一次WK_UP按键就以中断方式发送一次数据,并在串口传输完成中断回调函数中输出提示信息和翻转RED_LED灯的状态,同时使用串口中断接收回调函数完成对用户发来的命令解析,发送命令“#1...
STM32CubeMx配置USART1增加打印功能 描述 1.创建基于STM32F03C8T6工程 1.1配置时钟 选择外部高速时钟源HSE 1.2配置系统时钟树使其达到最大时钟72MHz(最大系统时钟) 2.配置串口1 3.生成代码 具体工程配置可参考上几篇博客。 4.串口重定向 勾选微库
int fputc(int ch,FILE *f) { uint8_t temp[1]={ch}; HAL_UART_Transmit(&huart1,temp,1,2); return(ch); } 函数可以添加在main()函数前面,也可以添加在usart.c里面。 作用:重新定义printf(),指向huart1(串口1),在这里可以更改为其他串口。
[0]==0xff)//接收结束标志位,这个数据可以自定义,根据实际需求,这里只做示例使用,不一定是0xff{printf_usart();}RxBuff[0]=0;HAL_UART_Receive_IT(&huart1,(uint8_t*)RxBuff,1);//每接收一个数据,就打开一次串口中断接收,否则只会接收一个数据就停止接收__HAL_TIM_SET_COUNTER(&htim3,1);// ...
如果没有使能串口USART的话,在TFTLCD_Init函数里面有一句话需要注释掉,就是printf打印的这一句,应该是在482行这个位置,这句话负责打印检测到的LCD ID号,可以直接用串口助手看到。 代码语言:javascript 代码运行次数:0 运行 AI代码解释 if(lcddev.id==0X5761)lcddev.id=0X1963;//SSD1963读回的ID是5761H,为方...
printf_usart(); } RxBuff[0]=0; HAL_UART_Receive_IT(&huart1, (uint8_t*)RxBuff,1);//每接收一个数据,就打开一次串口中断接收,否则只会接收一个数据就停止接收__HAL_TIM_SET_COUNTER(&htim3,1);// 计数清零,从头开始计}/* USER CODE END 4 */ ...