打印

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

[复制链接]
3198|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)


然后

/**
* @brief Enables or disables the selected ADC software start conversion .
* @param ADCx: where x can be 1, 2 or 3 to select the ADC peripheral.
* @param NewState: new state of the selected ADC software start conversion.
* This parameter can be: ENABLE or DISABLE.
* @retval None
*/
void ADC_SoftwareStartConvCmd(ADC_TypeDef* ADCx, FunctionalState NewState)
{
/* Check the parameters */
assert_param(IS_ADC_ALL_PERIPH(ADCx));
assert_param(IS_FUNCTIONAL_STATE(NewState));
if (NewState != DISABLE)
{
/* Enable the selected ADC conversion on external event and start the selected
ADC conversion */
ADCx->CR2 |= CR2_EXTTRIG_SWSTART_Set;
}
else
{
/* Disable the selected ADC conversion on external event and stop the selected
ADC conversion */
ADCx->CR2 &= CR2_EXTTRIG_SWSTART_Reset;
}
}


也就是说每次软件启动 ADC 的时候都会使能外部事件启动转换?为啥要这样呢?请大侠点解……
沙发
grissiom|  楼主 | 2011-11-17 14:03 | 只看该作者
召唤香主

使用特权

评论回复
板凳
香水城| | 2011-11-17 14:14 | 只看该作者
不好意思,我没有研究过这个问题。

使用特权

评论回复
地板
sinadz| | 2011-11-17 17:59 | 只看该作者
哪位大侠研究过这个问题

使用特权

评论回复
5
grissiom|  楼主 | 2011-11-17 18:52 | 只看该作者
貌似有点明白了…… EXTSEL 如果是 0111 的话就是选中了软件触发,而 ADC_ExternalTrigConv_None 的值就是 ((uint32_t)0x000E0000) …… 如果单单设置了 SWSTART 但是不使能 EXTTRG,则不能触发转换(经实测)。

使用特权

评论回复
6
grissiom|  楼主 | 2011-11-17 18:53 | 只看该作者
为啥几乎我的帖子都是我自己结呢,整的连分都给不出去,唉……

使用特权

评论回复
7
香水城| | 2011-11-17 20:27 | 只看该作者
哈哈,因为你的问题比较难,而你又太聪明,往往都是自问自答的,:lol

使用特权

评论回复
8
无冕之王| | 2011-11-17 22:48 | 只看该作者
香主又开始幽默了:lol

使用特权

评论回复
9
grissiom|  楼主 | 2011-11-18 09:10 | 只看该作者
香主果然幽默啊~:lol

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

84

帖子

1

粉丝