工具/软件:TI-RTOS
我的代码是:
主程序
{
/* 40 MHz 系统时钟*/
SysCtlClockSet (SYSCTL_SYSDIV_5|SYSCTL_USE_PLL|SYSCTL_XTAL_16MHz|SYSCTL_OSC_MAIN);
/* IO 引脚初始化*/
io_init();
#ifdef display_control
/*显示初始值*/
init_Graphics_lcd();
#endif
#ifdef ADC_CONTROL
ADC_Hardware_Init();
#endif
#ifdef UART_CONTROL
UART_Hardware_Init();
#endif
#ifdef CAN_CONTROL
/*可以初始化*/
//CAN_Hardware_init();
#endif
BIOS_start();
}
在文件 CAN_init.c 中
void CAN_Hardware_init (void)
{
uint8_t i;
/* IO 初始化*/
SysCtlPeripheralEnable (SYSCTL_Periph_GPIOE);
SysCtlPeripheralEnable (SYSCTL_Periph_CAN0);
GPIODirModeSet (GPIO_Porte DIR、GPIO_PIN_4、GPIO_DIR_MODE_IN);
GPIOPinConfigure (GPIO_PE4_CAN0RX);
GPIOPinTypeGPIOInput (GPIO_PORTG_base、GPIO_PIN_4);
GPIOPinConfigure (GPIO_PE5_CAN0TX);
GPIODirModeSet (GPIO_Porte DIR、GPIO_PIN_5、GPIO_DIR_MODE_OUT);
GPIOPinTypeGPIOOutput (GPIO_PORTG_base、GPIO_PIN_5);
GPIOPinTypeCAN (GPIO_Porte _BASE、GPIO_PIN_4 | GPIO_PIN_5);
/*初始 CAN 控制通道0 */
CANInit (CAN0_BASE);
/*初始波特率*/
CANBitRateSet (CAN0_BASE、SysCtlClockGet ()、50000);
/*在 CAN 外设上启用中断*/
CANIntEnable (CAN0_BASE、CAN_INT_MASTER | CAN_INT_ERROR | CAN_INT_STATUS);
/*启用处理器(NVIC)上的 CAN 中断*/
IntEnable (INT_CAN0);
/*启用 CAN 以进行操作*/
CANEnable (CAN0_BASE);
}
问题:
如果我使用 CAN_Hardware_Init 和 degig ->源代码转到 loader_exit ()
如果我注释 CAN_Hardware_Init ->源代码运行正常
您能帮我解决问题吗
我使用 Code Composer Studio 6.2.0、 BIOS_6_35_01_29、 TivaWare_C_Series-2.1.3.156、tirtos_tivac_2_16_01_14、 xdctools_3_32_01_22_core