找回密码
 立即注册
查看: 51|回复: 2

uart发送命令返回无法存储数据

[复制链接]
  • TA的每日心情
    开心
    2024-4-16 17:56
  • 签到天数: 1 天

    [LV.1]初来乍到

    4

    主题

    3

    回帖

    65

    积分

    注册会员

    积分
    65
    发表于 2024-4-16 18:03:25 | 显示全部楼层 |阅读模式
    本人小白,写了一段代码,需要stc发送三段不同的询问代码分别询问温度湿度和压力的数据,分别将返回的三段代码中的第二和第三个数据(温度湿度压力的数值),存储到变量中,用于LCD显示。示波器硬件检测,代码发送正确,返回数据正确,但是,代码运行起来不能存储数据,不能更新数据到LCD。其中step_A,step_B,step_C由中断控制,200ms触发一次询问。
    求大佬帮忙分析问题在哪里。
    代码如下。
    /***********************************************/
    void main(void)
    {
            u8        i;
            EAXSFR();                /* 扩展寄存器访问使能 */
            GPIO_config();
            UART_config();
            Timer_config();
            Init_lcd();
            EA = 1;
            while (1)
            {
                    u8 temp_h = 0;
                    u8 temp_l = 0;
                    u8 hum_h = 0;
                    u8 hum_l = 0;               
                    u8 press_h = 0;
                    u8 press_l= 0;                                                       
                   
                    send_buffer[0]        = 0x01;
                    send_buffer[1]        = 0x03;
                    send_buffer[2]        = 0x00;
                   
                    send_buffer[4]        = 0x00;
                    send_buffer[5]        = 0x01;
                    send_buffer[6]        = 0x84;
                    send_buffer[7]        = 0x05;
                   
        if (step_A == 1)
                            {  
                                   send_buffer[3] = 0x30; // 设置发送地址为0x30  
                                            for(i=0; i<8; i++)
                                            {
                                                    TX1_write2buff(send_buffer[i])  ;
                                            }
                                    temp_h=RX1_Buffer[3] ;
                                    temp_l=RX1_Buffer[4] ;                                                       
                                    temp_num2 = (int)temp_h*256 + temp_l; // 假设数据是高字节在前
                                    step_A = 0;       
                                    }



    回复 送花

    使用道具 举报

  • TA的每日心情
    开心
    前天 08:45
  • 签到天数: 90 天

    [LV.6]常住居民II

    38

    主题

    986

    回帖

    6773

    积分

    荣誉版主

    冲哥视频教程和各种开源资料QQ交流群884047237,可群

    积分
    6773
    QQ
    发表于 2024-4-17 08:57:35 | 显示全部楼层
    串口发完数据怎么就直接读取数据了,这里要加一个判断等待串口数据接收完成才可以!去看下我的视频教程,关于串口部分的那几集。
    截图202404170857055865.jpg
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    2024-4-16 17:56
  • 签到天数: 1 天

    [LV.1]初来乍到

    4

    主题

    3

    回帖

    65

    积分

    注册会员

    积分
    65
     楼主| 发表于 2024-4-17 10:50:00 | 显示全部楼层
    电子DIY小家 发表于 2024-4-17 08:57
    串口发完数据怎么就直接读取数据了,这里要加一个判断等待串口数据接收完成才可以!去看下我的视频教程,关 ...

    修改成了这种模式,有了接收判断,但是还是没有存到数据
    if (step_A == 1) {  
            send_buffer[3] = 0x30; // 设置发送地址为0x30  
                                            for(i=0; i<8; i++)TX1_write2buff(send_buffer);                       
                                            if(COM1.RX_TimeOut > 0)                //超时计数
                                                    {
                                                            if(--COM1.RX_TimeOut == 0)
                                                            {
                                                                    if(COM1.RX_Cnt > 0)
                                                                    {
                                                                                    temp_h=RX1_Buffer[3] ;
                                                                                    temp_l=RX1_Buffer[4] ;                                                       
                                                                                    temp_num2 = (int)temp_h*256 + temp_l; // 假设数据是高字节在前
                                                                    }
                                                                    COM1.RX_Cnt = 0;
                                                            }
                                                    }       
                                    step_A = 0;       
                            }

    回复 支持 反对 送花

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

    GMT+8, 2024-5-1 04:12 , Processed in 0.072836 second(s), 41 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表