STM32最常用就是利桥拦镇用库函数控制输入输出。
控制流程:初始化I/O功能 ---> 对I/O进行 *** 作
初始化函数:
void IO_Init(void){ //LED灯的接口初始化
GPIO_InitTypeDef GPIO_InitStructure
//使能GPIOB时钟,因为我们要使用GPIOB上的管脚
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE)
//我们需要使用GPIOB的管脚,但是管脚位我们使用0号,所以总来说是PB0
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0
//选择PB0管脚的功能
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP//选择IO接口工作敏粗方式为推挽输出
/*可取值
GPIO_Mode_AIN 模拟输入
GPIO_Mode_IN_FLOATING 浮空输入,采集数字信号
GPIO_Mode_IPD 下拉输入,高电平有效
GPIO_Mode_IPU 上拉输入,低电平有效
GPIO_Mode_Out_PP 推挽输出,有推动能力的输出
GPIO_Mode_Out_OD 开漏输出,无推动能力
GPIO_Mode_AF_PP 复用推挽输出,复用功能时启用
GPIO_Mode_AF_OD 复用开漏输出,复用功能时启衡此用*/
//配置IO口的输出速度,如果是输入功能,这个就不用设置了
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz //可设置IO接口速度(2/10/50MHz)
//将上面设置写入到GPIOB设置寄存器
GPIO_Init(GPIOB, &GPIO_InitStructure)
}
输入与输出函数:
STM32提供了好几种输出函数
输入主要是读引脚电平,也提供了几个函数
这些函数需要题主在学习过程中掌握,这里我只是给以一个控制流程。
*Input floating: 引脚悬空,就是没有上拉也没有下拉电阻的意思,针对外部有上拉器件使用,节省能耗,做AD输入时也宴指可以这样设置。*Input pull-up: 芯片输入有内部有上拉电阻(电阻接VCC)
*Input pull-down: 芯片输入有内部下拉电阻(电阻接)
*Analog input: 模拟输入,用于AD,比较器输入(我理解是跟floating一样,实际我没有用到这个方式银祥嫌)
*Output open-drain: 开漏输出,类似三极管集电极引出,就是输出没有上拉电阻,要外部供电,否则输出永远是“0”
*Output push-pull: 推挽输出,输出引脚对VCC和对地各锋手有一个MOS管,输出电流较大
*Alternate function push-pull: 复用推挽输出
*Alternate function open-drain: 复用开漏输出
最后这两个功能请参考端口映射说明。
提问者评价
谢谢!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)