我有两个简单的 LED 闪光灯以 1 秒的间隔为我的 BluePills 编程闪光。一种方法使用 HAL_GPIO_TogglePin 切换 LED 状态,另一种使用 Set 和 Reset 切换 LED 状态。设置和重置按预期运行,但 HAL_GPIO_TogglePin 确实在工作,但它在某些时候几乎具有 PWM 效果。我已经在 2 个不同的 Bluepills 上尝试了这两种方法,结果都相同。
while (1)
{
if (__HAL_TIM_GET_COUNTER(&htim1) >= 32000)
{
HAL_GPIO_TogglePin(User_LED_GPIO_Port, User_LED_Pin);
}
和
while (1)
{
if (__HAL_TIM_GET_COUNTER(&htim1) >= 32000)
{
HAL_GPIO_WritePin(User_LED_GPIO_Port, User_LED_Pin, GPIO_PIN_SET);
}
else {
HAL_GPIO_WritePin(User_LED_GPIO_Port, User_LED_Pin, GPIO_PIN_RESET);
}