现在我先把uart的tx配置成gpio,然后再配置成了uart,现在我要恢复gpio就又配置了gpio再配置成uart可是收不了数据,哪个大神知道,我用rt_device_contrl()配置成串口后怎么恢复没有进行配置的状态?
[i=s] 本帖最后由 RTT_User1 于 2019-12-19 13:25 编辑 [/i]
看一下GPIO寄存器的值,在你配置成GPIO然后恢复UART时,GPIO有没有成功的恢复成UART。然后去看rt_device_contrl()
这个函数在哪一步去设置了GPIO寄存器的值 。
看一下这个函数是否成功被调用。
/ Init the low level hardware : GPIO, CLOCK, CORTEX /
HAL_UART_MspInit(huart);
看一下GPIO寄存器的值,在你配置成GPIO然后恢复UART时,GPIO有没有成功的恢复成UART。然后去看rt_device_co …
第一次先配置成gpio再配置成uart后可以进行收发数据,第二次再配置成gpio然后配置成uart的时候可以发送数据,传感器也有回复,就是程序收不到程序了
[i=s] 本帖最后由 RTT_User1 于 2019-12-19 14:52 编辑 [/i]
rt_device_control()函数会调用 HAL_UART_Init()函数,此函数会检测UART的状态,如果你的UART初始化成功,并且没有反初始化过,它是不会执行HAL_UART_MspInit()函数,也就不会设置你的GPIO。