感芯多线程处理器MC3172评估板(二)- 点亮一个LED灯

发布于:2022-12-10 ⋅ 阅读:(872) ⋅ 点赞:(0)

感芯多线程处理器MC3172评估板(一)- 介绍与搭建开发环境

目录

前言

一、通用输入输出接口(GPIO)

二、相关宏定义

三、编写程序

 四、硬件电路

 五、下载程序

 六、实验现象

总结


前言

        上一篇文章里介绍了关于MC3172评估板及其开发环境的内容,这一篇将通过点亮一个LED灯的实验来了解GPIO_PIN输出的相关内容。


一、通用输入输出接口(GPIO)

        MC3172评估板有4组GPIO端口,每组16个IO共有64个IO引脚。通过掩码模式,可实现对特定的 IO读写而不影响其它的IO功能,配合100%单周期指令集,可实现对IO的精确时序控制。每个引脚都可以通过软件配置成输出(推挽或开漏)、 输入(带或不带上拉)或复用的外设功能端口。

二、相关宏定义

1.INTDEV_SET_CLK_RST(DEV_ADDR,value)

#define INTDEV_SET_CLK_RST(DEV_ADDR,value)      (*(volatile u32*)(DEV_ADDR))=(value)

        这个宏用于对外设进行启动,主要是设置外设使用的时钟频率以及特权组。使能了GPIOx对应的时钟。

        (1)DEV_ADDR是GPIOx的外设,可以为GPIOA_BASE_ADDR、GPIOB_BASE_ADDR、GPIOC_BASE_ADDR、GPIOD_BASE_ADDR。

        (2)value参数:一般为(运行|线程组别|外设时钟分频设置)。

2. GPIO_SET_OUTPUT_EN_VALUE(GPIO_SEL,mask,value)  

#define GPIO_SET_OUTPUT_EN_VALUE(GPIO_SEL,mask,value)   (*(volatile u32*)(GPIO_SEL+GPIO_OUTPUT_EN_ADDR))=(value|mask)

        这个宏用于使能GPIO口的输入功能。

        (1)GPIO_SEL是GPIOx的外设,可以为GPIOA_BASE_ADDR、GPIOB_BASE_ADDR、GPIOC_BASE_ADDR、GPIOD_BASE_ADDR。

        (2)mask:一般为IO引脚,可以为GPIO_PIN0-GPIO_PIN15,GPIO_PIN_ALL,或者是多个IO引脚相或(GPIO_PIN0|GPIO_PIN1这种形式)等。

        (3)value:该参数为使能或不使能,GPIO_SET_ENABLE使能,GPIO_SET_DISABLE不使能。

3.GPIO_SET_OUTPUT_PIN_TO_1(GPIO_SEL,value)

#define GPIO_SET_OUTPUT_PIN_TO_1(GPIO_SEL,value)            (*(volatile u32*)(GPIO_SEL+GPIO_OUT_SET1_ADDR)) =(value&0xffff0000)

这个宏用于把指定管脚输出 1,同时不影响其他管脚值。

4.GPIO_SET_OUTPUT_PIN_TO_0(GPIO_SEL,value)

#define GPIO_SET_OUTPUT_PIN_TO_0(GPIO_SEL,value)            (*(volatile u32*)(GPIO_SEL+GPIO_OUT_SET0_ADDR)) =(value&0xffff0000)

 这个宏用于把指定管脚输出 0,同时不影响其他管脚值。与3相同。

三、编写程序

        在main.c文件中的void thread0_main(void)里编写代码程序如下:

void thread0_main(void)
{
    //使能了GPIOA的时钟
    INTDEV_SET_CLK_RST(GPIOA_BASE_ADDR,(INTDEV_RUN|INTDEV_IS_GROUP0|INTDEV_CLK_IS_CORECLK_DIV2));
    //将PA0设置为输出模式
    GPIO_SET_OUTPUT_EN_VALUE(GPIOA_BASE_ADDR,(GPIO_PIN0),GPIO_SET_ENABLE);
    //配置默认输出为低电平
    GPIO_SET_OUTPUT_PIN_TO_0(GPIOA_BASE_ADDR,GPIO_PIN0);
    while(1)  {
        GPIO_SET_OUTPUT_PIN_TO_1(GPIOA_BASE_ADDR,GPIO_PIN0);//PA0输出为高电平
        }
    }
    thread_end();
}

 四、硬件电路

1.MC3172引脚图

2. LED灯与引脚的连接方式

        LED的阳极接PA0,阴极接地

 五、下载程序

        将MC3172评估板通过USB口接到电脑,然后打开Release文件夹下的开发板程序下载_v1.1.exe,这时就会识别出GX_LINK#0设备(也有可能是其它名字),点击连接设备,接着选择生成的*.hex固件,再点击烧录固件,最后等到进度条走到100%则下载成功。

 六、实验现象

        下载成功后连接在PA0的LED灯点亮。


总结

        以上就是对MC3172评估板点亮一个LED灯的实验的学习过程记录分享,如果觉得文章有帮助,麻烦帮忙转发,谢谢!

本文含有隐藏内容,请 开通VIP 后查看