[开发工具]

STM32同一个端口的不同引脚配置成不同的输出模式

[复制链接]
2446|3
手机看帖
扫描二维码
随时随地手机跟帖
wdmhzh|  楼主 | 2018-6-2 22:08 | 显示全部楼层 |阅读模式
如题,STM32同一个端口的不同引脚配置成不同的输出模式,比如:端口A的1脚输出配置成频率2M 推挽输出、2脚输出配置设置成频率10M 开漏输出。
GPIO_InitTypeDef   GPIO_INIT_GPIOA;         //端口参数配置
     GPIO_INIT_GPIOA.GPIO_Pin = GPIO_Pin_1;                          
     GPIO_INIT_GPIOA.GPIO_Mode = GPIO_Mode_Out_PP;
     GPIO_INIT_GPIOA.GPIO_Speed = GPIO_Speed_2MHz;

     GPIO_INIT_GPIOA.GPIO_Pin = GPIO_Pin_2;
     GPIO_INIT_GPIOA.GPIO_Mode = GPIO_Mode_Out_OD;
     GPIO_INIT_GPIOA.GPIO_Speed = GPIO_Speed_10MHz;
GPIO_Init(GPIOA,&GPIO_INIT_GPIOA);//端口配置初始化
像我这种写法的话,是不是1脚的输出配置被2脚的输出配置覆盖掉了??

如果分开写,如下:
GPIO_InitTypeDef   GPIO_INIT_GPIOA1; //端口1参数配置
     GPIO_INIT_GPIOA1.GPIO_Pin = GPIO_Pin_1;
     GPIO_INIT_GPIOA1.GPIO_Mode = GPIO_Mode_Out_PP;
     GPIO_INIT_GPIOA1.GPIO_Speed = GPIO_Speed_2MHz;
GPIO_Init(GPIOA,&GPIO_INIT_GPIOA1);//端口1脚配置初始化

GPIO_InitTypeDef   GPIO_INIT_GPIOA2; //端口2参数配置
     GPIO_INIT_GPIOA2.GPIO_Pin = GPIO_Pin_2;
     GPIO_INIT_GPIOA2.GPIO_Mode = GPIO_Mode_Out_OD;
     GPIO_INIT_GPIOA2.GPIO_Speed = GPIO_Speed_10MHz;
GPIO_Init(GPIOA,&GPIO_INIT_GPIOA2);//端口2脚配置初始化

换成这样的写法,是不是1脚的输出配置还是要被2脚的输出配置覆盖掉??因为小弟的理解是:GPIO_INIT_GPIOA.GPIO_Mode = GPIO_Mode_Out_OD;这条语句是把端口A的所有引脚都配置成开漏输出,同理GPIO_INIT_GPIOA.GPIO_Speed = GPIO_Speed_10MHz;这条语句是把端口A的所有引脚都配置成10M,不知对不??
xyz549040622| | 2018-6-4 09:04 | 显示全部楼层
不会的,放心吧。

使用特权

评论回复
ayb_ice| | 2018-6-4 09:13 | 显示全部楼层
GPIO_INIT_GPIOA2.GPIO_Pin = GPIO_Pin_2;

不会的,这个指定正确就可以了,不会对非指定的造成影响

使用特权

评论回复
wdmhzh|  楼主 | 2018-6-5 22:13 | 显示全部楼层
多谢两位老大答疑,小弟初学对底层端口配置还不怎么会看

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

54

主题

130

帖子

2

粉丝