历史上的今天
今天是:2024年09月25日(星期三)
2019年09月25日 | stm32—GPIO操作(库函数)
2019-09-25 来源:eefocus
GPIO的8种方式
1、浮空输入GPIO_IN_FLOATING ——浮空输入,可以做KEY识别,RX1
2、带上拉输入GPIO_IPU——IO内部上拉电阻输入
3、带下拉输入GPIO_IPD—— IO内部下拉电阻输入
4、模拟输入GPIO_AIN ——应用ADC模拟输入,或者低功耗下省电
5、开漏输出GPIO_OUT_OD ——IO输出0接GND,IO输出1,悬空,需要外接上拉电阻,才能实现输出高电平。当输出为1时,IO口的状态由上拉电阻拉高电平,但由于是开漏输出模式,这样IO口也就可以由外部电路改变为低电平或不变。可以读IO输入电平变化,实现C51的IO双向功能
6、推挽输出GPIO_OUT_PP ——IO输出0-接GND, IO输出1 -接VCC,读输入值是未知的
7、复用功能的推挽输出GPIO_AF_PP ——片内外设功能(I2C的SCL,SDA)
8、复用功能的开漏输出GPIO_AF_OD——片内外设功能(TX1,MOSI,MISO.SCK.SS)
下面是GPIO的初始化
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); //使能端口时钟
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4; //端口配置
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //50M
GPIO_Init(GPIOA, &GPIO_InitStructure); //根据设定参数初始化GPIOA
GPIO操作的函数
GPIO_SetBits(GPIOA,GPIO_Pin_0 | GPIO_Pin_1); //设置PA0--PA1高电平
GPIO_ResetBits(GPIOA,GPIO_Pin_0 | GPIO_Pin_1); //设置PA0--PA1低电平
GPIO_WriteBit(GPIOA,GPIO_Pin_3,1); //设置PA3高电平
GPIO_WriteBit(GPIOA,GPIO_Pin_3,0); //设置PA3低电平
GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_1) //获取PA1引脚电平0或者1
史海拾趣
|
在不用编程器的情况下用ISP口能实现代码的下载固化,比较方便了,可没有知道这个数据线是如何做出来的,是用373还是245缓冲的好呢,还是有其他更稳定的,请大伙推荐几中方案好吗?… 查看全部问答> |
|
$(\'swf_Vc7\').innerHTML=AC_FL_RunContent(\'width\', \'550\', \'height\', \'400\', \'allowNetworking\', \'internal\', \'allowScriptAccess\', \'never\', \'src\', encodeURI(\'http://player.youku.com/player.php/sid/XMTM3ODYzNTk2/v.sw ...… 查看全部问答> |
|
在pxa270芯片上用到OV511摄像头,BSP没提供摄像头的驱动,到pudn网下载一个,编译好dll为ov511.dll,得到镜像后,在板子上运行,插入摄像头,提示找不到驱动类型。请问,platform.bib和platform.reg按照下面添加有什么问 ...… 查看全部问答> |
|
近今年一直关注国产的单片机,忽然有个想法。 想把所有的国产单片机的厂家或者品牌列出来。 这样行业内朋友选型也好有参考。 毕竟只有走出来,才有可能走得好。 衷心祝愿国产单片机一路走好!… 查看全部问答> |
|
在我们国家,用51的多如牛毛,虽然没做过调查,但大家都这么说,在MCU DAY上,一个跟我坐一起的大叔,跟他聊了几句,他公司就是做51的。 但是,430呢?似乎没怎么听说。 问了好几个我认识的电子领域的朋友。(也可能他们大多跟我一样,大多是学生 ...… 查看全部问答> |
|
请教各位高手,我现在是刚接触AVR单片机,现在我要测一个信号的电压与脉宽,但是该信号脉宽仅为3us,不知道AVR哪款单片机的采样频率能达到这个要求?请大家出个主意… 查看全部问答> |
|
用MSP430将加速度传感器MMA7455的数据传到上位机,MMA7455选2g模式。出现如下两个问题:1、发现XYZ三轴读到的数和数据手册都不一样,Z轴是0到127而不是手册上的-63到63,XY轴是横跨256但也并不关于256对称。2、三个轴的加速度数据是 ...… 查看全部问答> |
|
#include #include #define uchar unsigned char #define uint unsigned int #define fosc 120000 #define bps 9600 /*LED_Buffer[16]用来存储串口发送的数据,com_dat用来记录串口发送的个数*/ uchar LED_Buffer[16], *q, com_ ...… 查看全部问答> |




