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

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个回答
whtt 回答时间: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效率低,是不是应该换一种程序结构?
12下一页

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

相似分享

官网相关资源

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