在STM32中,比如对GPIOA的某几个引脚进行操作,请问该用什么函数?谢谢。

 我来答
alien6670
推荐于2018-07-04 · TA获得超过310个赞
知道小有建树答主
回答量:298
采纳率:0%
帮助的人:98.8万
展开全部
用库时,这样 GPIO_SetBits(GPIOA,GPIO_Pin_0) \\PA0 = 1
GPIO_ResetBits(GPIOA,GPIO_Pin_0) \\PA0 = 0

是不是很简单,如果你还要更简单的用它,做成宏定义如下

#define PA0(a) if (a) \
GPIO_SetBits(GPIOA,GPIO_Pin_0);\
else \
GPIO_ResetBits(GPIOA,GPIO_Pin_0)

用的时候这样
PA0(1) //PA0 = 1
PA0(0) //PA0 = 0

如果你在上面再加个这样的宏定义
#define ON 0
#define OFF 1

用的时候这样
PA0(OFF) //PA0 = 1
PA0(ON) //PA0 = 0

你看这样的程序都直观!!!

再加个初始化 GPIOA口的代码
void LED_GPIO_Config(void)
{
/*定义一个GPIO_InitTypeDef类型的结构体*/
GPIO_InitTypeDef GPIO_InitStructure;
/*开启GPIOC的外设时钟*/
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
/*选择要控制的GPIOA引脚*/
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_4 | GPIO_Pin_5;
/*设置引脚模式为通用推挽输出*/
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
/*设置引脚速率为50MHz */
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
/*调用库函数,初始化GPIOA*/
GPIO_Init(GPIOA, &GPIO_InitStructure);
}
匿名用户
2014-03-20
展开全部
查看用户手册,里面有GPIO的初始化函数GPIO_init
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式