GD32F330F8 新用求助

[复制链接]
1212|4
 楼主| 自己和自己玩 发表于 2020-7-2 10:50 | 显示全部楼层 |阅读模式
本帖最后由 自己和自己玩 于 2020-7-2 10:57 编辑

最近刚用GD单片机开发,想先用寄存器点亮LED,但是始终报错,大家帮我看下,感谢了
897955efd4b7e7b60b.png
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下载脚,感谢哈
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

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