我在看原子的例程时,在使用HAL库时很多地方的输入IO口配置简化了。。我还特意去翻看了寄存器版本,发现寄存器版本是完整配置的!例如:HAL库串口1初始化时io配置
__HAL_RCC_GPIOA_CLK_ENABLE();
__HAL_RCC_USART1_CLK_ENABLE();
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;
HAL_GPIO_Init(GPIOA,&GPIO_Initure);
GPIO_Initure.Pin=GPIO_PIN_10;
HAL_GPIO_Init(GPIOA,&GPIO_Initure);
寄存器版本:
RCC->AHB1ENR|=1<<0;
RCC->APB2ENR|=1<<4;
GPIO_Set(GPIOA,PIN9|PIN10,GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_50M,GPIO_PUPD_PU);
GPIO_AF_Set(GPIOA,9,7); //PA9,AF7
GPIO_AF_Set(GPIOA,10,7);//PA10,AF7
PA9、10都重映射了AF7.。也就是USART1,这是为什么呢?
HAL库有自动设置功能吗?我找了一下没找见,求解答!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
图形化 配置 IO 配置 全搞定。。。
我做过一次,不过初接触STM32 还是想多看看代码。。
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; //这里就是重映射
HAL_GPIO_Init(GPIOA,&GPIO_Initure); //在这函数里初始化
一周热门 更多>