灵动FTHR-G0001开发板开箱简单按键点灯

分享作者:user201910137473
作者昵称:iCEasy商城-小易
评测品牌:灵动微电子
评测型号:FTHR-G0001
申请理由(产品应用):小夜灯呼吸灯
发布时间:2024-07-29 14:36:09
0
概要
昨天看到板卡申请信息,考虑到之前未用过灵动微电子的芯片,因此申请一块灵动的G0001板卡体验。昨天下午申请,今天上午便收到了板卡快递。
开源口碑分享内容

先上板卡完整图:

收到板卡后,便是上灵动官网下资料,具体链接如下:
上海灵动微电子股份有限公司 (mindmotion.com.cn)   此链接下载芯片参考工程文件和对应芯片资料

上海灵动微电子股份有限公司 (mindmotion.com.cn)   此链接下载Keil pack,目前arm官方还未上G系列的keil pack,自能在此路径下载

https://chendo.gitee.io/webusb/examples/firmware/src/G0001/FTHR-G0001_SCH.pdf  板卡原理图官网未找到,最终在论坛中找到

安装好环境后,便开始点灯操作,先按照原理图将例程中的电灯管脚改对。

对应代码修改为:

void GPIO_Condiv(void)
{
    GPIO_InitTypeDef GPIO_InitStruct;

    RCC_AHBPeriphClockCmd(RCC_AHBENR_GPIOA, ENABLE);

    GPIO_StructInit(&GPIO_InitStruct);
    GPIO_InitStruct.GPIO_Pin   = GPIO_Pin_11;
    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_11, Bit_SET);

}

void GPIO_LED_Toggle_Sample(void)
{
    printf("\r\nTest %s", __FUNCTION__);

    GPIO_Condiv();

    while (1)
    {
		GPIO_IO_Toggle(GPIOA, GPIO_Pin_11);

        PLATFORM_DelayMS(100);
    }
}

   之后编译烧录进板卡(板卡只需要用typec线接到PC机即可,插入后会识别出一个U盘,初步怀疑固件放在U盘里也能升级,暂未验证),烧录完毕后可以看到绿灯以100ms间隔闪烁/

   验证完点灯后,便是增加按键信息,此时查看原理图,发现按键接口为PA2:

此时按如下方法改写代码:

void GPIO_Condiv(void)
{
   GPIO_InitTypeDef GPIO_InitStruct;
   RCC_AHBPeriphClockCmd(RCC_AHBENR_GPIOA, ENABLE);
   GPIO_StructInit(&GPIO_InitStruct);
   GPIO_InitStruct.GPIO_Pin   = GPIO_Pin_11;
   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_11, Bit_SET);
   GPIO_StructInit(&GPIO_InitStruct);
   GPIO_InitStruct.GPIO_Pin   = GPIO_Pin_2;
   GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
   GPIO_InitStruct.GPIO_Mode  = GPIO_Mode_IPU;
   GPIO_Init(GPIOA, &GPIO_InitStruct);
   GPIO_WriteBit(GPIOA, GPIO_Pin_2, Bit_SET);
}

void GPIO_LED_Toggle_Sample(void)
{
   printf("\r\nTest %s", __FUNCTION__);
   GPIO_Condiv();
   while (1)
   {
        if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_2) == Bit_SET)
        {
            GPIO_IO_Toggle(GPIOA, GPIO_Pin_11);
        }
        else
        {
            GPIO_SetBits(GPIOA, GPIO_Pin_11);
        }
       PLATFORM_DelayMS(100);
   }
}

更改完毕后编译烧录,此时看到的效果和只改灯一致,按下按键,发现绿灯熄灭。

具体效果视频如下:


总结:

   MM32G0001上手方面可以做到快速上手,学习成本低。

全部评论
暂无评论
0/144