你好:
我现在在用TI的C6678EVML开发板做验证,在使用开发板的串口时遇到这样的情况;
我先给开发板加电,然后加载调试自己写的程序,就通过串口发一个字节的0xAA,在PC
上用串口调试助手接收,发现收到的是0xDA,然后我改发0x0A或0x1A,收到的是0x8A,发0x2A或0x3A,收到的是0x9A,
我设置的波特率为9600,无奇偶校验,1个停止位。
后来我把波特率改为19200,还是一样的现象。我设置波特率参数时参考的是TI网站下载的UART用户手册中的150M时钟下×16模式哪个表中的值。
最后我在加载调试时,先用system reset选项系统复位,然后重新加载.out运行,这时收到的全错,发任何字节收到的都是4个字节的0
我想是不是C6678的UART的时钟源没有设置或手册中的两个波特率参数值只是举个例子,时钟源不一定是150M,要根据自己的使用设置UART的时钟源。
但是我看了TI的C6678器件数据手册、PLL手册、CorePac手册、UART手册等等都没看到UART外设到底是用的哪个时钟作为源,按PLL中说的器件内部最终有16个时钟,但UART到底用的哪个?用的就是系统时钟(sysclolc1)还是其它的,还是固定频率的时钟,频率是多少?
只有向你们资讯一下,谢谢
bin song:
回复 noaming:
你好
非常感谢你能及时答复我的问题,对我帮助很大。只是奇怪,TI的手册上为什么不说清楚UART的时钟源是SYSCLK7,我的确是仔仔细细的看了好几遍那几个手册。