做嵌入式开发,虽然芯片从 51 单片机到 STM32,再到各种 RISC-V,硬件千差万别,但软件架构和代码模块有 80% 是高度通用的。以下是嵌入式开发中最通用的几大类代码模块:🔌 一、 基础驱动层(HAL / 硬件抽象层)这是最底层,也是硬件差异最大的一层,一定要封装成统一接口。GPIO 控制:统一封装GPIO_Init、GPIO_Write、GPIO_Read,不要直接在业务代码里写P2.3 = 1;,而是写LED_ON();。UART / 串口通信:封装UART_Init、UART_SendByte、UART_SendBuffer。强烈建议加上环形缓冲区(RingBuffer),结合中断/DMA,实现非阻塞收发。你之前遇到的while(!uart1send)卡死,就是没有用环形缓冲区解耦。I2C / SPI 总线:封装I2C_WriteBytes、I2C_ReadBytes。用于连接 AHT20(你当前用的)、EEPROM、OLED 屏幕等。