OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6395|回复: 8

我需要定时器触发ADC定时转换,定时器该如何选择?都有其他功能,是否影响?

[复制链接]

81

主题

1002

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1876
金钱
1876
注册时间
2014-9-10
在线时间
208 小时
发表于 2014-11-15 09:28:12 | 显示全部楼层 |阅读模式
5金钱
是不是只要没有初始化GPIO,就不影响使用IO口呢,例如TIM3对应的4个IO口都是做ADC通道采集。
有没有影响呢?每个定时器都有其他用,是否需要重映射?
void TIM3_Int_Init(u16 arr,u16 psc)
{
    TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
    NVIC_InitTypeDef NVIC_InitStructure;

    RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); //时钟使能

    //定时器TIM3初始化
    TIM_TimeBaseStructure.TIM_Period = arr; //设置在下一个更新事件装入活动的自动重装载寄存器周期的值
    TIM_TimeBaseStructure.TIM_Prescaler =psc; //设置用来作为TIMx时钟频率除数的预分频值
    TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; //设置时钟分割:TDTS = Tck_tim
    TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //TIM向上计数模式
    TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); //根据指定的参数初始化TIMx的时间基数单位
 
    TIM_ITConfig(TIM3, TIM_IT_Update,ENABLE ); //使能指定的TIM3中断,允许更新中断
    TIM_ClearITPendingBit(TIM3, TIM_IT_Update); //清中断,以免一启用中断后立即产生中断
    TIM_SelectOutputTrigger(TIM3, TIM_TRGOSource_Update);           //选择TIM2的update事件更新为触发源
    
    //中断优先级NVIC设置
    NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn;  //TIM3中断
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 3;  //先占优先级0级
    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;  //从优先级3级
    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道被使能
    NVIC_Init(&NVIC_InitStructure);  //初始化NVIC寄存器

    TIM_Cmd(TIM3, ENABLE);  //使能TIMx  
}

void TIM3_IRQHandler(void)   //TIM3中断
{
    if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET)  //检查TIM3更新中断发生与否
    {
            TIM_ClearITPendingBit(TIM3, TIM_IT_Update);  //清除TIMx更新中断标志 
    }
}

还有,TIM6 7是否也可实现这个功能?在原理图上找不到TIM6 7。

小小蜗牛
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

2164

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5703
金钱
5703
注册时间
2013-11-22
在线时间
1198 小时
发表于 2014-11-15 11:52:16 | 显示全部楼层
定时器的更新事件作TRGO输出触发ADC  它的IO口可以做ADC采集    
ADC外部触发模式里没有TIM6 和7的触发方式
回复

使用道具 举报

81

主题

1002

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1876
金钱
1876
注册时间
2014-9-10
在线时间
208 小时
 楼主| 发表于 2014-11-15 11:55:02 | 显示全部楼层
回复【2楼】lycreturn:
---------------------------------
就是不影响了?
我说哪里都没见tim6和7,不是指adc。只在资料里看到
你说定时器的update是外部触发?那什么是内部触发?或者不是外部触发呢?就软件?
小小蜗牛
回复

使用道具 举报

3

主题

2164

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5703
金钱
5703
注册时间
2013-11-22
在线时间
1198 小时
发表于 2014-11-15 12:19:36 | 显示全部楼层
回复【3楼】jiutianshenjian:
---------------------------------
更新事件   由定时器产生    这个更新事件作为一种外部触发方式去触发ADC    
软件触发也算是外部触发吧
回复

使用道具 举报

81

主题

1002

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1876
金钱
1876
注册时间
2014-9-10
在线时间
208 小时
 楼主| 发表于 2014-11-15 13:28:04 | 显示全部楼层
回复【4楼】lycreturn:
---------------------------------
用定时器更新触发ADC转换DMA传送数据.如果想暂停,
TIM_Cmd(TIM3, DISABLE);是不是就实现了adc和dma都停止工作。
然后TIM_Cmd(TIM3, ENABLE);就继续开始工作呢?
感觉有点玄。
小小蜗牛
回复

使用道具 举报

3

主题

2164

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5703
金钱
5703
注册时间
2013-11-22
在线时间
1198 小时
发表于 2014-11-15 19:38:29 | 显示全部楼层
回复【5楼】jiutianshenjian:
---------------------------------
如果TIM3更新事件触发ADC转换
通过控制TIM3的更新事件来控制ADC的转换  没了触发的更新事件   ADC就不转换了  
用DMA搬运转换的AD值  DMA是单独设置的  和定时器没关系
多看看参考手册   都有讲解的
回复

使用道具 举报

1

主题

2

帖子

0

精华

新手入门

积分
7
金钱
7
注册时间
2023-12-8
在线时间
1 小时
发表于 2024-3-5 12:01:53 | 显示全部楼层
lycreturn 发表于 2014-11-15 19:38
回复【5楼】jiutianshenjian:
---------------------------------
如果TIM3更新事件触发ADC转换
通过控制TI ...

意思是dma传输完成后的回调函数的频率和定时器中断的频率是没什么关系的吗
回复

使用道具 举报

28

主题

360

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1027
金钱
1027
注册时间
2021-2-4
在线时间
146 小时
发表于 2024-3-5 12:29:19 | 显示全部楼层
tlan 发表于 2024-3-5 12:01
意思是dma传输完成后的回调函数的频率和定时器中断的频率是没什么关系的吗

定时器中断触发了 开始ADC转换
DMA肯定是要转换完才能传输数据
所以还是有一定的关系的
回复

使用道具 举报

31

主题

1951

帖子

3

精华

论坛元老

Rank: 8Rank: 8

积分
4417
金钱
4417
注册时间
2018-5-11
在线时间
922 小时
发表于 2024-3-5 14:22:36 | 显示全部楼层
tlan 发表于 2024-3-5 12:01
意思是dma传输完成后的回调函数的频率和定时器中断的频率是没什么关系的吗

定时器触发ADC定时转换
ADC触发DMA传输
DMA传输完成或半完成就调用DMA中断服务函数
这是一连串的因果关系
我的开源链接 https://github.com/ShuifaHe/STM32.git  请关注,点赞支持哦。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-23 08:43

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表