你如何确认波特率就是正确的呢?用逻辑分析仪或示波器之类的分析过吗?我对此比较怀疑,乱码最常见的原因就是波特率错误,不要盲目自信。最常见的波特率错误是公式都对的,但是代码里写的系统时钟频率和实际工作频率不一样。
还有,还有串口的工作模式也要确认一下(起始位,停止位之类的)
另外,并没有看到直接的发送函数,不确定发的是不是就是你在数组里写的那些数据。其实你贴出来的这整段代码对于分析问题基本都没多大用处,既没有串口初始化代码,也没有发送代码,唯一能看出来的就是你想发送的数据,确实有一部分是可显示的文本数据。
选16进制显示,不要显示字符串