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

使用问题

[复制链接]
heyongbo236 提问时间:2016-12-8 16:47 /
本帖最后由 heyongbo236 于 2017-4-3 13:52 编辑



/* ### - 1 - Initialize ADC peripheral #################################### */
  /*
   *  Instance                  = ADC1.
   *  OversamplingMode          = Disabled
   *  ClockPrescaler            = PCLK clock with no division.
   *  LowPowerAutoPowerOff      = Disabled (For this exemple continuous mode is enabled with software start)
   *  LowPowerFrequencyMode     = Enabled (To be enabled only if ADC clock is lower than 2.8MHz)
   *  LowPowerAutoWait          = Disabled (New conversion starts only when the previous conversion is completed)      
   *  Resolution                = 12 bit (increased to 16 bit with oversampler)
   *  SamplingTime              = 7.5 cycles od ADC clock.
   *  ScanConvMode              = Forward
   *  DataAlign                 = Right
   *  ContinuousConvMode        = Enabled
   *  DiscontinuousConvMode     = Disabled
   *  ExternalTrigConvEdge      = None (Software start)
   *  EOCSelection              = End Of Conversion event
   *  DMAContinuousRequests     = DISABLE
   */

  AdcHandle.Instance = ADC1;

  AdcHandle.Init.OversamplingMode      = DISABLE;

  AdcHandle.Init.ClockPrescaler        = ADC_CLOCK_SYNC_PCLK_DIV1;
  AdcHandle.Init.LowPowerAutoPowerOff  = DISABLE;
  AdcHandle.Init.LowPowerFrequencyMode = ENABLE;
  AdcHandle.Init.LowPowerAutoWait      = DISABLE;

  AdcHandle.Init.Resolution            = ADC_RESOLUTION_12B;
  AdcHandle.Init.SamplingTime          = ADC_SAMPLETIME_7CYCLES_5;
  AdcHandle.Init.ScanConvMode          = ADC_SCAN_DIRECTION_FORWARD;
  AdcHandle.Init.DataAlign             = ADC_DATAALIGN_RIGHT;
  AdcHandle.Init.ContinuousConvMode    = ENABLE;
  AdcHandle.Init.DiscontinuousConvMode = DISABLE;
  AdcHandle.Init.ExternalTrigConvEdge  = ADC_EXTERNALTRIGCONVEDGE_NONE;
  AdcHandle.Init.EOCSelection          = ADC_EOC_SINGLE_CONV;
  AdcHandle.Init.DMAContinuousRequests = DISABLE;

  /* Initialize ADC peripheral according to the passed parameters */
  if (HAL_ADC_Init(&AdcHandle) != HAL_OK)
  {
    Error_Handler();
  }


收藏 2 评论20 发布时间:2016-12-8 16:47

举报

20个回答
heyongbo236 回答时间:2016-12-8 20:18:51
cuyebiren 发表于 2016-12-8 17:18
应该 是在 HAL_ADC_Init(&AdcHandle)  中 使能的 时钟。。。带 Start 的函数 中 使能 相应外设。。。 ...

灰常感谢您!!!您这么一说倒是提醒了我!!!问题好像解决了!!!我刚又去看了下官网提供的那个源程序,您说的HAL_ADC_Init(&AdcHandle)这个初始化函数里面,确实有个地方提到了  外设时钟使能的函数:HAL_ADC_MspInit(hadc);在这个函数里面又有一个函数:ADCx_CLK_ENABLE();这个函数就是使能外设时钟的,这个函数里面又有一个宏定义,是在main.h里定义的,而main.h里面的是宏是调用的_hal_rcc_ex.h里的,也是在这里操作使能时钟寄存器的,说了半天,貌似就是绕一大圈回到了rcc库里去了。。。再次感谢您。以后还会遇到问题,希望到时候多多关注,多多指教啊!!!

评分

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

查看全部评分

any012 回答时间:2016-12-8 16:59:08
额,这阵子也在学习HAL库,说下自己遇到的。
定时器,初始化后,需要自己启动,是个中间有start字符的函数,对应的停止计时器的函数,里面有个stop字符;
串口初始化后,用对应的函数发送时,里面又调用使能串口,或使能中断的宏,超时或完成后,会自动关闭中断,关闭串口;
SPI和串口类似;
其他的暂时还没用到,不了解。
jackten 回答时间:2016-12-8 17:08:11
没做过                       
cuyebiren 回答时间:2016-12-8 17:18:27
应该 是在 HAL_ADC_Init(&AdcHandle)  中 使能的 时钟。。。带 Start 的函数 中 使能 相应外设。。。

评分

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

查看全部评分

heyongbo236 回答时间:2016-12-8 19:54:21
any012 发表于 2016-12-8 16:59
额,这阵子也在学习HAL库,说下自己遇到的。
定时器,初始化后,需要自己启动,是个中间有start字符的函数 ...

谢谢您的关注和分享,你也在弄这个呢!我今天只弄了下GPIO点个灯的,这个还是比较好明白,ADC那个能采出准确数据但是还多其它的模式不明白,定时器和串口我暂时还没去弄,这个库是有点不习惯,不熟悉啊,现在也没有很多资料可查找的,有机会多多交流啊!!!相互学习下!!!
heyongbo236 回答时间:2016-12-8 19:56:06

恩,没关系,可以看看,以后这个可能会替代以前的,据说哦,谢谢!!!
heyongbo236 回答时间:2016-12-8 20:22:00
新手上路,刚成为初级啦啦啦
cuyebiren 回答时间:2016-12-8 20:30:02
heyongbo236 发表于 2016-12-8 20:18
灰常感谢您!!!您这么一说倒是提醒了我!!!问题好像解决了!!!我刚又去看了下官网提供的那个源程序 ...

没事可以多看看源码,搞明白它是怎么运作的。。。不用搞得特别明白,感觉达到会用不疑的程度就可以了。。。
heyongbo236 回答时间:2016-12-8 20:36:23
cuyebiren 发表于 2016-12-8 20:30
没事可以多看看源码,搞明白它是怎么运作的。。。不用搞得特别明白,感觉达到会用不疑的程度就 ...

嗯嗯。。。好的。。。确实是应该多看看,了解了解内部是怎么运作的。看来你很多经验啊。我新手啊
123下一页

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版