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

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

关于使用自由串口的问题(uart_send_data1)

[复制链接]

5

主题

17

帖子

87

积分

注册会员

Rank: 2

积分
87
发表于 2024-2-26 09:53:29 | 显示全部楼层 |阅读模式
项目需要使用串口屏作为MODBUS从机的同时又作为MODBUS主机,现在想使用串口屏的自由串口作为主机串口。使用uart_send_data1(send_buff)的时候发生了错误,像是无法调用uart_send_data1这个API函数。已经将uart_free_protocol 系统变量设置为1,这是什么情况呢?要如何解决?错误信息:LUA: [string "------------------------------------
..."]:51: attempt to call a nil value (global 'uart_send_data1')



回复

使用道具 举报

0

主题

59

帖子

330

积分

中级会员

Rank: 3Rank: 3

积分
330
发表于 2024-2-26 15:59:51 | 显示全部楼层
虚拟屏是没有双串口的,这边建议再使用虚拟屏测试的时候单独测试没问题后再合并工程
回复

使用道具 举报

5

主题

17

帖子

87

积分

注册会员

Rank: 2

积分
87
 楼主| 发表于 2024-2-26 16:45:36 | 显示全部楼层
本帖最后由 wdc 于 2024-2-26 16:55 编辑
axaxaxzx 发表于 2024-2-26 15:59
虚拟屏是没有双串口的,这边建议再使用虚拟屏测试的时候单独测试没问题后再合并工程 ...

1.我是使用实体屏测试的,TTL连接一个方形的焊盘(屏幕GND),另一个圆形的焊盘(屏幕TXD),串口助手打印出来的信息就有这个错误信息。


2.连接拓展串口打印信息时也会打印出这个错误信息,这种是什么问题呀?

3.虚拟屏测试的时候,使用uart_send_data这个API单独测试正常,但是使用uart_send_data1测试的时候也会报一样的错误信息。

4.目前测试使用的屏幕型号为:DC80480M070_3111_0C V526    (在实体屏背面的贴纸上看的)[size=13.9333px]

[size=13.9333px]

[size=13.9333px]5.使用的软件版本为:3.0.0.1232





回复

使用道具 举报

1

主题

5

帖子

43

积分

新手上路

Rank: 1

积分
43
发表于 2024-2-27 08:27:01 | 显示全部楼层
axaxaxzx 发表于 2024-2-26 15:59
虚拟屏是没有双串口的,这边建议再使用虚拟屏测试的时候单独测试没问题后再合并工程 ...

开发中也有遇到过这种问题,串口屏与MCU通信用的是MODBUS,但是OTA升级的时候需要用到自由协议,我再升级置位的时候把所有关于MODBUS的定时器都停掉了,然后把uart_free_protocol = 1,uart_set_timeout(0, 0),之后使用串口助手给实体屏发送调试指令EE B6 00 11 88 11 00 01 C2 00 00 00 4A D7 6F 74 61 2E 62 69 6E FF FC FF FF ,串口屏没给我回复。已经在工程init里面dofile(“OTA.LUA”)。是需要将MODBUS通讯协议关闭吗?实际使用中有相关的LUA函数能够关闭MODBUS吗?
回复

使用道具 举报

5

主题

17

帖子

87

积分

注册会员

Rank: 2

积分
87
 楼主| 发表于 2024-2-27 08:59:50 | 显示全部楼层
String.upper 发表于 2024-2-27 08:27
开发中也有遇到过这种问题,串口屏与MCU通信用的是MODBUS,但是OTA升级的时候需要用到自由协议,我再升级 ...

自由协议使用的API接口是哪个呀?我用uart_send_data发送数据无法从拓展串口发出数据,用uart_send_data1直接报错,看了官方例程使用的是uart_send_data3,也用不了,我是不是没有安装什么函数库呀?
回复

使用道具 举报

0

主题

59

帖子

330

积分

中级会员

Rank: 3Rank: 3

积分
330
发表于 2024-2-27 09:13:11 | 显示全部楼层
你用uart_send_data3然后把输出的信息发我看一下
回复

使用道具 举报

1

主题

5

帖子

43

积分

新手上路

Rank: 1

积分
43
发表于 2024-2-27 09:18:09 | 显示全部楼层
wdc 发表于 2024-2-27 08:59
自由协议使用的API接口是哪个呀?我用uart_send_data发送数据无法从拓展串口发出数据,用uart_send_data1 ...

大彩串口屏同一工程只支持一种协议,使用其他协议就没办法再使用自由串口协议,保证自己用的协议是工程里的唯一协议然后再做调试。
回复

使用道具 举报

5

主题

17

帖子

87

积分

注册会员

Rank: 2

积分
87
 楼主| 发表于 2024-2-27 10:18:37 | 显示全部楼层
本帖最后由 wdc 于 2024-2-27 10:30 编辑
axaxaxzx 发表于 2024-2-27 09:13
你用uart_send_data3然后把输出的信息发我看一下

代码如下:
uart_free_protocol = 1

function on_init()
--uart_setup(9600,0,1,8)
--uart_set_baudrate3(9600)

end
--定时回调函数,系统每隔1秒钟自动调用。
function on_systick()
        send_buff={0x03,0x00,0x00,0x00,0x01,0x84,0x0A}
        send_buff[0]=0x01
    --uart_send_data(send_buff)
        uart_send_data3(send_buff)
end
--系统回调函数
function on_uart_recv_data3(recv_buff)
print(recv_buff[0],recv_buff[1],recv_buff[2],recv_buff[3],recv_buff[4],recv_buff[5],recv_buff[6],recv_buff[7])
        --set_variant("氧气流量",recv_buff[4])        
        set_text(0,5,recv_buff[4])        
end
输出结果如下:
10:28:56.175         DBG        filesize(671)
10:28:56.184         DBG        LUA_INIT OK!
10:28:56.185         DBG        filesize(117)
10:28:56.185         DBG        uart_free_protocol!
10:28:56.220         DBG        filesize(16)

之后没有输出了,这个是虚拟屏测试的
回复

使用道具 举报

0

主题

59

帖子

330

积分

中级会员

Rank: 3Rank: 3

积分
330
发表于 2024-2-29 08:52:15 | 显示全部楼层
请问你的主串口也是自由串口协议吗
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-29 16:37 , Processed in 0.054172 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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