搜索

[技术问答] 修改LED的GPIO

[复制链接]
130|8
 楼主 | 2021-1-22 14:49 | 显示全部楼层 |阅读模式
IO, mb, se
您好,想问一下在库中都定义了GPIO_PIN_x,如果在LED的程序中想修改GPIO调用几,就那个口亮,这么修改可以吗?6口,7口的交替闪烁.
        Led_On(6);
        delay_ms(500);
        Led_Off(6);
        delay_ms(500);


        Led_On(7);
        delay_ms(500);
        Led_Off(7);
        delay_ms(500);


在LED_On中做如下修改:
void Led_On(int GPIO_Number)
{
    GPIO_ResetBits(GPIOC, "GPIO_Pin_"&char(GPIO_Number);
}

void Led_Off(int GPIO_Number)
{
    GPIO_SetBits(GPIOC, "GPIO_Pin_"&char(GPIO_Number);
}


编译不通过,如果自己定义调用的GPIO呢?

使用特权

评论回复
| 2021-1-22 15:11 | 显示全部楼层
  GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE);

    /* Configure PA.13 (JTMS/SWDAT), PA.14 (JTCK/SWCLK) and PA.15 (JTDI) as
       output push-pull */
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_Init(GPIOA, &GPIO_InitStructure);

    /* Configure PB.03 (JTDO) and PB.04 (JTRST) as output push-pull */
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3 | GPIO_Pin_4;
    GPIO_Init(GPIOB, &GPIO_InitStructure);应该这样初始化吧

使用特权

评论回复
 楼主 | 2021-1-22 15:27 | 显示全部楼层
谢谢楼上,

不能调用哪个,初始化哪个吗?

例如我想调用6,就用void Led_Init(int GPIO_Number);Led_Init(6); 函数中怎么写?

使用特权

评论回复
 楼主 | 2021-1-22 16:53 | 显示全部楼层
搞定了,打扰到大家了.因为定义的是无符号整数.所以函数的参数应该是uint16_t

使用特权

评论回复
| 2021-2-24 08:07 | 显示全部楼层
函数的定义尤为重要,特别是变量定义。

使用特权

评论回复
| 2021-2-24 17:23 | 显示全部楼层
你直接操作对应的PIN和GPIO就行了。

使用特权

评论回复
| 2021-2-25 11:34 | 显示全部楼层
要看引用的什么。

使用特权

评论回复
| 2021-2-26 12:28 | 显示全部楼层
用宏定义啊就可以解决这个问题啊

使用特权

评论回复
| 2021-2-27 23:04 | 显示全部楼层
宏定义可以~

使用特权

评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 我要提问 投诉建议 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

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