打印

GD32F330F8 新用求助

[复制链接]
974|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 自己和自己玩 于 2020-7-2 10:57 编辑

最近刚用GD单片机开发,想先用寄存器点亮LED,但是始终报错,大家帮我看下,感谢了

使用特权

评论回复
沙发
sonicll| | 2020-7-2 11:12 | 只看该作者
你用的是GD的固件库吗,GD的固件库,没有把外设定义为结构体,所有的寄存器都是独立的指针,你可以这样写:
GPIO_CTL(GPIOA) = 0;

使用特权

评论回复
板凳
自己和自己玩|  楼主 | 2020-7-2 11:14 | 只看该作者
sonicll 发表于 2020-7-2 11:12
你用的是GD的固件库吗,GD的固件库,没有把外设定义为结构体,所有的寄存器都是独立的指针,你可以这样写: ...

感谢哈,是用的GD的固件库,这样的话难以理解,之前习惯用那种方式了

使用特权

评论回复
地板
自己和自己玩|  楼主 | 2020-7-2 12:47 | 只看该作者
sonicll 发表于 2020-7-2 11:12
你用的是GD的固件库吗,GD的固件库,没有把外设定义为结构体,所有的寄存器都是独立的指针,你可以这样写: ...

再咨询您一下哈,如果我单独配置某一个IO口,比如说PA0,那应该怎么去写,因为我发现如果我这样去写         GPIO_CTL(GPIOB) = 1; 会干扰其他IO口,也会影响SWD下载脚,感谢哈

使用特权

评论回复
5
sonicll| | 2020-7-2 13:50 | 只看该作者
本帖最后由 sonicll 于 2020-7-2 14:03 编辑
自己和自己玩 发表于 2020-7-2 12:47
再咨询您一下哈,如果我单独配置某一个IO口,比如说PA0,那应该怎么去写,因为我发现如果我这样去写         GPI ...

先读取寄存器原来的值,用“与”操作清零要写入的位,用“或”操作置1要写入的位,再写回寄存器。
例如,想配置PA2为备用功能模式:
GPIO_CTL(GPIOA) &= ~BITS(4,5);      //清零bit5~bit4
GPIO_CTL(GPIOA) |= (GPIO_MODE_AF<<4);   //bit5~bit4写入10
头文件里有很多定义好的宏,可以直接用

使用特权

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

本版积分规则

25

主题

82

帖子

0

粉丝