3.5 的标准外设库,软件触发 ADC 的问题

[复制链接]
4044|8
 楼主| grissiom 发表于 2011-11-16 16:38 | 显示全部楼层 |阅读模式
本帖最后由 grissiom 于 2011-11-17 14:03 编辑

3.5.0 的标准外设库。 stm32f10x_adc.c 第 92 行是
/* ADC Software start mask */

#define CR2_EXTTRIG_SWSTART_Set     ((uint32_t)0x00500000)


然后

  1. /**
  2. * @brief Enables or disables the selected ADC software start conversion .
  3. * @param ADCx: where x can be 1, 2 or 3 to select the ADC peripheral.
  4. * @param NewState: new state of the selected ADC software start conversion.
  5. * This parameter can be: ENABLE or DISABLE.
  6. * @retval None
  7. */
  8. void ADC_SoftwareStartConvCmd(ADC_TypeDef* ADCx, FunctionalState NewState)
  9. {
  10. /* Check the parameters */
  11. assert_param(IS_ADC_ALL_PERIPH(ADCx));
  12. assert_param(IS_FUNCTIONAL_STATE(NewState));
  13. if (NewState != DISABLE)
  14. {
  15. /* Enable the selected ADC conversion on external event and start the selected
  16. ADC conversion */
  17. ADCx->CR2 |= CR2_EXTTRIG_SWSTART_Set;
  18. }
  19. else
  20. {
  21. /* Disable the selected ADC conversion on external event and stop the selected
  22. ADC conversion */
  23. ADCx->CR2 &= CR2_EXTTRIG_SWSTART_Reset;
  24. }
  25. }


也就是说每次软件启动 ADC 的时候都会使能外部事件启动转换?为啥要这样呢?请大侠点解……
 楼主| grissiom 发表于 2011-11-17 14:03 | 显示全部楼层
召唤香主
香水城 发表于 2011-11-17 14:14 | 显示全部楼层
不好意思,我没有研究过这个问题。
sinadz 发表于 2011-11-17 17:59 | 显示全部楼层
哪位大侠研究过这个问题
 楼主| grissiom 发表于 2011-11-17 18:52 | 显示全部楼层
貌似有点明白了…… EXTSEL 如果是 0111 的话就是选中了软件触发,而 ADC_ExternalTrigConv_None 的值就是 ((uint32_t)0x000E0000) …… 如果单单设置了 SWSTART 但是不使能 EXTTRG,则不能触发转换(经实测)。
 楼主| grissiom 发表于 2011-11-17 18:53 | 显示全部楼层
为啥几乎我的帖子都是我自己结呢,整的连分都给不出去,唉……
香水城 发表于 2011-11-17 20:27 | 显示全部楼层
哈哈,因为你的问题比较难,而你又太聪明,往往都是自问自答的,:lol
无冕之王 发表于 2011-11-17 22:48 | 显示全部楼层
香主又开始幽默了:lol
 楼主| grissiom 发表于 2011-11-18 09:10 | 显示全部楼层
香主果然幽默啊~:lol
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

84

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部