查看: 5402|回复: 8

[MPC] 【MPC5602开发笔记】点亮LED

[复制链接]
  • TA的每日心情
    开心
    2018-7-23 21:04
  • 签到天数: 103 天

    连续签到: 1 天

    [LV.6]常住居民II

    228

    主题

    5379

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    16695
    最后登录
    1970-1-1
    发表于 2016-2-23 15:01:42 | 显示全部楼层 |阅读模式
    MPC5602学习终于可以步入正规了,由于MPC5602和以前ARM-kinetis系列差距很大,资料又少,因此在这里记录一下学习过程。

    拿到开发板,首先要学会GPIO的使用,当然,trk-usb-mpc5602p开发板板载了3个LED,第一个例子给大家分享一下GPIO的位输出功能。

    1、实现功能
    让开发板上的一个LED闪烁,实现基本的GPIO输出功能。
    2、先看看电路,可以发现黄色LED使用了PD5引脚
    0060.png
    3、差参考手册,可以看到对应的引脚D[5],
    0061.png
    4、由于使用的是GPIO功能,且输出,与它相关的寄存器如下
    0062.png
    5、引脚配置寄存器中与输出相关的位为:
    0063.png
    其中OBE为输出是否允许
    0064.png
    ODE设置开路输出
    0065.png
    6、GPDO寄存器控制输出引脚的状态,即输出是1还是0
    0066.png
    7、了解了基本功能,下面就可以写程序了,打开CW,新建工程
    0067.png
    选择MCU型号
    0068.png
    信息确认,后面全部采用默认设置即可
    0069.png
    8、下面生成的工程目录,可以看到,使用向导创建的工程包含了必要的文件
    0070.png
    9、在MAIN.C文件中写程序,完成相应的功能
    0071.png
    程序代码如下
    1. #include "MPC5602P.h"

    2. #define LED_YELLOW                               (SIU.GPDO[53].B.PDO) //黄色LED输出寄存器
    3. #define ON                                       (0)
    4. #define OFF                                      (1)

    5. void disableWatchdog(void) {        //禁止看门狗
    6.   SWT.SR.R = 0x0000c520;     
    7.   SWT.SR.R = 0x0000d928;
    8.   SWT.CR.R = 0x8000010A;     
    9. }

    10. void initModesAndClock(void) {
    11.   ME.MER.R = 0x0000001D;            //允许DRUN、RUN0、SAFE、RESET模式

    12.   CGM.CMU_0_CSR.R = 0x000000000;    //RC时钟分频系数1(16Mhz),禁止FMPLL_0时钟
    13.   
    14.   ME.RUN[0].R = 0x001F0010;         //RUN0模式,使用16MHzIRCON,禁止PLL0和OSC0,系统时钟syclk=16MHzIRCON

    15.   ME.MCTL.R = 0x40005AF0;           //进入RUN0模式
    16.   ME.MCTL.R = 0x4000A50F;
    17.    
    18.   while (ME.GS.B.S_MTRANS == 1) {}  //等待转换完成

    19.   while(ME.GS.B.S_CURRENTMODE != 4) {}//确认RUN0为当前模式
    20. }

    21. void initGpio(void) {
    22.   SIU.PCR[53].R = 0x0220;           //PD5设置为输出模式
    23.   
    24.   LED_YELLOW = OFF;                 //初始化LED灭
    25. }

    26. void timeDelay(void) {              //软件延时
    27.   vuint32_t i;
    28.   for (i = 0; i < 300000; i++) {}
    29. }

    30. int main(void) {
    31.   initModesAndClock();              //时钟设置
    32.   disableWatchdog();                //禁止看门狗
    33.   initGpio();                       //初始化LED引脚

    34.   /* Loop forever */
    35.   for (;;) {
    36.     LED_YELLOW = ON;
    37.     timeDelay();
    38.     LED_YELLOW = OFF;
    39.     timeDelay();
    40.   }
    41. }
    复制代码

    9、编译并下载调试程序
    0072.png
    下载后程序调试界面界面
    0073.png
    在状态窗口输入gotil main命令,即可运行到main函数,然后停止
    0074.png
    0075.png
    想要全速执行,按下面的按钮即可
    0076.png
    10、演示效果如下,非常简单的
    0000.gif

    11、最后附上我的工程文件,方便参考:
    led_mpc5602p.rar (145.84 KB, 下载次数: 17)
    回复

    使用道具 举报

  • TA的每日心情

    2016-10-20 09:45
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    80

    主题

    1038

    帖子

    5

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    2223
    最后登录
    2023-11-20
    发表于 2016-2-23 16:48:39 | 显示全部楼层
    不错不错!赶紧研究下中断,最近项目多,没时间搞。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-23 21:04
  • 签到天数: 103 天

    连续签到: 1 天

    [LV.6]常住居民II

    228

    主题

    5379

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    16695
    最后登录
    1970-1-1
     楼主| 发表于 2016-2-23 17:26:33 | 显示全部楼层
    花溪村长 发表于 2016-2-23 16:48
    不错不错!赶紧研究下中断,最近项目多,没时间搞。

    正在看中断,先忙,随后多交流哈
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2017-5-3 11:19
  • 签到天数: 10 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    50

    主题

    1万

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    14090
    最后登录
    2024-4-19
    发表于 2016-2-23 20:34:53 | 显示全部楼层
    年轻人,好好学。 null.png null1.png null2.png null3.png null4.png null5.png null6.png null7.png null8.png null9.png
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5

    主题

    182

    帖子

    0

    高级会员

    Rank: 4

    积分
    703
    最后登录
    2017-4-26
    发表于 2016-2-24 09:14:48 | 显示全部楼层
    多谢分享
    回复

    使用道具 举报

  • TA的每日心情
    郁闷
    2021-3-10 19:44
  • 签到天数: 7 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    126

    主题

    525

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2018
    最后登录
    2023-12-25
    发表于 2016-2-24 09:34:46 | 显示全部楼层
    这是codewarrior 10.6吗?
    很开心
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-23 21:04
  • 签到天数: 103 天

    连续签到: 1 天

    [LV.6]常住居民II

    228

    主题

    5379

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    16695
    最后登录
    1970-1-1
     楼主| 发表于 2016-2-24 10:05:00 | 显示全部楼层
    MDebug 发表于 2016-2-24 09:34
    这是codewarrior 10.6吗?

    我现在用的老版本
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2020-4-8 13:55
  • 签到天数: 17 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    0

    主题

    22

    帖子

    0

    注册会员

    Rank: 2

    积分
    163
    最后登录
    2020-4-8
    发表于 2019-12-19 15:23:44 | 显示全部楼层
    谢谢分享,在学习中。。。。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1

    主题

    11

    帖子

    0

    新手上路

    Rank: 1

    积分
    33
    最后登录
    2024-4-3
    发表于 2024-3-25 11:04:02 | 显示全部楼层
    请问你用的什么调试器呢  我的怎么老是用不了
    D:\users\Desktop\屏幕截图 2024-03-25 110257.png
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-17 18:47 , Processed in 0.108963 second(s), 30 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表