搜索

[研电赛技术支持] GD32E230的adc通道切换问题

[复制链接]
68|3
 楼主 | 2021-1-7 11:14 | 显示全部楼层 |阅读模式
timer14更新事件产生中断频率为30k,由timer14的通道0上升沿触发adc采样转换,在每个中断中去从新排列一下adc采样通道需要注意什么?比如,一共用到了3个通道,在第一个中断中采样顺序为ch0,ch1,ch2,第二个中断采样顺序则为ch1,ch0,ch2,第三个中断中采样顺序为ch2,ch1,ch0......,总而言之就是我采样通道顺序会改变,这样会不会出现问题?adc需要怎样重新设置?    现在在实际项目中出现了问题,之前用的st的芯片这样做事ok的,现在换成GD的出现了问题,但还不能确定格式哪里出了问题,初步断定与adc采样相关

使用特权

评论回复

评论

zhangkai09077 2021-1-8 18:42 回复TA
@zhangkai09077 : 设置规则组通道数 adc_channel_length_config(ADC_REGULAR_CHANNEL, 3); 设置规则组通道序列 adc_regular_channel_config(0, ADC_CHANNEL_0, ADC_SAMPLETIME_55POINT5); adc_regular_channel_config(1, ADC_CHANNEL_1, ADC_SAMPLETIME_55POINT5); adc_regular_channel_config(2, ADC_CHANNEL_2, ADC_SAMPLETIME_55POINT5); 
zhangkai09077 2021-1-8 18:39 回复TA
你的采样通道是固定的三个通道,虽然采样顺序有时会变。建议你可以尝试:1.打开3个规则组通道,并设置采样顺序。 2.打开EOCIE组转换结束中断使能。 3.在中断使能里重新设置需要的采样顺序。并取上个周期的转换值。 
| 2021-1-9 09:11 | 显示全部楼层
    楼主不妨换种思路,AD采样通道顺序不要变,在AD中断里面做个数据缓冲buf,第一次 buf[0] = ADResult[0],buf[1] = ADresult[1],buf[2]=ADresult[2],第二次 buf[0] = ADResult[1],buf[1] = ADresult[2],buf[2]=ADresult[0],以此类推。
   另外,这个东西主要是实现什么的,为啥AD通道顺序还要一直变?

使用特权

评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 我要提问 投诉建议 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

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