IDE软件实现注意事项

一、代码的位置

区域标记 用途
/* USER CODE BEGIN 0 */ 放头文件、宏定义、函数声明、fputc 重定向
/* USER CODE BEGIN PV */ 放全局变量(整个文件可用)
/* USER CODE BEGIN PD */ 放宏定义(#define
/* USER CODE BEGIN PFP */ 放私有函数声明(函数原型) ,如 static void MyFunction(void);
/* USER CODE BEGIN PM */ 放私有宏定义,通常用于复杂宏或调试宏,与 PD 类似但语义更侧重"宏函数"
/* USER CODE BEGIN 2 */ main 函数初始化后、while 循环前执行的代码
/* USER CODE BEGIN 3 */ while 循环内部末尾的代码
/* USER CODE BEGIN 4 */ 放回调函数、自定义函数
/* USER CODE BEGIN WHILE */ while(1) 循环开头的代码
/* USER CODE BEGIN PTD */ 放用户自定义的类型定义,如 typedef structtypedef enum

二、printf的实现

cs 复制代码
#ifdef __GNUC__
#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)

PUTCHAR_PROTOTYPE
{
    HAL_UART_Transmit(&huart6, (uint8_t*)&ch, 1, HAL_MAX_DELAY);
    return ch;
}
#endif

三、HAL_UART_Receive 的data类型注意

uint8_t 后面的 8 就是"8位"的意思,所以它只能是 1 字节,而不是 4 字节。

因为 HAL_UART_Receive 要一次性接收 6 个字节uint8_t data 只能存 1 个字节,而 uint8_t data[7] 才能提供连续的 6 个字节存储空间。

相关推荐
m0_377108141 小时前
stm32-mpu6050
stm32·单片机·嵌入式硬件
析木不会编程1 小时前
单片机|嵌入式硬件设计--电阻选型
单片机·嵌入式硬件
sramdram1 小时前
燃气表国产32位MCU微控制器低功耗解决方案
单片机·嵌入式硬件·微控制器·32位mcu·mcu微控制器·32位mcu微控制器
大卡片2 小时前
单片机答辩
单片机·嵌入式硬件
WIZnet2 小时前
W55RP20-EVB-MKR MicroPython 实战(13):MQTT 协议与阿里云 IoT 平台对接
单片机·udp·wiznet
WIZnet2 小时前
W55RP20-EVB-MKR MicroPython 实战(15):MQTT协议与ThingSpeak平台对接
单片机·嵌入式硬件·wiznet
LCG元16 小时前
STM32实战:基于STM32F103的家用新风系统智能控制器(空气质量监测+PID调速)
stm32·单片机·嵌入式硬件
LCG元17 小时前
STM32实战:基于STM32F103的多通道工业数据采集与监控系统(Modbus RTU+上位机)
stm32·单片机·嵌入式硬件
资深流水灯工程师17 小时前
STM32 单片机 USB 通讯原理与 HAL 库实战详解
stm32·单片机·嵌入式硬件