| 
在线时间4 小时
UID3153427
注册时间2015-9-13
NXP金币0 
 该用户从未签到 新手上路 
 
 
	积分36 
最后登录2016-8-13 | 
 
| 因为YL-KL26Z开发板给的例程用的是KL25的头文件,虽然说KL25与KL26是兄弟,但是KL26用KL25的头文件开发毕竟不是我的风格,所以我用了KL26的头文件,首先上代码,因为完全是寄存器控制,写的全部是寄存器,望 仁者见仁智者见智: 
 我认为代码没有问题,但是烧写在开发板上却失败,并没有出现按一下键就反转一次LED的现象,求人指点,哪里错了?
 
 #include "MKL26Z4.h"
 int main()
 {
 SIM->SCGC5 |= (SIM_SCGC5_PORTB_MASK
 | SIM_SCGC5_PORTD_MASK
 | SIM_SCGC5_PORTA_MASK);            //开启A,B,D时钟
 
 PORTB->PCR[18] &= ~PORT_PCR_MUX_MASK;
 PORTB->PCR[18] |= PORT_PCR_MUX(1);
 PORTB->PCR[19] &= ~PORT_PCR_MUX_MASK;
 PORTB->PCR[19] |= PORT_PCR_MUX(1);
 PORTD->PCR[1] &= ~PORT_PCR_MUX_MASK;
 PORTD->PCR[1] |= PORT_PCR_MUX(1);                    //配置三个LED为GPIO功能
 
 PTD->PDDR |= (1 << 1);
 PTB->PDDR |= ((1 << 18)|(1 << 19));                     //配置LED为输出方向
 
 PTD->PDOR |= (1 << 1);
 PTB->PDOR |= ((1 << 18)|(1 << 19));                     //配置LED为高电平,使其灭
 
 PORTD->PCR[6] &= ~PORT_PCR_MUX_MASK;
 PORTD->PCR[6] |= PORT_PCR_MUX(1);                   // 按键Key3,配置为GPIO功能
 PORTA->PCR[4] &= ~PORT_PCR_MUX_MASK;
 PORTA->PCR[4] |= PORT_PCR_MUX(1);                   // 按键Key4,配置为GPIO功能
 
 PTD->PDDR &= ~(1 << 6);
 PTA->PDDR &= ~(1 << 4);                                     //配置按键为输入功能
 
 PORTD->PCR[6] |= ~PORT_PCR_IRQC_MASK;
 PORTD->PCR[6] |= PORT_PCR_IRQC(11);
 PORTA->PCR[4] |= ~PORT_PCR_IRQC_MASK;
 PORTA->PCR[4] |= PORT_PCR_IRQC(11);                //配置按键的中断触发方式:跳变沿触发中断
 
 NVIC_EnableIRQ(PORTA_IRQn);
 NVIC_SetPriority(PORTA_IRQn,4);
 NVIC_EnableIRQ(PORTC_PORTD_IRQn);
 NVIC_SetPriority(PORTC_PORTD_IRQn,6);                //开中断以及配置优先级
 
 PORTA->ISFR |= (1 << 4);
 PORTD->ISFR |= (1 << 6);                                    //清空标志位
 
 while(1)
 {
 ;                                                                   //等待。。。
 }
 }
 
 void PORTA_IRQHandler()
 {
 if((PORTA->ISFR) & (1 << 4))
 {
 PORTA->ISFR |= (1 << 4);
 PTB->PTOR |= (1 << 18);
 }
 }
 
 void PORTC_PORTD_IRQHandler()
 {
 if((PORTD->ISFR) & (1 << 6))
 {
 PORTD->ISFR |= (1 << 6);
 PTB->PTOR |= (1 << 19);
 }
 }
 | 
 |