嵌入式技术论坛
直播中

juju宇哥

8年用户 1408经验值
擅长:479809
私信 关注
[问答]

程序断电重启后就不输出了是什么原因导致的

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;
}

回帖(3)

张红

2022-11-14 14:12:38
PB3被用作JTAG功能了,把这段代码加到初始化中试一下

GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);
举报

张红

2022-11-14 14:12:44
看成STM32了,GD的是这个:

rcu_periph_clock_enable(RCU_AF);
gpio_pin_remap_config(GPIO_SWJ_SWDPENABLE_REMAP,ENABLE);
举报

juju宇哥

2022-11-14 14:13:01
确实是这个问题,加上之后就可以了。之前一直没往这方面想过,太感谢了!!
举报

更多回帖

发帖
×
20
完善资料,
赚取积分