用串口简单写了一个读取,但是读取的数据与上位机串口读的数据不一样


这是我写的代码



阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程
问题分析
你使用 STM32 加载 OLED 显示器,通过串口读取数据,但是读取的数据与上位机串口读取的数据不一致。
问题解决方案
核心代码
// 检查串口配置
void USART_Init(void) {
// 配置波特率
USART_BRR = (uint32_t)(USART_BAUDRATE / (USART_DivF * USART_PCLK));
// 配置数据位数
USART_CR1 = USART_CR1_M | USART_CR1_B8;
// 配置停止位数
USART_CR2 = USART_CR2_STOP;
// 配置校验位数
USART_CR1 = USART_CR1_PCE;
}
// 检查数据格式
uint8_t data[10];
void USART_Receive(void) {
// 读取数据
while (USART_SR & USART_SR_RXNE) {
data[i++] = USART_DR;
}
// 检查数据格式
if (data[0] != 0x55 || data[1] != 0xAA) {
// 数据格式不一致
}
}
注意
上述代码仅为示例,具体实现需要根据 STM32 和 OLED 显示器的具体硬件和软件要求进行调整。