[技术问题解答] KL25Z,灯LED闪烁,主函数中那7行代码意思?(已解决)

[复制链接]
2181|6
 楼主| 870205766 发表于 2014-4-29 11:47 | 显示全部楼层 |阅读模式
本帖最后由 FSL_TICS_A 于 2014-5-5 13:03 编辑

芯片KL25Z128K,编译软件CW10.6,控制红绿蓝灯LED闪烁中,那7行代码是什么意思?
主函数:
int main(void)
{
  LDD_TDeviceData *BLUE_DeviceData;
  PE_low_level_init();
  PORTB_GPCLR=0X000F0107;
  BLUE_DeviceData= BLUE_Init((LDD_TUserData *)NULL) ;
  
  GREEN_SetVal(GREEN_DeviceData);
  RED_SetVal(RED_DeviceData);
  BLUE_SetVal(BLUE_DeviceData);
  while(1)
  {
   。。。。。。
  }
}


问题补充:
我只知道让灯发光,需要3步骤
1.使能GPIO端口时钟
2.PCR使能引脚的服用的GPIO功能
3.PDDR寄存器设置引脚的数据方向为输出
4.PDOR设置输出的数据值为0或者1

上面代码与下面问题补充,有哪些是相对应的?


FSL_TICS_ZJJ 发表于 2014-4-29 13:42 | 显示全部楼层
本帖最后由 FSL_TICS_ZJJ 于 2014-4-29 13:44 编辑

楼主你好,先给你提个小建议,你下次添加代码的时候,直接如下图操作,这样看起来更清新。
49.jpg

  1. int main(void)
  2. {
  3. LDD_TDeviceData *BLUE_DeviceData;
  4. PE_low_level_init();
  5. PORTB_GPCLR=0X000F0107;
  6. BLUE_DeviceData= BLUE_Init((LDD_TUserData *)NULL) ;

  7. GREEN_SetVal(GREEN_DeviceData);
  8. RED_SetVal(RED_DeviceData);
  9. BLUE_SetVal(BLUE_DeviceData);
  10. while(1)
  11. {
  12. 。。。。。。
  13. }
  14. }

FSL_TICS_ZJJ 发表于 2014-4-29 13:47 | 显示全部楼层
楼主,你的第7行代码是这个吗?GREEN_SetVal(GREEN_DeviceData);
这个是GREEN灯IO口置位,你的1,2,3在初始化代码中,即BLUE_Init((LDD_TUserData *)NULL) ;
你可以点进去看看,第4步就是你控制的SETVAL,或者CLRVAL。
 楼主| 870205766 发表于 2014-4-29 15:51 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2014-4-29 13:47
楼主,你的第7行代码是这个吗?GREEN_SetVal(GREEN_DeviceData);
这个是GREEN灯IO口置位,你的1,2,3在初始 ...

我的意思是每一行的代码是什么意思,
//1..
//2.
//3
...
//7.
FSL_TICS_ZJJ 发表于 2014-4-29 15:58 | 显示全部楼层
楼主,代码修改如下:
int main(void)
{
  LDD_TDeviceData *BLUE_DeviceData; //定义IO接口 PE专用
  PE_low_level_init(); //MCU 芯片初始化
  BLUE_DeviceData= BLUE_Init((LDD_TUserData *)NULL) ;//IO口,即LED对应的IO口初始化
  
  GREEN_SetVal(GREEN_DeviceData); //置位GREEN小灯对应的IO口,即关闭GREEN小灯
  RED_SetVal(RED_DeviceData);//置位RED小灯对应的IO口,即关闭RED小灯
  BLUE_SetVal(BLUE_DeviceData);//置位BLUE小灯对应的IO口,即关闭BLUE小灯

  while(1)
  {
   。。。。。。
  }
}
其实,你如果只是点小灯,可以不需要弄PE代码的,因为PE代码比较复杂。
你可以直接对PORT,GPIO操作。
 楼主| 870205766 发表于 2014-4-29 17:44 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2014-4-29 15:58
楼主,代码修改如下:
int main(void)
{

PE_low_level_init();//芯片初始化
请问上面一行PE代码是做什么的,具体在芯片的哪些方面初始化?芯片初始化是不是大一点的工程都需要芯片初始化呀?

我现在做的就是想把,单片机的GPIO,UART,DMA,I2C...等各个模块做好,为以后做工程垫下基础
FSL_TICS_Robin 发表于 2014-4-30 10:57 | 显示全部楼层
870205766 发表于 2014-4-29 17:44
PE_low_level_init();//芯片初始化
请问上面一行PE代码是做什么的,具体在芯片的哪些方面初始化?芯片初 ...

通常如果PE使能了自动初始化模块,就会添加模块初始化函数。
如果用到了模块,会在那儿开模块时钟 clock gate。
等等

PE_low_level_init();具体做了什么你可以右键跟踪过去查看

您需要登录后才可以回帖 登录 | 注册

本版积分规则

26

主题

103

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部