拿CH582M-EVT有串口1的例子,可以正常工作,改为串口3也可以正常工作,但如果同时启用串口1和串口3时,串口1正常,而串口3只能发4个字符,1、3的中断的接收没有问题。自己改了串口3的发送函数,由于不会串口1、3的同时重定向,只好1重定向使用printf函数,而串口3自己写了个函数:只能发头一个字符了。
void printf3(uint8_t * Tx3Buff)
{
uint8_t i=sizeof(Tx3Buff);
while(i)
{
R8_UART3_THR=*Tx3Buff--;
i--;
while(R8_UART3_TFC);
}
}