在线时间82 小时
UID1904670
注册时间2014-9-19
NXP金币0
该用户从未签到
金牌会员
 
- 积分
- 1203
- 最后登录
- 2018-6-27
|
这块板子开发的平台真的很多,freescale公司提供的CW、KDS两种软件可以,网上编译的mbed也行,最通用的MDK、IAR也可以。基本可以满足很多不同领域面向不同对象的客户的需求了。无论你是否用过freescale,就凭这点开发上手相对而言也容易了很多呀。
这几种开发方式都想体验下。先就着已有的资料,看下基于keil的例程吧。
测试源码->MDK->YL-K26Z_demo->GPIO->Demo_KEY_GPIO->Keil
先说优点:
整个界面蛮清爽的,程序风格很适合初学者,不是那种一上来就全是寄存器的让人头疼,层层深入,一层层的嵌入,看的很舒服,不错,可以很快引导初学者进入状态。
再说缺点吧:
真不是我嫌弃,试了好几个例程,编译后都有警告,有点小小的不爽,作为产品推出的,怎么例程还无法做到编译完美通过呢。等例程都研究完了一定专门发个帖子把这些有警告的修整方式汇总下。
回到程序,可以很清晰的看见各个调用的函数其实基本都已封装集成好了。
程序要实现的功能是分别按下K3,、K4使得D6、D5(即TS12、TS13触摸按键处的灯)交替闪烁,D7闪烁
- int main (void)
- {
- SystemCoreClockUpdate();
- SIM_SCGC5 |= (SIM_SCGC5_PORTA_MASK
- | SIM_SCGC5_PORTB_MASK
- | SIM_SCGC5_PORTC_MASK
- | SIM_SCGC5_PORTD_MASK
- | SIM_SCGC5_PORTE_MASK );
-
- uart0Init(9600,0,0,8,1);
- printf("YL-KL25Z128 KEY Test start\r\n");
- PORT_ENABLE_CLK(MKL_PORTA);
- PORT_ENABLE_CLK(MKL_PORTB);
- PORT_ENABLE_CLK(MKL_PORTB); /* ʹÄÜPORTʱÖÓ */
- PORT_ENABLE_CLK(MKL_PORTD);
-
- IO_FUN_SEL(MKL_PORTB,18,1); /* D5£¬D6£¬D7µÄIOÅäÖà */
- IO_FUN_SEL(MKL_PORTB,19,1);
- IO_FUN_SEL(MKL_PORTD,1,1);
- IO_FUN_SEL(MKL_PORTD,6,1); /*K3*/
- IO_FUN_SEL(MKL_PORTA,4,1); /*K4*/
-
- GPIO_DDR_OUTPUT(MKL_PORTB,18); /* IOÉèÖÃΪÊä³öģʽ */
- GPIO_DDR_OUTPUT(MKL_PORTB,19);
- GPIO_DDR_OUTPUT(MKL_PORTD,1);
- GPIO_DDR_INPUT(MKL_PORTD,6);
-
- GPIO_SET(MKL_PORTB,18); /* IOÉèÖÃΪ¸ßµçƽ£¬LEDϨÃð */
- GPIO_SET(MKL_PORTB,19);
- GPIO_SET(MKL_PORTD,1);
-
- while(1){ /* ·Ö±ð°´ÏÂK3,K4ʹµÃD6£¬D5ÁÁÃð½»ÌæÑ»·£¬D7ÉÁ˸ */
- if(!GPIO_GET_VALUE(MKL_PORTD,6))
- {
- GPIO_TOGGLE(MKL_PORTB,19);
- myDelay(500); //È¥¶¶
- }
- if(!GPIO_GET_VALUE(MKL_PORTA,4))
- {
- GPIO_TOGGLE(MKL_PORTB,18);
- myDelay(500); //È¥¶¶
- }
- GPIO_TOGGLE(MKL_PORTD,1);
- myDelay(200);
- }
- }
复制代码 无语不知道是不是编译器问题,代码复制上来注释都看不到了。
总的过程还是很清楚的。
配置时钟,led和按键的GPIO配置
设置好后,编译烧入。
|
|