请问CH552使能UART0时P3.0/P3.1能否作为GPIO使用?

P3.0/P3.1的排序是PWM/UART/GPIO,手册上的描述是:

上表中所述按从左到右的优先顺序,是指多个功能模块竞争使用该 GPIO时的优先顺序。例如,

当P3.1用于TXD串口发送时,P3.0仍然可以用于更高优先级的 PWM1 输出。 

如果使能了UART0,没有数据收发的时候,P3.0和P3.1都为高电平,这时候软件P3.0=0或者P3.1=0是否可以将对应的GPIO拉低?

软件写入P3.0=0是否会导致UART0收到错误的数据?

补充下问题背景:软件希望使用UART0的接收或者发送指示灯指示一些状态。P3.0和P3.1调试使用,平时是悬空的,都初始化为准双向口。


没人解答,自己试了一下,答案是可以。


这样使用是可以的,TXD和RXD独立,功能上互不影响。GPIO和TXD对于P3.1引脚是“与”的关系,所以在串口发送空闲的时候(空闲输出高),通过GPIO输出低,P3.1口对外就是一个低电平了。那对应的在你描述的应用场景中,GPIO点完灯之后要将端口置1,这样才能操作串口进行输出。


补充下,这种情况,LED只能低电平点亮。

CH552的GPIO和外设之间没有明确的寄存器来区分,这个使用起来有些不便,其它的MCU是有寄存器来选择的。


只有登录才能回复,可以选择微信账号登录