使用STM32CubeMX生产工程文件,程序很简单就是控制PC0进行翻转动作程序如下,问题为PC0端口始终为低电平状态 void MX_GPIO_Init(void) { GPIO_InitTypeDef GPIO_InitStruct = {0}; /* GPIO Ports Clock Enable */ __HAL_RCC_GPIOE_CLK_ENABLE(); __HAL_RCC_GPIOC_CLK_ENABLE(); __HAL_RCC_GPIOH_CLK_ENABLE(); __HAL_RCC_GPIOD_CLK_ENABLE(); /*Configure GPIO pin Output Level */ HAL_GPIO_WritePin(GPIOE, GPIO_PIN_3, GPIO_PIN_RESET); /*Configure GPIO pin Output Level */ HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13|GPIO_PIN_0|GPIO_PIN_3, GPIO_PIN_RESET); /*Configure GPIO pin : PE3 */ GPIO_InitStruct.Pin = GPIO_PIN_3; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; HAL_GPIO_Init(GPIOE, &GPIO_InitStruct); /*Configure GPIO pins : PC13 PC0 PC3 */ GPIO_InitStruct.Pin = GPIO_PIN_13|GPIO_PIN_0|GPIO_PIN_3; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); } while (1) { /* USER CODE END WHILE */ HAL_GPIO_WritePin(GPIOC, GPIO_PIN_0, GPIO_PIN_RESET); // HAL_GPIO_WritePin(GPIOE, GPIO_PIN_3, GPIO_PIN_RESET); delay_ms(50000); HAL_GPIO_WritePin(GPIOC, GPIO_PIN_0, GPIO_PIN_SET); // HAL_GPIO_WritePin(GPIOE, GPIO_PIN_3, GPIO_PIN_SET); delay_ms(50000); /* USER CODE BEGIN 3 */ } |
单步调试一下,看看寄存器配置是否正常。另外也检查一下该引脚外部链接电路是否有异常。
现在问题是找到了,我程序中GPIO_PIN_13写车13翻转的话PC0会翻转,但现在PC13怎么配置又不知道了,配置13能示波器看到波形变化,那外部硬件是没问题的
仿真时ODR0变化,I/O口不变,446是有管家隐射类的寄存器吗
仿真时ODR0变化,PC0口不变,ODR13变化时,PC0口变化,446是有管家隐射类的寄存器吗
仿真程序是否跑的正常,别死在delay_ms函数出不来
仿真时ODR0变化,PC0口不变,ODR13变化时,PC0口变化,446是有管家隐射类的寄存器吗 ...
看起来真的很奇怪呀。要检查这两个引脚外部有没有连接关系,内部没听说有什么映射寄存器呀~~
仿真时ODR0变化,PC0口不变,ODR13变化时,PC0口变化,446是有管家隐射类的寄存器吗 ...
看起来真的很奇怪呀。要检查这两个引脚外部有没有连接关系,内部没听说有什么映射寄存器呀~~