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 个字节存储空间。

相关推荐
Lumos6fly11 小时前
《嵌入式通讯协议栈实战》 5 AT24C02与OLED
stm32·单片机
天吾cc14 小时前
RTT-IO设备模型
单片机·嵌入式硬件·学习
wengqidaifeng17 小时前
2026 年电赛(TI 杯)H 题:MaxiCamPro、双主控通信、VOFA+ 遥测与可复现实验方法
c语言·单片机·嵌入式硬件
寻道模式18 小时前
【运维心得】电视KK.RV22.E32B“捉鬼”实录:从炸机到 eMMC 的千里追击(1)
单片机·嵌入式硬件·mos管·开关电源
科芯创展19 小时前
XZ6206,6.5V,300mA稳压LDO芯片
单片机
平凡的小蚂蚁20 小时前
Exynos4412-POP-7inLCD裸机开发完整教程(STM32 库风格)
驱动开发·stm32·单片机·嵌入式硬件·嵌入式·硬件工程
破晓单片机20 小时前
096、STM32项目分享开源:蓝牙智能手环
stm32·单片机·嵌入式硬件·开源
天吾cc21 小时前
RTT-Pin设备模型
单片机·嵌入式硬件
ACP广源盛139246256731 天前
Ling‑3.0‑flash 昇腾 0‑Day 适配落地@ACP#IX9104 在国产高密度算力矩阵中的机遇与落地场景
大数据·人工智能·分布式·单片机·嵌入式硬件
wengqidaifeng1 天前
2026 年电赛(TI 杯)H 题:摆杆机械结构、MaxiCamPro 测量、步进编码器与三层 PID
单片机·嵌入式硬件·mcu