STM32 GPIO口配置问题

[复制链接]
查看11 | 回复7 | 2021-1-27 05:06:11 | 显示全部楼层 |阅读模式
如题,配置STM32F303CCGPIO口高低电平,由CUBEMX生成
/*ConfigureGPIOpins:LED1_PinLED2_Pin*/
GPIO_InitStruct.Pin=LED1_Pin|LED2_Pin;
GPIO_InitStruct.Mode=GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull=GPIO_PULLUP;
GPIO_InitStruct.Speed=GPIO_SPEED_FREQ_HIGH;
HAL_GPIO_Init(GPIOB,&GPIO_InitStruct);
配置完之后测试是高电平
通过keil将GPIO_InitStruct.Pull=GPIO_PULLUP;写成GPIO_InitStruct.Pull=GPIO_PULLDOWN;
为什么实际测试不会变低呢?


分 -->
回复

使用道具 举报

千问 | 2021-1-27 05:06:11 | 显示全部楼层
电平需要通过SET_BIT或CLEAR_BIT或通过GPIOx->BSRR、GPIOx->BRR来设置
回复

使用道具 举报

千问 | 2021-1-27 05:06:11 | 显示全部楼层
pull是指上拉和下拉
回复

使用道具 举报

千问 | 2021-1-27 05:06:11 | 显示全部楼层
引用1楼worldy的回复:电平需要通过SET_BIT或CLEAR_BIT或通过GPIOx->BSRR、GPIOx->BRR来设置
了解,我试试
回复

使用道具 举报

千问 | 2021-1-27 05:06:11 | 显示全部楼层
引用2楼瓶0盖的回复:pull是指上拉和下拉
了解

,配置完切设定平需要自己写程序吗
回复

使用道具 举报

千问 | 2021-1-27 05:06:11 | 显示全部楼层
引用4楼SKAHSC的回复:Quote: 引用2楼瓶0盖的回复:pull是指上拉和下拉
了解

,配置完切设定平需要自己写程序吗

他这个结构体里应该会有初始化的电平设置的。运行中配置也是可以的
回复

使用道具 举报

千问 | 2021-1-27 05:06:11 | 显示全部楼层
你所说的GPIO_InitStruct.Pull=GPIO_PULLUP;GPIO_PULLDOWN;只是上下拉,在推挽输出中用不到,直接配置为GPIO_NOPULL即可。像一般的I2C才会用到上拉操作。控制引脚电平的高低使用功能函数“HAL_GPIO_WritePin(GPIOB,LED1_Pin|LED2_Pin,GPIO_PIN_RESET);”
回复

使用道具 举报

千问 | 2021-1-27 05:06:11 | 显示全部楼层
如果是用CUBEMX生成,可以在GPIO配置里直接设置io口初始化电平。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行