这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » 国产MCU » 学习国产MCU的开发--灵动微MM32G0001A6T--GPIO基础篇

共10条 1/1 1 跳转至

学习国产MCU的开发--灵动微MM32G0001A6T--GPIO基础篇

专家
2023-12-11 22:01:11   被打赏 30 分(兑奖)     打赏

        作为学习的经典,自然是通过GPIO点亮LED,或者是响应按钮的外部中断例程。这我们看看SOP8封装的芯片,

图片1.png


除了VDD和GND固定外,我们可以使用PA14、PA1、PA13、PA15、PA2、PA3这六个GPIO口。为了方便测试,使用转换座固定芯片。

图片2.png

下载器使用创芯坊的PowerLink2。按照功能定义,连接VDD,GND,SWDIO,SWCLK四个引脚,忽略RXD和TXD两个引脚。连接方式如下:

------------------------------------------

PowerLink2        MM32G0001A6T引脚

-------------------------------------------------

VDD                  4(VDD)

GND(VSS)     2(VSS)

SWCLK             1 (SWCLK)

SWDIO             5 (SWDIO)

-------------------------------------------

图片6.png


连接OK后,打开GPIO_LED_Toggle示例工程,看看下载设置中是否能找到芯片信息(打开工程前,你需要安装MM32G0001A6T的Keil设备支持包)。

图片3.png图片4.png图片5.png

很容易就找到了,至少已经说明没啥大问题了。接下来修改程序,修改PA3用于驱动LED。

/* Define to prevent recursive inclusion */
#define _GPIO_LED_TOGGLE_C_
/* Files include */
#include <stdio.h>
#include "platform.h"
#include "gpio_led_toggle.h"
void GPIO_Configure(void)  {
    GPIO_InitTypeDef GPIO_InitStruct;
    RCC_AHBPeriphClockCmd(RCC_AHBENR_GPIOA, ENABLE);
    GPIO_StructInit(&GPIO_InitStruct);
    GPIO_InitStruct.GPIO_Pin   = GPIO_Pin_3;
    GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStruct.GPIO_Mode  = GPIO_Mode_Out_PP;
    GPIO_Init(GPIOA, &GPIO_InitStruct);
    GPIO_WriteBit(GPIOA, GPIO_Pin_3, Bit_SET);
}
void GPIO_IO_Toggle(GPIO_TypeDef *GPIOn, uint16_t PINn) {
    if (Bit_RESET == GPIO_ReadOutputDataBit(GPIOn, PINn)) {
        GPIO_SetBits(GPIOn, PINn);
    } else {
        GPIO_ResetBits(GPIOn, PINn);
    }
}
void GPIO_LED_Toggle_Sample(void) {
    printf("\r\nTest %s", __FUNCTION__);
    GPIO_Configure();
    while (1)  {
        GPIO_IO_Toggle(GPIOA, GPIO_Pin_3);
        PLATFORM_DelayMS(500);
    }
}

主程序部分



#define _MAIN_C_
/* Files include */
#include "platform.h"
#include "gpio_led_toggle.h"
#include "main.h"
int main(void) {
    PLATFORM_Init();
    GPIO_LED_Toggle_Sample();
    while (1)  {
    }
}

试着编译成并下载。下载完成后,是用杜邦线,给转换座提供VDD,GND,以及驱动用的LED、电阻接到PA3(芯片第8引脚)上,上电,如果能看到LED以1秒的频率闪烁,说明程序没问题,下载也是正常的。

下面这个链接是例程运行起来后的样子。

https://www.bilibili.com/video/BV1yi4y1v7FY/?vd_source=adcef0c69ad4c414f6be4c9a989b3821

现在,下载的道路打通了,我们就可以整理下环境,方面后面的学习和测试了。






关键词: 菜鸟学单片机     灵动微          MM32G0001A6T         

高工
2023-12-12 09:21:09     打赏
2楼

谢谢分享



院士
2023-12-15 14:22:43     打赏
3楼

这个小东西就高级了啊


工程师
2023-12-18 09:18:13     打赏
4楼

厉害了。


专家
2023-12-18 11:31:47     打赏
5楼

最主要的是这个芯片才几角钱,太便宜了,哈哈哈


院士
2023-12-18 15:17:22     打赏
6楼

这么便宜吗?

这个是人民币吧!?


专家
2023-12-18 23:11:32     打赏
7楼

对,就是人民币,0.53元,大概是这个价格。我之前买的时候1.2左右。还有一款是20脚封装的,好像0.80元不到。


专家
2023-12-22 00:56:25     打赏
8楼

谢谢分享


助工
2023-12-28 10:05:53     打赏
9楼

好实惠的片子。


院士
2024-01-17 11:07:56     打赏
10楼

支持国产,学习了,谢谢分享。


共10条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]