在线时间2 小时
UID3319012
注册时间2016-10-12
NXP金币0
该用户从未签到
新手上路

- 积分
- 26
- 最后登录
- 2016-11-11
|
最近我公司一个项目使用MKE04Z128VLK4这个芯片时遇到一个问题,GPIO和systick都能正常工作,但是在主程序中只要使能别的外设就会进入hard fault中断,不知道是为什么,我使用的编译器是MDK5.21A,使用官方提供的外设库。
代码如下:
int main (void)
{
uint32_t u32LoadValue0, u32LoadValue1;
PIT_ConfigType sPITConfig0, sPITConfig1;
PIT_ConfigType *pPIT_Config1 =&sPITConfig1;
PIT_ConfigType *pPIT_Config0 =&sPITConfig0;
sysinit();
//*/
//PIT_DeInit();
/* configure PIT module in chain mode */
/* PIT clock source is bus clock,20MHz */
/* PIT channel 0 load value = (1000000-1), channel 1 load value = (20-1) */
u32LoadValue0 = 0xF423F; /*!< PIT ch0 timer load value */
u32LoadValue1 = 0x13; /*!< PIT ch1 timer load value */
/* configure PIT channel 1 in chain mode, enable interrupt and timer */
pPIT_Config1->u32LoadValue = u32LoadValue1;
pPIT_Config1->bFreeze = FALSE;
pPIT_Config1->bModuleDis = FALSE; /*!< enable PIT module */
pPIT_Config1->bInterruptEn = TRUE;
pPIT_Config1->bChainMode = TRUE;
pPIT_Config1->bTimerEn = TRUE;
/* configure PIT channel 0, only enable timer */
pPIT_Config0->u32LoadValue = u32LoadValue0;
pPIT_Config0->bFreeze = FALSE;
pPIT_Config0->bModuleDis = FALSE; /*!< enable PIT module */
pPIT_Config0->bInterruptEn = FALSE;
pPIT_Config0->bChainMode = FALSE;
pPIT_Config0->bTimerEn = TRUE;
// PIT_Init(PIT_CHANNEL0, pPIT_Config0);
PIT_Init(PIT_CHANNEL1, pPIT_Config1);
PIT_SetCallback(PIT_CHANNEL1, PIT_Task);
SysTick_Config(SystemCoreClock/1000);
PTA->PDDR |= 0xFFFFFFFF;
PTA->PDOR |= 0xFFFFFFFF;
PTB->PDDR |= 0xFFFFFFFF;
PTB->PDOR |= 0xFFFFFFFF;
while (1)
{
Delay(1000);
PTA->PDOR ^= 0xFFFFFFFF;
PTB->PDOR ^= 0xFFFFFFFF;
}
}
最佳答案
xionghua235 发表于 2016-10-13 10:50
感谢小恩GG。还真的是SIM->SCGC |= SIM_SCGC_PIT_MASK; /*!< enable clock to PIT */运行之后没有使 ...
你的头文件要换成KE04Z128VLK4的,否则 ...
|
-
hard fault
|