关于28379D开发板的CAN通讯以及开发板的主频问题

本文记录用ti的TMS320F28379D LaunchPad调CAN通讯的过程,最后会给出代码。

用的是CCS11.1版本加上ti的C2000ware的库。

 

一开始用的是C2000ware库中的can_ex4_simple_transmit中的程序,把复用引脚改为开发板上的GPIO12和GPIO17引脚,上位机一直采集不到。排除了很久,发现CAN的比特率不对,跟程序设置的不一样。看这个帖子有感,想查一查系统的主频是多少。TI C2000WARE官方例程时钟配置的坑(针对TMS320F28379D LaunchPad XL) / DSP / WhyCan Forum(哇酷开发者社区)

系统的延迟函数DEVICE_DELAY_US()是以微妙为单位的,推测内层函数是汇编写的(时间测量比较准确),所以用它跟GPIO配合,测量系统的频率。

 Device_initGPIO();
 GPIO_setPadConfig(61, GPIO_PIN_TYPE_PULLUP);   // Enable pullup on GPIO6 先启动输入上拉
 GPIO_setPinConfig(GPIO_61_GPIO61);             //配置复用
 GPIO_setDirectionMode(61, GPIO_DIR_MODE_OUT);  // GPIO6 = output  配置IO口的输入以及输出方向
 while(1)
 {
        GPIO_writePin(61, 1);                          // Load output latch
        DEVICE_DELAY_US(50000);
        GPIO_writePin(61, 0);                          // Load output latch
        DEVICE_DELAY_US(50000);
 }

用示波器测量GPIO61口的波形,示波器测量图见下图。

 从示波器中可以看到△x=100ms,即GPIO61口输出的高电平或者低电平的时间为100ms,而程序中的延迟函数设置的为50ms,由此可以看出系统主频慢了1/2.

从系统的初始化函数Device_init()(按住ctrl键点击这个函数之中)中找到SysCtl_setClock(DEVICE_SETCLOCK_CFG)语句,在按ctrl进入DEVICE_SETCLOCK_CFG,将参数改为下图所示。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值