STM32 串口接受乱码

上位机c#编写,下发一个28字的字符串。
单片机接受并做处理。
在接收时,无论上位机发送什么,单片机接受到的第12位一定是错误的,别的位都是正确的。

1,先用电脑自发自收,接另一个串口,用串口调试助手看,看是不是确实发错了。
2,用串口调试助手给单片机发,看能不能正常接收。

有没有尝试减少发送数据位数,比如 只发12位