首先硬件是OK的..
程序在上电后初始化UART4. Tx+Rx均使能. 最开始通讯是正常的.
当改动代码中很小的一部分程序. 重新编译后. Tx脚就成了低电平. 数据也发送不出去. 但Rx正常. 可以受到外面发送的数据.
程序的改动跟串口完全没有关系.改动后的代码也没有运行(必须进入某个对话框才会执行). 因此怀疑是原来系统中就隐藏着某个BUG. 在map编译链接改变后. 就导致了UART4不能发送.
哪位大侠可以告诉我,什么条件可以使得Tx一直为低?我通过IAR的调试插件观察寄存器.
发现异常时UART4的SR、CR与能正常工作的版本是一样的. TE RE UE 等几个重要bit都是1. 不知道是不是寄存器被篡改了. 但插件看不出来的缘故?.
救命啊... |