在线时间2094 小时
UID3253523
注册时间2016-3-21
NXP金币1694
该用户从未签到
超级版主
- 积分
- 19924
- 最后登录
- 2024-4-19
|
本帖最后由 小恩GG 于 2021-3-25 09:53 编辑
adc有时候需要多个通道数据的值,下面介绍一种简单的方法来查看连续adc通道的模拟值。使用循环,在每次采集完成后就更改配置,然后再次采集。
实现函数
输入开始通道和结束通道,就可以将区间范围的通道值全都采集出来。
void scanChannel(ADC_Type *base,uint8_t startChannel, uint8_t endChannel)
{
assert(base);
adc16_channel_config_t adc16ChannelConfigStruct;
for(uint8_t i = startChannel; i <= endChannel; i++)
{
adc16ChannelConfigStruct.channelNumber = i ;
adc16ChannelConfigStruct.enableInterruptOnConversionCompleted = false;
ADC16_SetChannelConfig(base, 0, &adc16ChannelConfigStruct);
while (0U == (kADC16_ChannelConversionDoneFlag &
ADC16_GetChannelStatusFlags(base, 0)));
PRINTF("ADC%d channel:%d Value : %d\r\n",base==ADC0?0:1 ,i , ADC16_GetChannelConversionValue(base, 0));
}
}
效果如下
很简单,但是在通道非常多的情况下还是比较占用mcu资源的,下一连实现灵活多通道采集
多通道.zip
(1.17 KB, 下载次数: 16)
|
|