各位大侠,在stm32中io位可不可以设置输出模式

发布: 2010-1-19 11:46 | 作者: boboecit | 来源: StmFans思蜕盟 OPELC 自由电子联盟

各位大侠,在stm32中io位可不可以设置输出模式,比如pb设置out_pp,但是我想把pb中某一个口设置成out_od,怎么做到
binglin (2010-1-19 17:34:47)
当然可以,每个IO口的输出输入模式都可单独配置的。
binglin (2010-1-19 17:43:33)
例如你想将PB8配置为GPIO_Mode_Out_OD,其它的GPIO口配置为GPIO_Mode_out_pp,代码如下:

GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = |GPIO_Pin_0|GPIO_Pin_0|GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11|GPIO_Pin_12|GPIO_Pin_12|GPIO_Pin_14|GPIO_Pin_15;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
GPIO_InitStructure.GPIO_Mode =GPIO_Mode_out_pp;
GPIO_Init(GPIB, &GPIO_InitStructure);

GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
GPIO_InitStructure.GPIO_Mode =GPIO_Mode_Out_OD;
GPIO_Init(GPIB, &GPIO_InitStructure);

另外上面“GPIO_InitStructure.GPIO_Pin = |GPIO_Pin_0|GPIO_Pin_0|GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11|GPIO_Pin_12|GPIO_Pin_12|GPIO_Pin_14|GPIO_Pin_15; ”也可改为:GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All,使用这种方式的前提取决于你的外设可以这么做。

简单说是GPIOX口的每一位都可以单独配置并初始化不同的模式。
boboecit (2010-1-20 08:30:05)
3# binglin


谢谢,我昨天也是这样的,后来我看了一下,是我没重新定义结构