嵌入式板级通信协议
一、三协议对比
| 协议 | 线数 | 速率 | 适用场景 |
|---|---|---|---|
| UART | 2 | 中 | 调试串口、GPS、蓝牙模块 |
| SPI | 4 | 高 | 屏幕、Flash、高速 ADC |
| I2C | 2 | 低 | 传感器、EEPROM |
二、UART 实战
HAL_UART_Transmit(&huart1, "Hello\r\n", 8, 100);
关注波特率一致——两端都配成 115200 才能通信。
三、SPI:全双工高速
主设备产生时钟,CS 片选选中从机:
HAL_GPIO_WritePin(CS_GPIO_Port, CS_Pin, GPIO_PIN_RESET);
HAL_SPI_TransmitReceive(&hspi1, tx, rx, len, 100);
HAL_GPIO_WritePin(CS_GPIO_Port, CS_Pin, GPIO_PIN_SET);
四、I2C:双线寻址
一条时钟一条数据,靠 7 位地址区分设备:
HAL_I2C_Mem_Read(&hi2c1, 0x68 << 1, reg, 1, buf, 1, 100);
小结
选协议看场景:调试用 UART、高速用 SPI、多从机挂总线选 I2C。