广州大彩串口屏论坛_大彩开发者交流论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1066|回复: 4

求问stm32和大彩串口屏通讯怎么提取出串口屏的指定数据?

[复制链接]

2

主题

4

帖子

28

积分

新手上路

Rank: 1

积分
28
发表于 2023-10-29 10:46:21 | 显示全部楼层 |阅读模式
比如串口屏有个文本控件用键盘设定一个数值,单片机如何把这个数值提取出来?我现在单片机控制串口屏是没问题的,但好像单片机接收串口屏这块不行,用getcontrolvalue这个函数也不行。下面这个卖家给文本控件的例程,我自己用不知道为什么没法把str的值赋给value。
void NotifyText(uint16 screen_id, uint16 control_id, uint8 *str)
{
    if(screen_id==4)                                                               
    {                                                                           
        int32 value=0;                                                            
        sscanf(str,"%ld",&value);                                                   
        if(control_id==2)                                                           
        {                                                                                             
            if(value<0)                                                              
            {                                                                        
                value = 0;                                                            
            }                                                                        
            else if(value>380)                                                      
            {                                                                        
                value = 380;                                                           
            }                                                                        
            SetTextInt32(4,2,value,0,1);                                          
            SetTextInt32(4,5,value/2,1,1);                                       
        }                                                                        
    }                                                                           
}         

回复

使用道具 举报

2

主题

1253

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
12541
发表于 2023-10-30 09:03:27 | 显示全部楼层
键盘设置文本控件数值,输入完后会发送一条指令,指令里面有包含输入的数值,单片机测解析这个指令即可。
Easy doesn't enter into Grown-up life
成年人的生活里面没有“容易”二字
回复

使用道具 举报

2

主题

4

帖子

28

积分

新手上路

Rank: 1

积分
28
 楼主| 发表于 2023-10-30 09:46:58 | 显示全部楼层
If后要接end 发表于 2023-10-30 09:03
键盘设置文本控件数值,输入完后会发送一条指令,指令里面有包含输入的数值,单片机测解析这个指令即可。 ...

谢谢,这个我知道。就是串口屏发送指令中间几个字节是str(数值的ASCII码),问题是我现在不知道为什么notifytext这个函数里sscanf(str,"%ld",&value);  这个语句没法把str的值赋给value.
回复

使用道具 举报

2

主题

1253

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
12541
发表于 2023-10-30 10:04:01 | 显示全部楼层
wxc 发表于 2023-10-30 09:46
谢谢,这个我知道。就是串口屏发送指令中间几个字节是str(数值的ASCII码),问题是我现在不知道为什么not ...

单片机的程序,最好还是先看一下,发出来的指令到底有没有错,可以和串口助手生成的指令比对看看
Easy doesn't enter into Grown-up life
成年人的生活里面没有“容易”二字
回复

使用道具 举报

2

主题

4

帖子

28

积分

新手上路

Rank: 1

积分
28
 楼主| 发表于 2023-10-31 16:58:15 | 显示全部楼层
If后要接end 发表于 2023-10-30 10:04
单片机的程序,最好还是先看一下,发出来的指令到底有没有错,可以和串口助手生成的指令比对看看 ...

我看了,串口中断接收函数也改了。串口初始化和配置中断的函数也检查了,但调试发现问题就是出在size = queue_find_cmd(cmd_buffer,CMD_MAX_SIZE);  if(size>0&&cmd_buffer[1]!=0x07)  。。。。这块。应该是queue_find_cmd在缓冲区找不到完整指令,也就是单片机接收出问题了。
回复

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|广州大彩串口屏论坛_大彩开发者交流论坛

GMT+8, 2024-4-29 08:51 , Processed in 0.051076 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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