打印

新人求助

[复制链接]
1244|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
leovs|  楼主 | 2019-3-6 00:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
pi, IO, GPIO, gp, LED
手上有一块GD32F107的板子,从电路上看 IC的62脚 PB9 是控制一个LED的电路
我尝试将62引脚接上3.3V,上拉电压,可以正常点亮LED

然后我写了个程序,上传到ic中,尝试通过程序来控制LED,一个非常简单的程序

int main() {
        rcu_periph_clock_enable(RCU_GPIOB);
        gpio_init(GPIOB, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_9);
       
        while(1){
                GPIO_BC(GPIOB) = GPIO_PIN_9;
                delay_1ms(1000);
                GPIO_BOP(GPIOB) = GPIO_PIN_9;
                delay_1ms(1000);
        }
}

上传后,无任何反应,万用表测量62引脚,也没有变化
沙发
二九结狐六体| | 2019-3-6 09:27 | 只看该作者

使用特权

评论回复
板凳
leovs|  楼主 | 2019-3-6 11:55 | 只看该作者
为什么呢?

使用特权

评论回复
地板
hu9jj| | 2019-3-6 12:51 | 只看该作者
不能直接将电压加到GPIO引脚上,这样可能会造成引脚损坏,保险的办法是串联一个限流电阻。

使用特权

评论回复
5
hu9jj| | 2019-3-6 12:53 | 只看该作者
本帖最后由 hu9jj 于 2019-3-6 20:36 编辑

确定GPIO_BC()和GPIO_BOP()这两个函数是拉高和拉低引脚电平吗?

使用特权

评论回复
6
leovs|  楼主 | 2019-3-6 13:56 | 只看该作者
hu9jj 发表于 2019-3-6 12:53
确定GPIO_BC()和GPIO_COP()这两个函数是拉高和拉低引脚电平吗?

电压上拉到gpio上之前有个3.3K电阻,只是为了测试led管脚是否正常用的。

之前没接触过,目前什么情况都不知道
目前的情况就是代码传上去,无任何反应
尝试用官方的demo测试,官方的是点亮PC1的管脚,用万用表测量,pc2管脚有变动,
尝试点亮pb9, 但是pb8有反应, 每次测试还要把jlink给拔掉,然后重新上电才能测试效果
有时候程序上传显示成功了,但是感觉没成功,重复刷几次,又有变化了,但是变化和预期每次都不一样
感觉乱七八糟的

使用特权

评论回复
7
hu9jj| | 2019-3-6 20:22 | 只看该作者
本帖最后由 hu9jj 于 2019-3-6 20:35 编辑

问题也许就出在GPIO_BC()和GPIO_BOP()这两个函数上,您确定这是库函数吗,确定其作用吗?
刚才查了一下,这两个函数的确是设置引脚状态的:
void gpio_bit_reset(uint32_t gpio_periph, uint32_t pin)
{
    GPIO_BC(gpio_periph) = (uint32_t)pin;
}
void gpio_bit_set(uint32_t gpio_periph, uint32_t pin)
{
    GPIO_BOP(gpio_periph) = (uint32_t)pin;
}
平时我只是用set或reset函数,所以不了解,抱歉!


使用特权

评论回复
8
123ycli| | 2019-3-28 17:30 | 只看该作者
PB9和PB8是特殊功能IO吗?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

3

帖子

0

粉丝