感芯MC3172开发板流水灯

感芯MC3172开发板流水灯

MC3172芯片简介

MC3172 是厦门感芯科技的一款32 位 RISC并行多线程实时处理器。基于RISC-V RV32IMC 指令集, 100%单周期指令, 最高200MHz主频, 3.37coremark/MHz。可以代替实时操作系统, 实现程序的模块化与复用性。

感芯官网下载。链接:

http://www.gxchip.c
————————————————
特性
在这里插入图片描述

MC3172的demo工程:(可以在官网获取到)
在这里插入图片描述
我的流水灯就是在官方demo改进写的

小试牛刀

之前一直在搞51、32用keil,新换了一个IDE不是很熟悉不过大同小异
官方下载的资料包 ↓
在这里插入图片描述

并行多线程处理器 MC3172 开发极简指南(2)
在这里插入图片描述
查看这个手册,了解到GPIO的使用

学习一块板子,从点亮一块开发板开始(狗头保命)

开始点灯

本人小白,弄个流水灯
代码如下(笨方法,不停的对io口取反):

void GPIO_EXAMPLE(u32 gpio_sel)
{
    INTDEV_SET_CLK_RST(gpio_sel,(INTDEV_RUN|INTDEV_IS_GROUP0|INTDEV_CLK_IS_CORECLK_DIV2));
//设置外设使用的时钟频率以及特权组
    GPIO_SET_OUTPUT_EN_VALUE(GPIOA_BASE_ADDR,(GPIO_PIN_ALL),GPIO_SET_ENABLE);
  //  打开 GPIO 的输出使能,这里使用了 GPIO_PIN_ALL
    GPIO_SET_OUTPUT_PIN_TO_0(gpio_sel,(GPIO_PIN0|GPIO_PIN1|GPIO_PIN2|GPIO_PIN3));
    GPIO_SET_OUTPUT_PIN_TO_0(gpio_sel,(GPIO_PIN4|GPIO_PIN5|GPIO_PIN6|GPIO_PIN7));
//这个宏用于把指定管脚输出 0(低电平),同
    while(1)  {

        GPIO_SET_OUTPUT_PIN_INV(gpio_sel,(GPIO_PIN0));
   //  GPIO_SET_OUTPUT_PIN_INV 用于输出值取反,下同
        for (u32 var = 0; var < 5000; ++var) {
            NOP();NOP();NOP();NOP();NOP();NOP();
        }  //延时,下同
        GPIO_SET_OUTPUT_PIN_INV(gpio_sel,(GPIO_PIN0|GPIO_PIN1));
        for (u32 var = 0; var < 5000; ++var) {
            NOP();NOP();NOP();NOP();NOP();NOP();
        }
        GPIO_SET_OUTPUT_PIN_INV(gpio_sel,(GPIO_PIN1|GPIO_PIN2));
        for (u32 var = 0; var < 5000; ++var) {
            NOP();NOP();NOP();NOP();NOP();NOP();
        }
        GPIO_SET_OUTPUT_PIN_INV(gpio_sel,(GPIO_PIN2|GPIO_PIN3));
        for (u32 var = 0; var < 5000; ++var) {
            NOP();NOP();NOP();NOP();NOP();NOP();
        }
        GPIO_SET_OUTPUT_PIN_INV(gpio_sel,(GPIO_PIN3|GPIO_PIN4));
        for (u32 var = 0; var < 5000; ++var) {
            NOP();NOP();NOP();NOP();NOP();NOP();
        }
        GPIO_SET_OUTPUT_PIN_INV(gpio_sel,(GPIO_PIN4|GPIO_PIN5));
        for (u32 var = 0; var < 5000; ++var) {
            NOP();NOP();NOP();NOP();NOP();NOP();
        }
        GPIO_SET_OUTPUT_PIN_INV(gpio_sel,(GPIO_PIN5|GPIO_PIN6));
        for (u32 var = 0; var < 5000; ++var) {
            NOP();NOP();NOP();NOP();NOP();NOP();
        }
        GPIO_SET_OUTPUT_PIN_INV(gpio_sel,(GPIO_PIN6|GPIO_PIN7));
        for (u32 var = 0; var < 5000; ++var) {
            NOP();NOP();NOP();NOP();NOP();NOP();
        }
        GPIO_SET_OUTPUT_PIN_INV(gpio_sel,(GPIO_PIN7));
    }
}

线程配置器在 MC3172_Template\MC3172
在这里插入图片描述
频率高看不到灯的亮灭吗,这里我选择了 1/1024主频
生产好代码就好了,启动文件我看的一知半解,就不列出来了,拿来用就得了(白嫖怪)

因为刚才设置的线程0所以放到main的线程0里
在这里插入图片描述
构建完成
在这里插入图片描述

下载软件在 MC3172_Template\Release
在这里插入图片描述
烧录完成

回到刚才的代码里GPIOA_BASE_ADDR我们用的是 PORTA的0-7口

在这里插入图片描述
成果

VID_20220902_182347

不足之处请大佬指点,我会虚心接受批评并改正,努力提高自己

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值