中级会员
 
- 积分
- 264
- 金钱
- 264
- 注册时间
- 2019-3-26
- 在线时间
- 105 小时
|
1金钱
趁着这几天没事我想熟悉一下cubemx工具,发现生成的代码中,串口的收发都配置成了复用推挽,如下:
GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
GPIO_InitStruct.Alternate = GPIO_AF7_USART1;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
我一开始以为是我哪里配置错了,于是打开原子阿波罗F429的usart文件夹,发现原子的代码也是把俩引脚都配置成了复用推挽:
GPIO_Initure.Pin=GPIO_PIN_9; //PA9
GPIO_Initure.Mode=GPIO_MODE_AF_PP; //复用推挽输出
GPIO_Initure.Pull=GPIO_PULLUP; //上拉
GPIO_Initure.Speed=GPIO_SPEED_FAST; //高速
GPIO_Initure.Alternate=GPIO_AF7_USART1; //复用为USART1
HAL_GPIO_Init(GPIOA,&GPIO_Initure); //初始化PA9
GPIO_Initure.Pin=GPIO_PIN_10; //PA10
HAL_GPIO_Init(GPIOA,&GPIO_Initure); //初始化PA10
不过实际跑代码没有一点问题,好奇的是我以前用标准库,都是一个推挽一个浮空输入,这算是HAL的一个bug吗?还是说配置成什么都没有影响
|
|