KE02 实现一次硬件触发转换多个通道
【摘要】
KE02如果想通过硬件触发实现每隔一定时间间隔,依次连续转换多路ADC数据,然后进入中断读取数据,那么该如何实现呢?由手册可以看到,KE02 使用FIFO 硬件触发有两种模式: 模式1 单次触发显然...
KE02如果想通过硬件触发实现每隔一定时间间隔,依次连续转换多路ADC数据,然后进入中断读取数据,那么该如何实现呢?由手册可以看到,KE02 使用FIFO 硬件触发有两种模式:
模式1 单次触发显然不满足要求,只能考虑使用第二种连续触发方式,但是这种方式存在一个问题,它在完成n路通道后会继续重新开始采样,如果读取的话可能会导致读取的值不是想要的特定时刻的值。那么该如何解决呢?
可以在中断里先设置ADC SC2寄存器关闭硬件触发,再读取各个值。
ADC->SC2 &= ~ADC_SC2_ADTRG_MASK;
- 1
读取完之后再打开硬件触发。
ADC->SC2 |= ADC_SC2_ADTRG_MASK;
- 1
可知写SC2寄存器,会导致连续转换终止,这样转换值就无效,ADC_R中的值为之前正确转换的值,这样就可以完成所需功能。
如果是软件触发的话,可以使用一个定时器,在定时器中断服务函数里依次触发多路通道,然后进ADC中断去处理。
以下是关于这个问题的讨论:
这里写链接内容
文章来源: blog.csdn.net,作者:TopSemic嵌入式,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/wangwenxue1989/article/details/46703863
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)