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

LL 库现在BUG太多希望官方能重视LL库

[复制链接]
lqs0905 发布时间:2018-11-30 11:58
阅读主题, 点击返回1楼
收藏 评论14 发布时间:2018-11-30 11:58
14个回答
lqs0905 回答时间:2018-11-30 15:20:41
本帖最后由 lqs0905 于 2018-11-30 15:25 编辑

1.就当我哔众取宠吧
2.希望我的发现对一些人有用
3.希望STM 的LL库越来越好用
4.无意冒犯请原谅
deyagu 回答时间:2018-11-30 16:05:45
你看的是例程吧!再说了你看了程序运行时寄存器值吗?LL库也确实有很多不完整的地方
MrJiu 回答时间:2018-11-30 16:17:16
lqs0905 发表于 2018-11-30 15:20
1.就当我哔众取宠吧
2.希望我的发现对一些人有用
3.希望STM 的LL库越来越好用

也不要看到别人否决了,就萎下去了。。。要勇于反抗!!!拿出证据,一步一步认证举例。。。打别人得脸可是很好玩得事情,滑稽。。。问题嘛,就是在反复探讨中成长,但是,一切都有但是,作为个人,很多东西,不要动不动就说别人这不行,那不行,比如你这标题起的,官方LL库bug太多,直接就表明了LL垃圾的一逼啊,感觉就像一以前UC震惊部。。。怎么问才合适呢,比如:官方得LL库这里好像有个bug,不知各位有木有遇到。。。谦虚一点,毕竟个人再牛逼,能力都是由限的!!!
lqs0905 回答时间:2018-11-30 16:58:09
本帖最后由 lqs0905 于 2018-12-1 11:16 编辑

ErrorStatus LL_GPIO_Init(GPIO_TypeDef *GPIOx, LL_GPIO_InitTypeDef *GPIO_InitStruct)
{
  uint32_t pinmask;
  uint32_t pinpos;
  uint32_t currentpin;

  /* Check the parameters */
  assert_param(IS_GPIO_ALL_INSTANCE(GPIOx));
  assert_param(IS_LL_GPIO_PIN(GPIO_InitStruct->Pin));

  /* ------------------------- Configure the port pins ---------------- */
  /* Initialize  pinpos on first pin set */

  pinmask = ((GPIO_InitStruct->Pin) << GPIO_PIN_MASK_POS) >> GPIO_PIN_NB;
  pinpos = POSITION_VAL(pinmask);

  /* Configure the port pins */
  while ((pinmask  >> pinpos) != 0U)
  {
    /* skip if bit is not set */
    if ((pinmask & (1U << pinpos)) != 0U)
    {
      /* Get current io position */
      if (pinpos < GPIO_PIN_MASK_POS)
      {
        currentpin = (0x00000101U << pinpos);
      }
      else
      {
        currentpin = ((0x00010001U << (pinpos - GPIO_PIN_MASK_POS)) | 0x04000000U);
      }

      /* Check Pin Mode and Pin Pull parameters */
      assert_param(IS_LL_GPIO_MODE(GPIO_InitStruct->Mode));
      assert_param(IS_LL_GPIO_PULL(GPIO_InitStruct->Pull));

      /* Pin Mode configuration */
      LL_GPIO_SetPinMode(GPIOx, currentpin, GPIO_InitStruct->Mode);

      /* Pull-up Pull-down resistor configuration*/
      LL_GPIO_SetPinPull(GPIOx, currentpin, GPIO_InitStruct->Pull);//这是一个BUG这一行不管设成输入输去都会执行

      if ((GPIO_InitStruct->Mode == LL_GPIO_MODE_OUTPUT) || (GPIO_InitStruct->Mode == LL_GPIO_MODE_ALTERNATE))
      {
        /* Check speed and Output mode parameters */
        assert_param(IS_LL_GPIO_SPEED(GPIO_InitStruct->Speed));
        assert_param(IS_LL_GPIO_OUTPUT_TYPE(GPIO_InitStruct->OutputType));

        /* Speed mode configuration */
        LL_GPIO_SetPinSpeed(GPIOx, currentpin, GPIO_InitStruct->Speed);

        /* Output mode configuration*/
        LL_GPIO_SetPinOutputType(GPIOx, currentpin, GPIO_InitStruct->OutputType);
      }
    }
    pinpos++;
  }
  return (SUCCESS);
}





caoenq 回答时间:2019-11-1 14:13:11
MrJiu 发表于 2018-11-30 13:42
HAL和LL本身都是都是对寄存器的封装,至于功能的实现,那不叫bug,那叫未实现,或者说是功能不提供!!!而 ...

版主大人说话尖酸、刻薄,但是说的非常有道理。
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 手机版