野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7679|回复: 3

使用固件库点亮LED灯

[复制链接]
发表于 2017-9-29 10:07:00 | 显示全部楼层 |阅读模式
采用GPIO_PB0点亮LED灯,固件库中引脚是这样定义的:、#define GPIO_Pin_0                 ((uint16_t)0x0001)  /*!< Pin 0 selected */
而输出采用这个函数void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct)。
结构体中输出是这样的:
GPIO_Initstructure.GPIO_Pin = GPIO_PIN;
GPIO_Initstructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Initstructure.GPIO_Speed = GPIO_Speed_50MHz;

我想问这个引脚是GPIO-ODR寄存器输出吗?那么如果选择PB0输出,配置的ODR引脚不应该是0x40010c0c吗,即GPIO_PIN_0定义为0x40010c0c而不是((uint16_t)0x0001),
谢谢!

回复

使用道具 举报

发表于 2017-9-29 10:26:21 | 显示全部楼层
涉及的知识点比较多,把教程里面的   自己写库—构建库函数雏形 相关的书和视频全部看完就知道 怎么回事了
最好的方法是从0开始按照我们的视频教程来学习。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-9-29 12:40:33 | 显示全部楼层
fire 发表于 2017-9-29 10:26
涉及的知识点比较多,把教程里面的   自己写库—构建库函数雏形 相关的书和视频全部看完就知道 怎么回事了
...

我好好看了下视频,并且看了下固件库。觉得 GPIO_Init(GPIO_PORT,  &GPIO_Initstructure)函数只是得出要输出哪个IO口,以及模式。并没有配置其输出高电平还有低电平。因为复位的时候是低电平,所以LED灯才会亮。不知道我理解的是否对?
谢谢!
回复 支持 反对

使用道具 举报

发表于 2017-9-30 09:28:34 | 显示全部楼层
后面的uint32_t 0x0001应该是指的是GPIO_Pin_0的偏移地址吧,还有我记得如果配置完GPIO后端口会默认设置为低电平,相对于指南者也就是点亮led...
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-5-30 20:19 , Processed in 0.027460 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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