主题中讨论的其他器件:TM4C123
您好!
我正在使用 tm4c123并实现 CAN 协议。 在这里、我能够为 CAN0器件配置 GPIO 引脚。 但是、当 CANCTL 寄存器初始化时、寄存器中的 INIT 位不会被置位。 因此控制器不会移动到下一条指令。 我将使用 CCS 6.1.2、这里是我的代码。
空 CAN0_Init (空)
{
/*设置 CAN0模块 GPIO 端口 B 的引脚 PB4和 PB5 */
/* PB5 = Tx、PB4 = Rx */
*sysctl_RCGC0 |= 0x01000000;
* SYSCTL_RCGC2 |= 0x00000002;
*GPIO_CR |= 0x30;
*GPIOB_AMSEL &= 0x00;
*GPIOB_DEN |= 0x30;
*GPIOB_DIR |= 0x20;
*GPIOB_AFSEL_PB |= 0x30;
* GPIOB_PCTL_PB =(* GPIOB_PCTL_PB 和0xFF00FFFF)+ 0x00880000;
/*初始化 CAN0模块*/
*CANCTL |= 0x01;
while (* CANIF1CRQ & 0x00008000);
/*反向回路测试模式*/
*CANCTL |= 0x81;/* CAN 控制器处于测试模式*/
*CANTST |= 0x10;
/*比特率设置*/
*CANCTL |= 0x40;/*对 CANBIT 寄存器的写入访问*/
*CANBIT |= 0x0201;
/*不使用中断*/
*CANCTL &=~0x41;/* CAN 控制器处于测试模式*/
}
在上面我尝试写入 CANCTL 寄存器的代码中、它没有写入、而且它一直卡在该点、我通过放置断点来指向该点。 CAN0模块的 GPIO 管脚配置是否有问题??
我正在尝试使用该代码进行环回模式。 请解决我的问题
谢谢、
Venkatesh。