使用STM32G031G6U6控制继电器,发现PA8无法输出高低电平。配置如下: GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); 控制操作如下: HAL_GPIO_WritePin(GPIOA,GPIO_PIN_8,GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOA,GPIO_PIN_8,GPIO_PIN_RESET); 各位大佬帮忙看一下是什么问题?谢谢啦 |
STM32G030F6 ADC+DMA多通道非连续采样无法正常工作?
STM32G0B1VE的CAN过滤器个数问题
STM32G0B1adc+dma采样数据错位
有没有stm32g071 Discovery kit的micropython的固件
STM32G0B1CBT6 Flash 不能写擦除,更不要说写入?fal库示例代码哪里有,分享一下,谢谢
STM32G071CBT6技术支持
基于GCC编译器的initcall在STM32如何实现?
stm32cubeide新用户无法注册
关于stm32g系列usart5的问题
STTH8S06D命名规则
注意输出是否被钳位了,可以尝试断开外部连接测试并确认外部电路。
以PA8为例:
__HAL_RCC_GPIOA_CLK_ENABLE();
GPIO_InitStruct.Pin = GPIO_PIN_8;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
如果代码连续运行,先set,紧接着 reset 是量测不出来的。
我通过串口来控制的,一共5个继电器,其它的都正常。就是PA8没办法修改状态。我初始拉高,PA8一直是3.3V,初始置低,PA8就一直是0V. 无论是拉高或者置低,PA8一直是没办法操作的。用trigger改变状态也不可以。
有说是PA8复用功能导致输出不能改变,但是看datasheet,PA8好像也没有特别的复用。
我已经断开了外部电路,发现PA8还是没办法被操作。我试试PWM输出有没有用。我更换了芯片,同样是PA8不能操作。一共控制5个继电器,其它4个都可以,只有PA8不可以。
1. 这样可以检验是否是硬件引起的故障。
2. 如果OK,那么说明软件哪里有冲突了。
所以这个简单验证步骤很重要。。。。。。。。。
[md]找到原因了,我宏定义的时候Pin脚写重复了。打扰大家了。不好意思
使得了,我宏定义的时候脚位写重复了。打扰各位大佬了,不好意思