[活动] 【APM32M3514开发板测评】+让灯闪亮起来

[复制链接]
1320|6
 楼主| jinglixixi 发表于 2025-1-18 13:47 | 显示全部楼层 |阅读模式
本帖最后由 jinglixixi 于 2025-2-4 00:13 编辑

为了能使LED灯闪烁起来,通过查看原理图可知D7所连接的引脚为PA12,见图1闪烁。
ed20976c22dea6a47bfbf7d495a351bd
6e71424c219d8095529f86756b58f4d7
图1 使用引脚

经修改,使D7闪烁起来的主程序为:
int main(void)
{
    APM_MINI_Init();
    GPIO_Config_T gpioConfig;
    RCM_EnableAHBPeriphClock(RCM_AHB_PERIPH_GPIOA);
    gpioConfig.pin = GPIO_PIN_12;
    gpioConfig.mode = GPIO_MODE_OUT;
    gpioConfig.outtype = GPIO_OUT_TYPE_PP;
    gpioConfig.speed = GPIO_SPEED_50MHz;
    gpioConfig.pupd = GPIO_PUPD_NO;
    GPIO_Config(GPIOA, &gpioConfig);   
    while (1)
    {
        GPIO_ClearBit(GPIOA, GPIO_PIN_12);
        APM_DelayMs(200);
        GPIO_SetBit(GPIOA, GPIO_PIN_12);
        APM_DelayMs(200);
    }
}
经程序的编译和下载,D7终于闪烁起来。
如果点亮LED灯代表GPIO口输出的成功,那以按键来控制LED灯的亮灭就代表输入、输出功能的完美结合。
那从哪儿来获得按键的引脚呢?
那就是利用这2个开关,见图2所示。
e0d2e23e93023a00c296239a2ee9a9ff 1deaf2ad679d4cd403a304ef20a1da27
图2 开关电路

由图3可知,其所占用的引脚为PC13和PB12。
90a10600e07435afcccb6e043e1f6e5e
图3 所用引脚

以所用Direction开关控制D7指示灯为例,将PC12设置为输入口的函数为:
  1. void SW_Init(void)
  2. {
  3. GPIO_Config_T gpioConfig;
  4. //PC13 & PB12
  5. RCM_EnableAHBPeriphClock(RCM_AHB_PERIPH_GPIOC);
  6. gpioConfig.pin = GPIO_PIN_13;
  7. gpioConfig.mode = GPIO_MODE_IN;
  8. gpioConfig.speed = GPIO_SPEED_50MHz;
  9. gpioConfig.pupd = GPIO_PUPD_PU;
  10. GPIO_Config(GPIOC, &gpioConfig);
  11. RCM_EnableAHBPeriphClock(RCM_AHB_PERIPH_GPIOB);
  12. gpioConfig.pin = GPIO_PIN_12;
  13. GPIO_Config(GPIOB, &gpioConfig);
  14. }

对LED的初始化函数为:
  1. void LED_Init(void)
  2. {
  3. GPIO_Config_T gpioConfig;
  4. gpioConfig.mode = GPIO_MODE_OUT;
  5. gpioConfig.outtype = GPIO_OUT_TYPE_PP;
  6. gpioConfig.speed = GPIO_SPEED_50MHz;
  7. gpioConfig.pupd = GPIO_PUPD_NO;
  8. RCM_EnableAHBPeriphClock(RCM_AHB_PERIPH_GPIOA);
  9. gpioConfig.pin = GPIO_PIN_12;
  10. GPIO_Config(GPIOA, &gpioConfig);
  11. }

相应的系统最小初始化函数为:
  1. void APM_MINI_Init(void)
  2. {
  3. /* Init delay function */
  4. APM_DelayInit();
  5. LED_Init();
  6. SW_Init();
  7. }

实现按键控制LED灯的主程序为:
  1. int main(void)
  2. {
  3. APM_MINI_Init();
  4. while (1)
  5. {
  6. if(GPIO_ReadInputBit(GPIOC, GPIO_PIN_13)==1)
  7. {
  8. GPIO_ClearBit(GPIOA, GPIO_PIN_12);
  9. }
  10. else
  11. {
  12. GPIO_SetBit(GPIOA, GPIO_PIN_12);
  13. }
  14. }
  15. }

经程序的编译和下载,其执行效果如图4和图5所示。
56e17baaedd7057a3f56f5ff89866260
图4 熄灭状态

a993ec12d374ce0dec79818d761d442a
图5 点亮状态

开发板原理图:


APM32M3514x8 MOTOR EVAL V1.0.pdf

459.48 KB, 下载次数: 1

闪烁黎明 发表于 2025-1-21 09:15 | 显示全部楼层
按键和LED的结合,不错
 楼主| jinglixixi 发表于 2025-1-21 11:05 | 显示全部楼层
闪烁黎明 发表于 2025-1-21 09:15
按键和LED的结合,不错

感谢支持!!!
Ketose 发表于 2025-2-3 23:04 | 显示全部楼层
能否上传一下,这个板子的原理图?
 楼主| jinglixixi 发表于 2025-2-4 00:14 | 显示全部楼层
Ketose 发表于 2025-2-3 23:04
能否上传一下,这个板子的原理图?

已上传,请下载使用。
caigang13 发表于 2025-2-5 22:20 来自手机 | 显示全部楼层
现在已经不满足于简单的点亮灯了,好歹搞个呼吸灯效果啊。
 楼主| jinglixixi 发表于 2025-2-6 00:45 | 显示全部楼层
caigang13 发表于 2025-2-5 22:20
现在已经不满足于简单的点亮灯了,好歹搞个呼吸灯效果啊。

咳不是得一步步地走呀
您需要登录后才可以回帖 登录 | 注册

本版积分规则

521

主题

2949

帖子

39

粉丝
快速回复 在线客服 返回列表 返回顶部