|
|
目前问题是PC端给屏幕发送数据,有回应后50ms再发送,就相当于间隔50ms给屏幕发送数据,屏幕需要回应。on_uart_recv_data和uart_send_data配合使用。50ms是没有响应的,需要150ms才有响应。function on_uart_recv_data(packer) local addr, func = packer[0], packer[1]
-- -- 作为从机:接收上位机指令(地址为本机或广播)
if addr == C.ADDR_SELF or addr == C.ADDR_BROADCAST then
if func == C.FC_WRITE_SINGLE then
reg = (packer[2] << 8) | packer[3]
val = (packer[4] << 8) | packer[5]
crc = (packer[6] << 8) | packer[7]
if reg == C.REG_CTRL then
if val == C.CMD_SELF_CHECK then
uart_send_data({0x06,0x00,0x00,0x00,0x02,0x09,0x43})
set_text(7,12, val)
这个是部分代码。我这边是直接先回应再处理。我想问下这个on_uart_recv_data函数是在中断中实现的吗?是退出on_uart_recv_data这个后再执行uart_send_data这个吗?
|
|