STM32单片机如何实现规则多通道转换

看了这个代码之后终于明白了规则多通道转换是怎么回事,以及整体如何实现了。附代码:
/*******************************************************************************
* function name : main
* description : main program
* input : none
* output : none
* return : none
*******************************************************************************/
int main(void)
{
#ifdef debug
debug();
#endif
/* system clocks configuration ---------------------------------------------*/
rcc_configuration();
/* nvic configuration ------------------------------------------------------*/
nvic_configuration();
/* gpio configuration ------------------------------------------------------*/
gpio_configuration();
lcdshow_init();
/* dma1 channel1 configuration ----------------------------------------------*/
dma_deinit(dma1_channel1);
dma_initstructure.dma_peripheralbaseaddr = adc1_dr_address;//外设地址
dma_initstructure.dma_memorybaseaddr = (u32)adc_rcvtab;//内存地址
dma_initstructure.dma_dir = dma_dir_peripheralsrc;//dma传输方向单向
dma_initstructure.dma_buffersize = 160;//设置dma在传输时缓冲区的长度 word
dma_initstructure.dma_peripheralinc = dma_peripheralinc_disable;//设置dma的外设递增模式,一个外设
dma_initstructure.dma_memoryinc = dma_memoryinc_enable;//设置dma的内存递增模式,
dma_initstructure.dma_peripheraldatasize = dma_peripheraldatasize_halfword;//外设数据字长
dma_initstructure.dma_memorydatasize = dma_memorydatasize_halfword;//内存数据字长
dma_initstructure.dma_mode = dma_mode_circular;//设置dma的传输模式:连续不断的循环模式
dma_initstructure.dma_priority = dma_priority_high;//设置dma的优先级别
dma_initstructure.dma_m2m = dma_m2m_disable;//设置dma的2个memory中的变量互相访问
dma_init(dma1_channel1, &dma_initstructure);
/* enable dma1 channel1 */
dma_cmd(dma1_channel1, enable);
/* adc1 configuration ------------------------------------------------------*/
adc_initstructure.adc_mode = adc_mode_independent;//独立工作模式
adc_initstructure.adc_scanconvmode = enable;//扫描方式
adc_initstructure.adc_continuousconvmode = enable;//连续转换
adc_initstructure.adc_externaltrigconv = adc_externaltrigconv_none;//外部触发禁止
adc_initstructure.adc_dataalign = adc_dataalign_right;//数据右对齐
adc_initstructure.adc_nbrofchannel = 8;//用于转换的通道数
adc_init(adc1, &adc_initstructure);
/* adc1 regular channels configuration [规则模式通道配置]*/
adc_regularchannelconfig(adc1, adc_channel_8 , 1, adc_sampletime_239cycles5);
adc_regularchannelconfig(adc1, adc_channel_9 , 2, adc_sampletime_239cycles5);
adc_regularchannelconfig(adc1, adc_channel_10, 3, adc_sampletime_239cycles5);
adc_regularchannelconfig(adc1, adc_channel_11, 4, adc_sampletime_239cycles5);
adc_regularchannelconfig(adc1, adc_channel_12, 5, adc_sampletime_239cycles5);
adc_regularchannelconfig(adc1, adc_channel_13, 6, adc_sampletime_239cycles5);
adc_regularchannelconfig(adc1, adc_channel_14, 7, adc_sampletime_239cycles5);
adc_regularchannelconfig(adc1, adc_channel_15, 8, adc_sampletime_239cycles5);
/* enable adc1 dma [使能adc1 dma]*/
adc_dmacmd(adc1, enable);
/* enable adc1 [使能adc1]*/
adc_cmd(adc1, enable);
/* enable adc1 reset calibaration register */
adc_resetcalibration(adc1);
/* check the end of adc1 reset calibration register */
while(adc_getresetcalibrationstatus(adc1));
/* start adc1 calibaration */
adc_startcalibration(adc1);
/* check the end of adc1 calibration */
while(adc_getcalibrationstatus(adc1));
/* start adc1 software conversion */
adc_softwarestartconvcmd(adc1, enable);
}

细说中国电动自行车出口美国市场准入标准-UL2849认证
Defacto的SoC编译器10.0让SoC构建过程变得如此简单
扫地机器人仍存在巨大的想象空间
浅谈韩国Inter Battery 2021电池展纪要
研究人员打造出一种能够感知疼痛和触感的电子皮肤
STM32单片机如何实现规则多通道转换
诺基亚7.2设计方案曝光:浴霸三摄+独立AI按键
华为新型人体通信设备专利发布:提升通信质量
测量投影仪怎么使用_测量投影仪的使用步骤及注意事项
如何有效地确保物联网设备的安全性?
创维全场景智控系统新品隆重上市
AcrelEMS-IDC综合能效管理系统在某数据中心的应用
6G毫米波太赫兹芯片技术研究
华为打造核心优化算法引擎PhotonMIND持续技术突破的见证
魅族UR全新高端定制耳机发布 售价2699元起
电磁感应现象是什么?电动机和发电机的区别
中国移动实施“千亿”产业拉动和五百亿价值分享计划
传中国移动网建线将发生重大变化
如何实现串联断路器的选择性保护
中国联通:加强四大能力建设