请选择 进入手机版 | 继续访问电脑版
查看: 1648|回复: 1

【MC56F83xxx数字信号控制器开发板试用】+CodeWarror安装及点灯

[复制链接]
  • TA的每日心情

    2024-2-5 12:06
  • 签到天数: 627 天

    [LV.9]以坛为家II

    94

    主题

    1628

    帖子

    2

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    4429

    热心会员

    最后登录
    2024-2-5
    发表于 2020-10-28 15:54:07 | 显示全部楼层 |阅读模式
    本帖最后由 胤幻1988 于 2020-10-28 16:03 编辑

    资料都准备好了,下面开始安装开发环境:CodeWarror。资料准备如下:
    M13.1.png

    首先安装主程序:

    M14.png
    M16.png
    M17.png
    M18.png
    M19.png
    M20.png
    M21.png
    M22.png
    M23.png
    M24.png
    安装器件支持的PACK:
    先打开安装后的CodeWarror
    TB1.png
    初次打开,会弹出工作组路径,我们随便设置一下,最好全英文,以免不必要的麻烦:
    K1.png
    它自己会更新一下组件,等它更新结束。
    K2.png
    选择File-->help-->Install New Sofeware
    K3.png

    K4.png
    K5.png
    K6.png

    K7.png
    K8.png
    K9.png
    K10.png
    安装好会重新启动下软件:
    K11.png
    我们按照这个方法安装完我们下载的3个补丁,如果安装过程中,提示现有项比安装项更新,则取消当前项安装。
    安装按了后,我们可以再更新一下,看有无更新的补丁和插件:
    K12.png
    我们这里没有更新了。
    K13.png
    下面我们解压下来的官方例程:
    K14.png
    这里面路径有中文,后来实际导入时,我把文件夹放到英文目录下了:
    K15.png
    K16.png
    K17.png
    K18.png
    安装完成,我们看到例程解压的位置:
    K19.png
    打开某一例程:
    K20.png
    我们现在将例程导入:File-->Import...
    K21.png
    选择general-->Existing Project...
    K22.png
    择要导入例程的路径:
    K23.png
    K24.png
    勾选想要导入的示例:
    K25.png
    导入成功,打开选择的例程:
    程序结构很清晰,代码没有库,用寄存器操作完成。
    K26.png
    外设的配置流程还是跟ARM-M 类似的。
    K27.png
    完全的寄存器操作写法:
    K28.png
    下面我们要在打开的示例上修改成我们想要的第一个例子-->4个LED闪烁。
    我们插上板子,在硬件管理器里面发现,下载器已经识别成功了。
    K29.png
    查看LED相关原理图:当引脚高时,led熄灭,引脚低时,点亮
    LED_RED-->GF8  LED_GERRN-->GF9  
    LED_BLUE-->GF10  LED_YELLOW-->GF11


    K30.png
    外部晶振8M
    K31.png
    查看系统配置的时钟,发现用的内部时钟,倍频到100M。
    K32.png
    K33.png
    感觉代码风格都大同小异,在例子里面就能修改成自己的配置:
    下面开始修改函数,代码比较简单,我们屏蔽掉原来的main函数,直接在里面修改:#define MLED_RED_ON                   GPIOF->DR &= ~(MASK_BIT8)
    #define MLED_RED_OFF                  GPIOF->DR |= (MASK_BIT8)

    #define MLED_GREEN_ON                   GPIOF->DR &= ~(MASK_BIT9)
    #define MLED_GREEN_OFF                  GPIOF->DR |= (MASK_BIT9)

    #define MLED_BLUE_ON                   GPIOF->DR &= ~(MASK_BIT10)
    #define MLED_BLUE_OFF                  GPIOF->DR |= (MASK_BIT10)

    #define MLED_YELLOW_ON           GPIOF->DR &= ~(MASK_BIT11)
    #define MLED_YELLOW_OFF          GPIOF->DR |= (MASK_BIT11)

    void LED_Init(void);
    void Mdelay_ms(unsigned int delay);

    void LED_Init(void)
    {
            //开启GPIOF时钟
            CLOCKGATE_ENABLE(GPIO_F);
            // LED red off
            GPIOF->PER &= ~(MASK_BIT8);  // Set to GPIO mode
            GPIOF->DDR |= (MASK_BIT8);   // Set to output mode
            GPIOF->DR |= (MASK_BIT8);     // Output 0
            // LED green off
            GPIOF->PER &= ~(MASK_BIT9);  // Set to GPIO mode
            GPIOF->DDR |= (MASK_BIT9);   // Set to output mode
            GPIOF->DR |= (MASK_BIT9);     // Output 0
            // LED blue off
            GPIOF->PER &= ~(MASK_BIT10);  // Set to GPIO mode
            GPIOF->DDR |= (MASK_BIT10);   // Set to output mode
            GPIOF->DR |= (MASK_BIT10);     // Output 0
            // LED yellow off
            GPIOF->PER &= ~(MASK_BIT11);  // Set to GPIO mode
            GPIOF->DDR |= (MASK_BIT11);   // Set to output mode
            GPIOF->DR |= (MASK_BIT11);     // Output 0

    }

    //系统时钟100M,单个节拍0.01us 1ms需要100000
    void Mdelay_ms(unsigned int delay)
    {
            unsigned int i=0;

            while(delay--)
            {
                    for(i=0;i<10000;i++)
                    {
                            asm(NOP);
                            asm(NOP);
                            asm(NOP);
                            asm(NOP);
                            asm(NOP);
                            asm(NOP);
                            asm(NOP);
                            asm(NOP);
                            asm(NOP);
                            asm(NOP);
                    }        
            }
    }

    void main(void)
    {
            
            LED_Init();
            
            while(1)
            {
                    MLED_RED_ON;
                    MLED_GREEN_ON;
                    MLED_BLUE_ON;
                    MLED_YELLOW_ON;
                    Mdelay_ms(500);
                    MLED_RED_OFF;
                    MLED_GREEN_OFF;
                    MLED_BLUE_OFF;
                    MLED_YELLOW_OFF;
                    Mdelay_ms(500);
                   
            }
    }

    按那个编译按钮:
    K34.png
    K35.png
    K36.png
    编译无误后,我们开始进行下载并调试:
    Q1.png
    刚进调试,提示我升级下载器固件:

    K37.png
    短接升级的位置:
    Q2.png
    开始升级:
    K38.png

    升级完成:
    K39.png
    全速运行,表现正常。我们停止debug模式,并按板子上复位键,LED正常闪烁:
    89.gif
    环境配置和点灯就到这了。麻蛋,配置新开发环境真累,不知不觉就搞了半天。



    哎...今天够累的,签到来了~
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2021-11-4 13:30
  • 签到天数: 47 天

    [LV.5]常住居民I

    3

    主题

    167

    帖子

    0

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    379
    最后登录
    2024-4-16
    发表于 2020-10-29 14:20:59 | 显示全部楼层
    分享很详细
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2024-4-17 06:09 , Processed in 0.125405 second(s), 21 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

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