你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32F0的LL库使用(一)

[复制链接]
lebment 发布时间:2018-1-5 23:01
  鉴于各位大佬都熟悉STM32,我只是抛砖引玉LL库的性能也接近寄存器,很有实用价值,所以本贴只是探索LL库用来学习,各位大佬多多交流,大家的进步会更快。
  这里就不介绍LL库的背景了,咱们直接上点灯。
  硬件: STM32F030F4P6
              板载的LED灯接PA4
  软件:CubeMX+IAR(V8.20)
            LL库版本V1.9.0
     
     不多说,CubeMX不会用请看官方PDF,我直接贴图: 捕获.PNG
捕获.PNG 这里库选择LL库,然后生成代码。
以下是主函数,其余的都未改动。
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库使用(三)

评分

参与人数 1 ST金币 +2 收起 理由
MrJiu + 2 还阔以,以资鼓励!!!

查看全部评分

收藏 2 评论10 发布时间:2018-1-5 23:01

举报

10个回答
涛哥2035 回答时间:2018-1-6 08:34:19
  LL_GPIO_ResetOutputPin(LED_GPIO_Port, LED_Pin);//输出低电平
  LL_mDelay(50);
  LL_GPIO_SetOutputPin(LED_GPIO_Port, LED_Pin);//输出高电平
这是输出高电平后立马就又改成输出低电平,所以看不出来高电平了,要再加一个延时函数

评分

参与人数 1ST金币 +2 收起 理由
Inc_brza + 2

查看全部评分

slotg 回答时间:2018-1-6 01:19:00
在 while(1) 内输出低电平后延时再输出高电平,然后又会再输出低电平,这样的流程应该会被编译器优化吧!
Inc_brza 回答时间:2018-1-6 09:08:00
whtt 发表于 2018-1-6 08:34
LL_GPIO_ResetOutputPin(LED_GPIO_Port, LED_Pin);//输出低电平
  LL_mDelay(50);
  LL_GPIO_SetOutputPi ...

正解
pythonworld 回答时间:2018-1-6 18:02:23
谢谢分享!!!
anywill 回答时间:2018-1-7 07:52:17
学习学习LL新生事物
lebment 回答时间:2018-1-7 12:49:23
anywill 发表于 2018-1-7 07:52
学习学习LL新生事物

谢谢大佬
lebment 回答时间:2018-1-7 12:49:59

大佬,客气
板子粉丝 回答时间:2018-2-28 09:20:20
对应用LL有帮助
kirbymore 回答时间:2018-3-1 16:54:05
以前写汇编的,一般不用延时的方法,这样CPU效率低,是不是应该换一种程序结构?
wdliming-222461 回答时间:2019-2-28 10:36:30
whtt 发表于 2018-1-6 08:34
LL_GPIO_ResetOutputPin(LED_GPIO_Port, LED_Pin);//输出低电平
  LL_mDelay(50);
  LL_GPIO_SetOutputPi ...

这个是低级错误了

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版