在使用CCS官方例程库时,调试串口通信,接收到的数据显示出来都是乱码
调试所用例程为sci_echoback_cpu1
串口显示结果
于是修改代码,串口循环打印单个字符‘a’,通过串口助手16进制接收发现收到的数据是两个ascii循环。昨天用的针对C2000LaunchPad XL的例程串口打印正常,字符编码跟这个出错的例子相同,排除字符编码问题。猜测系统时钟配置出错。
最近编辑记录 jcfcaonima (2020-01-30 16:54:35)
离线
查看系统初始化代码
SYSPLL配置函数
函数中有针对_LAUNCHXL_F28379D专门的初始化函数,看来TI这个开发板确实有点不一样。
在项目中添加_LAUNCHXL_F28379D宏定义
再次编译烧录运行结果正常
最近编辑记录 jcfcaonima (2020-01-30 16:13:10)
离线
那么问题来了,这个LAUNCHXL_F28379D到底哪儿不一样呢?查看系统时钟树。
时钟配置代码为InitSysPll(XTAL_OSC,IMULT_40,FMULT_0,PLLCLK_BY_2);系统默认SYSPLL是由外部晶振XTAL_OSC提供。
找到外部晶振,型号为ATS100B-E
震荡频率为10MHz。
再查看官方文档
TMS320F2837xD数据表.pdf
在67页显示推荐使用外部晶振为20MHz
所以,在代码中出现了LAUNCHXL_F28379D单独设置系统时钟,且倍频参数是普通2倍的情况
最近编辑记录 jcfcaonima (2020-01-30 16:35:47)
离线
官方开发板不按照官方文档推荐的晶振频率。无语了。。
离线