GD32f103rct6,使用agile_modbus做modbus master在uart3上面;rs485芯片的DE/RE接在PB3上,使用j-link勾选“Reset and Run”下载程序,程序正常运行,可以读到从机的数据;没有断电的情况下,按复位键,程序起来后也正常运行。但是当断了电重启之后,就读取不到数据了,用示波器发现,读取正常时,DE/RE引脚有使能的高电平脉冲信号,而断电重启后,引脚上就没有了这个信号。把这个引脚移动到一个独立的线程里,现像也是一样,下载运行有输出,断电重启后就没有任何电平跳变了。
程序确定已经下载成功,测试时,在PB3的置位的前后加上了打印信息,都可以被打印出来。
int rs485_send(uint8_t *buf, int len)
{
RS485_TX_EN();
rt_device_write(_dev, 0, buf, len);
RS485_RX_EN();
return len;
}
更多回帖