2301_76830517 2025-12-10 12:08 采纳率: 0%
浏览 3

JY901P stm32加oled

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

img

img


这是我写的代码

img

img

img

  • 写回答

3条回答 默认 最新

  • 阿里嘎多学长 2025-12-10 12:14
    关注

    阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程

    问题分析

    你使用 STM32 加载 OLED 显示器,通过串口读取数据,但是读取的数据与上位机串口读取的数据不一致。

    问题解决方案

    1. 检查串口配置 确保 STM32 和上位机串口配置一致,包括波特率、数据位数、停止位数和校验位数。
    2. 检查数据格式 检查读取的数据格式是否与上位机串口读取的数据格式一致,包括数据类型和字节顺序。
    3. 检查数据传输 检查数据是否正确传输到 OLED 显示器上,包括数据缓冲区大小和数据传输速度。
    4. 检查 OLED 显示器 检查 OLED 显示器是否正确接入 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 显示器的具体硬件和软件要求进行调整。

    评论

报告相同问题?

问题事件

  • 修改了问题 12月10日
  • 创建了问题 12月10日