
鉴于各位大佬都熟悉STM32,我只是抛砖引玉LL库的性能也接近寄存器,很有实用价值,所以本贴只是探索LL库用来学习,各位大佬多多交流,大家的进步会更快。 这里就不介绍LL库的背景了,咱们直接上点灯。 硬件: STM32F030F4P6 板载的LED灯接PA4 软件:CubeMX+IAR(V8.20) LL库版本V1.9.0 不多说,CubeMX不会用请看官方PDF,我直接贴图: ![]() ![]() 以下是主函数,其余的都未改动。 int main(void) { /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ /* MCU Configuration----------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ LL_Init(); /* USER CODE BEGIN Init */ /* USER CODE END Init */ /* Configure the system clock */ SystemClock_Config(); /* USER CODE BEGIN SysInit */ /* USER CODE END SysInit */ /* Initialize all configured peripherals */ MX_GPIO_Init(); /* USER CODE BEGIN 2 */ /* USER CODE END 2 */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ LL_mDelay(50); LL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin); } /* USER CODE END 3 */ } 你以为就这么完了吗-***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************- 并没有 本人发现一个问题: LL_mDelay(50); LL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin);这样是可以翻转的 如果改成 LL_GPIO_ResetOutputPin(LED_GPIO_Port, LED_Pin);//输出低电平 LL_mDelay(50); LL_GPIO_SetOutputPin(LED_GPIO_Port, LED_Pin);//输出高电平 并未发生翻转现象。 经过一翻摸索改为: LL_mDelay(25); LL_GPIO_ResetOutputPin(LED_GPIO_Port, LED_Pin);//输出低电平 LL_mDelay(25); LL_GPIO_SetOutputPin(LED_GPIO_Port, LED_Pin);//输出高电平 正常翻转,有没有大佬解释一下,本人不擅长寄存器,我对那些解答一些困惑的大佬表示十分感谢。 看大家对此贴的讨论,再写出操作其它外设的代码。后续出PWM(已完成)的操作。有可能还有L4的帖子。谢谢大家支持我的一帖。 ) 继续阅读: STM32F0的LL库使用(二) STM32F0的LL库使用(三) |
LL_mDelay(50);
LL_GPIO_SetOutputPin(LED_GPIO_Port, LED_Pin);//输出高电平
这是输出高电平后立马就又改成输出低电平,所以看不出来高电平了,要再加一个延时函数
评分
查看全部评分
正解
谢谢大佬
大佬,客气
这个是低级错误了