KE02 实现一次硬件触发转换多个通道

KE02如果想通过硬件触发实现每隔一定时间间隔,依次连续转换多路ADC数据,然后进入中断读取数据,那么该如何实现呢?由手册可以看到,KE02 使用FIFO 硬件触发有两种模式:
这里写图片描述
模式1 单次触发显然不满足要求,只能考虑使用第二种连续触发方式,但是这种方式存在一个问题,它在完成n路通道后会继续重新开始采样,如果读取的话可能会导致读取的值不是想要的特定时刻的值。那么该如何解决呢?
可以在中断里先设置ADC SC2寄存器关闭硬件触发,再读取各个值。

ADC->SC2 &= ~ADC_SC2_ADTRG_MASK;  

读取完之后再打开硬件触发。

ADC->SC2 |= ADC_SC2_ADTRG_MASK;  

这里写图片描述
这里写图片描述
可知写SC2寄存器,会导致连续转换终止,这样转换值就无效,ADC_R中的值为之前正确转换的值,这样就可以完成所需功能。

如果是软件触发的话,可以使用一个定时器,在定时器中断服务函数里依次触发多路通道,然后进ADC中断去处理。

以下是关于这个问题的讨论:
这里写链接内容

这里写链接内容

这里写链接内容

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值