• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

怎么学习HAl库函数,HAl库函数的版本?

huihui163 2017-07-25 浏览量:4544

怎么学习HAl库函数,HAl库函数的版本?

hadc1.Instance = ADC1;
  hadc1.Init.ScanConvMode = ADC_SCAN_ENABLE;
  hadc1.Init.ContinuousConvMode = ENABLE;
  hadc1.Init.DiscontinuousConvMode = DISABLE;
  hadc1.Init.ExternalTrigConv = ADC_SOFTWARE_START;
  hadc1.Init.DataAlign = ADC_DATAALIGN_RIGHT;
  hadc1.Init.NbrOfConversion = 2;
  HAL_ADC_Init(&hadc1);
这是ADC初始化,左边的hadc1等等都是在那定义,找不到,大家在开发产品时直接可以用cube软件生成代码吗,​

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
所有亮答 数量:14
  • 我不用cube,但是HAL库还是用的,下载好HAL库,用哪个外设添加哪个外设的库文件。找变量定义的话,局部变量在函数体前面肯定能找到定义,找到了定义就找到了这个变量的数据类型。右击数据类型跳转到数据类型的定义处,就可以看这个结构体的具体内容了。
huihui163 回复了 我是爆米花啊:这个找变量定义还是会的,您看一下我回复的截图 回复
我是爆米花啊 回复了 huihui163:你那样子找应该找不着吧,hadc1是个结构体,他的数据类型是ADC_HandleTypeDef,你选中ADC_HandleTypeDef找过去,才能看到Instance这个成员啊。同时选中结构体变量和其中一个成员,然后查找定义应该不行吧。。。我没试过,感觉keil可能没那么智能 回复
huihui163 回复了 我是爆米花啊:您说的对,是这样定义了,ADC_HandleTypeDef hadc1;对了,HAL库的版本不像标准库那样那么多版本吧 回复
我是爆米花啊 回复了 huihui163:和标准库差不多吧,昨天下载了个 STM32F7的HAL库,貌似整个F7系列的都在里面了。一个系列一个库的样子。HAL库目前我也没怎么用 回复

  • 这个名字应该是建立工程的时候自己命名的~

  • 定义是在相应的头文件那里的,如果没有头文件的话那应该就是这个文件的顶部。再不然可以直接右键查找定义啊。
huihui163 回复了 donatello:您看一下我的回复截图, 回复
donatello 回复了 huihui163:是选中hadc1五个字母再找定义,你选中了hadc1.Instance怎么找得到呢 回复

  • cube允许自定义变量名,不过建议还是用默认的,这样方便将来的移植

    HAL的库函数可以从HAL_driver那里找到,你要找哪个外设就去查哪个.c文件,比方说IO口输出的函数的定义就可以从hal_gpio.c找到,如下

    QQ截图20170726003210.jpg

    即使它自定义了函数名,那个函数的定义还是能从相应的hal_xxx.c那里找到

huihui163 回复了 chen0000009:HAL库没有版本吗,就像标准库的的3.5版本, 回复
chen0000009 回复了 huihui163:有,不过都差不多的,无非就是改一些小bug, 回复

  • 一条一条的看,不懂就翻看手册。

  • 607.PNG

    那種global變數通常是放在檔案頭

    文檔的話,CubeMX的F7放在<user>\STM32Cube\Repository\STM32Cube_FW_F7_V1.7.0\Drivers\STM32F7xx_HAL_Driver底下,其他類推

    608.PNG

    會用喔,做產品熟能生巧更好


  • 用到那个外设就去那个外设里面去看,比如ADC,下面肯定有一个stm32f4xx_hal_adc.c 还有扩展的stm32f4xx_hal_adc_ex.c ,里面有其包含头文件stm32f4xx_hal_adc.h​,stm32f4xx_hal_adc_ex.h可以查看里面的定义,快速找到要用的函数。​当然怎么让其工作得参考一下STM32FXXX中文或者英文手册,这样结合看

相关问题

问题达人换一批

怎么学习HAl库函数,HAl库函数的版本?