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

相关推荐
FreakStudio16 小时前
W55MH32L-EVB 上手测评:硬件 TCP/IP 加持的以太网单片机,MicroPython 零门槛开发
python·单片机·嵌入式·大学生·面向对象·并行计算·电子diy·电子计算机
✎ ﹏梦醒͜ღ҉繁华落℘6 天前
单片机基础知识---stm32单片机的优先级
stm32·单片机·mongodb
zd8451015006 天前
RS485 总线详解
单片机·嵌入式硬件
✎ ﹏梦醒͜ღ҉繁华落℘6 天前
编程基础 --高内聚,低耦合
c语言·单片机
科芯创展6 天前
1A,1MHz,30VIN,XZ4115,降压恒流LED驱动芯片
单片机·嵌入式硬件
集芯微电科技有限公司6 天前
四通道2A输出集成功率电感降压模块专为紧凑型方案设计
人工智能·单片机·嵌入式硬件·生成对抗网络·计算机外设
踏着七彩祥云的小丑6 天前
嵌入式测试学习第 37 天:异常场景测试:断电、拔插、干扰、非法指令
单片机·嵌入式硬件·学习
意法半导体STM326 天前
【官方原创】如何为STM32CubeMX2配置Visual Studio Code配置方案
vscode·stm32·单片机·嵌入式硬件·策略模式·stm32cubemx·嵌入式开发
雾削木6 天前
B语言经典教程现代化重构
java·前端·stm32·单片机·嵌入式硬件
Hello-FPGA6 天前
Camera Link 与 CoaXPress 技术对比 如何选择你的相机接口
单片机·嵌入式硬件