新人求助

[复制链接]
159|6
 楼主 | 2019-3-6 00:02 | 显示全部楼层 |阅读模式
手上有一块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 | 显示全部楼层
 楼主 | 2019-3-6 11:55 | 显示全部楼层
为什么呢?
| 2019-3-6 12:51 | 显示全部楼层
不能直接将电压加到GPIO引脚上,这样可能会造成引脚损坏,保险的办法是串联一个限流电阻。
| 2019-3-6 12:53 | 显示全部楼层
本帖最后由 hu9jj 于 2019-3-6 20:36 编辑

确定GPIO_BC()和GPIO_BOP()这两个函数是拉高和拉低引脚电平吗?
 楼主 | 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给拔掉,然后重新上电才能测试效果
有时候程序上传显示成功了,但是感觉没成功,重复刷几次,又有变化了,但是变化和预期每次都不一样
感觉乱七八糟的

| 2019-3-6 20:22 | 显示全部楼层
本帖最后由 hu9jj 于 2019-3-6 20:35 编辑

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


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

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

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

论坛热帖

快速回复 返回顶部 返回列表