@@ -874,6 +874,12 @@ void sys_ADC1_ENABLE(void)
874874 i = 1 ;
875875 RCC_PeriphCLKInitTypeDef ADC_CLKInit ;
876876
877+ #if SYSTEM_ADC1_useScan
878+ /*先初始化DMA,再初始化ADC*/
879+ ADC_DMA_Cfg ();
880+ //HAL_ADC_Start_DMA(&ADC1_Handler, (uint32_t*)&adValue,12); //开始DMA,指定接收数组,最后一个参数为数据长度
881+ #endif
882+
877883 ADC_CLKInit .PeriphClockSelection = RCC_PERIPHCLK_ADC ; //ADC外设时钟
878884 ADC_CLKInit .AdcClockSelection = RCC_ADCPCLK2_DIV6 ; //分频因子6时钟为72M/6=12MHz
879885 HAL_RCCEx_PeriphCLKConfig (& ADC_CLKInit ); //设置ADC时钟
@@ -885,8 +891,10 @@ void sys_ADC1_ENABLE(void)
885891 ADC1_Handler .Init .ScanConvMode = DISABLE ; //非扫描模式
886892 else ADC1_Handler .Init .ScanConvMode = ENABLE ; //扫描模式
887893
888- ADC1_Handler .Init .ContinuousConvMode = DISABLE ; //连续转换,开启则是,触发一次转换本组所有通道,否则触发一次只转换一次
889-
894+ if (SYSTEM_ADC1_useCircular )
895+ ADC1_Handler .Init .ContinuousConvMode = ENABLE ; //连续转换 开启:本次转换玩规则通道内全部通道后又自动启动下一次转换;不开启:触发一次转换一次;
896+ else ADC1_Handler .Init .ContinuousConvMode = DISABLE ;
897+
890898 if (SYSTEM_ADC1_useScan )
891899 ADC1_Handler .Init .NbrOfConversion = SYSTEM_ADC1_useChanlNum ; //n个转换在规则序列中
892900 else ADC1_Handler .Init .NbrOfConversion = 1 ; //只转换规则序列1
@@ -899,32 +907,27 @@ void sys_ADC1_ENABLE(void)
899907 HAL_ADCEx_Calibration_Start (& ADC1_Handler ); //校准ADC
900908
901909 if (SYSTEM_ADC1_useScan ) //如果启用扫描,则把所有通道都加入到规则组里
902- {
903- if (SYSTEM_ADC1_useChanl & B0in16 ) ADC_RegularChannelConfig (& ADC1_Handler , ADC_CHANNEL_0 , (uint32_t )(i ++ ), ADC_SAMPLETIME_55CYCLES_5 );
904- if (SYSTEM_ADC1_useChanl & B1in16 ) ADC_RegularChannelConfig (& ADC1_Handler , ADC_CHANNEL_1 , (uint32_t )(i ++ ), ADC_SAMPLETIME_55CYCLES_5 );
905- if (SYSTEM_ADC1_useChanl & B2in16 ) ADC_RegularChannelConfig (& ADC1_Handler , ADC_CHANNEL_2 , (uint32_t )(i ++ ), ADC_SAMPLETIME_55CYCLES_5 );
906- if (SYSTEM_ADC1_useChanl & B3in16 ) ADC_RegularChannelConfig (& ADC1_Handler , ADC_CHANNEL_3 , (uint32_t )(i ++ ), ADC_SAMPLETIME_55CYCLES_5 );
907- if (SYSTEM_ADC1_useChanl & B4in16 ) ADC_RegularChannelConfig (& ADC1_Handler , ADC_CHANNEL_4 , (uint32_t )(i ++ ), ADC_SAMPLETIME_55CYCLES_5 );
908- if (SYSTEM_ADC1_useChanl & B5in16 ) ADC_RegularChannelConfig (& ADC1_Handler , ADC_CHANNEL_5 , (uint32_t )(i ++ ), ADC_SAMPLETIME_55CYCLES_5 );
909- if (SYSTEM_ADC1_useChanl & B6in16 ) ADC_RegularChannelConfig (& ADC1_Handler , ADC_CHANNEL_6 , (uint32_t )(i ++ ), ADC_SAMPLETIME_55CYCLES_5 );
910- if (SYSTEM_ADC1_useChanl & B7in16 ) ADC_RegularChannelConfig (& ADC1_Handler , ADC_CHANNEL_7 , (uint32_t )(i ++ ), ADC_SAMPLETIME_55CYCLES_5 );
911- if (SYSTEM_ADC1_useChanl & B8in16 ) ADC_RegularChannelConfig (& ADC1_Handler , ADC_CHANNEL_8 , (uint32_t )(i ++ ), ADC_SAMPLETIME_55CYCLES_5 );
912- if (SYSTEM_ADC1_useChanl & B9in16 ) ADC_RegularChannelConfig (& ADC1_Handler , ADC_CHANNEL_9 , (uint32_t )(i ++ ), ADC_SAMPLETIME_55CYCLES_5 );
913- if (SYSTEM_ADC1_useChanl & B10in16 ) ADC_RegularChannelConfig (& ADC1_Handler , ADC_CHANNEL_10 , (uint32_t )(i ++ ), ADC_SAMPLETIME_55CYCLES_5 );
914- if (SYSTEM_ADC1_useChanl & B11in16 ) ADC_RegularChannelConfig (& ADC1_Handler , ADC_CHANNEL_11 , (uint32_t )(i ++ ), ADC_SAMPLETIME_55CYCLES_5 );
915- if (SYSTEM_ADC1_useChanl & B12in16 ) ADC_RegularChannelConfig (& ADC1_Handler , ADC_CHANNEL_12 , (uint32_t )(i ++ ), ADC_SAMPLETIME_55CYCLES_5 );
916- if (SYSTEM_ADC1_useChanl & B13in16 ) ADC_RegularChannelConfig (& ADC1_Handler , ADC_CHANNEL_13 , (uint32_t )(i ++ ), ADC_SAMPLETIME_55CYCLES_5 );
917- if (SYSTEM_ADC1_useChanl & B14in16 ) ADC_RegularChannelConfig (& ADC1_Handler , ADC_CHANNEL_14 , (uint32_t )(i ++ ), ADC_SAMPLETIME_55CYCLES_5 );
918- if (SYSTEM_ADC1_useChanl & B15in16 ) ADC_RegularChannelConfig (& ADC1_Handler , ADC_CHANNEL_15 , (uint32_t )(i ++ ), ADC_SAMPLETIME_55CYCLES_5 );
910+ {
911+ if (( SYSTEM_ADC1_useChanl ) & B1in16 ) ADC_RegularChannelConfig (& ADC1_Handler , ADC_CHANNEL_0 , (uint32_t )(i ++ ), ADC_SAMPLETIME_55CYCLES_5 );
912+ if (( SYSTEM_ADC1_useChanl ) & B2in16 ) ADC_RegularChannelConfig (& ADC1_Handler , ADC_CHANNEL_1 , (uint32_t )(i ++ ), ADC_SAMPLETIME_55CYCLES_5 );
913+ if (( SYSTEM_ADC1_useChanl ) & B3in16 ) ADC_RegularChannelConfig (& ADC1_Handler , ADC_CHANNEL_2 , (uint32_t )(i ++ ), ADC_SAMPLETIME_55CYCLES_5 );
914+ if (( SYSTEM_ADC1_useChanl ) & B4in16 ) ADC_RegularChannelConfig (& ADC1_Handler , ADC_CHANNEL_3 , (uint32_t )(i ++ ), ADC_SAMPLETIME_55CYCLES_5 );
915+ if (( SYSTEM_ADC1_useChanl ) & B5in16 ) ADC_RegularChannelConfig (& ADC1_Handler , ADC_CHANNEL_4 , (uint32_t )(i ++ ), ADC_SAMPLETIME_55CYCLES_5 );
916+ if (( SYSTEM_ADC1_useChanl ) & B6in16 ) ADC_RegularChannelConfig (& ADC1_Handler , ADC_CHANNEL_5 , (uint32_t )(i ++ ), ADC_SAMPLETIME_55CYCLES_5 );
917+ if (( SYSTEM_ADC1_useChanl ) & B7in16 ) ADC_RegularChannelConfig (& ADC1_Handler , ADC_CHANNEL_6 , (uint32_t )(i ++ ), ADC_SAMPLETIME_55CYCLES_5 );
918+ if (( SYSTEM_ADC1_useChanl ) & B8in16 ) ADC_RegularChannelConfig (& ADC1_Handler , ADC_CHANNEL_7 , (uint32_t )(i ++ ), ADC_SAMPLETIME_55CYCLES_5 );
919+ if (( SYSTEM_ADC1_useChanl ) & B9in16 ) ADC_RegularChannelConfig (& ADC1_Handler , ADC_CHANNEL_8 , (uint32_t )(i ++ ), ADC_SAMPLETIME_55CYCLES_5 );
920+ if (( SYSTEM_ADC1_useChanl ) & B10in16 ) ADC_RegularChannelConfig (& ADC1_Handler , ADC_CHANNEL_9 , (uint32_t )(i ++ ), ADC_SAMPLETIME_55CYCLES_5 );
921+ if (( SYSTEM_ADC1_useChanl ) & B11in16 ) ADC_RegularChannelConfig (& ADC1_Handler , ADC_CHANNEL_10 , (uint32_t )(i ++ ), ADC_SAMPLETIME_55CYCLES_5 );
922+ if (( SYSTEM_ADC1_useChanl ) & B12in16 ) ADC_RegularChannelConfig (& ADC1_Handler , ADC_CHANNEL_11 , (uint32_t )(i ++ ), ADC_SAMPLETIME_55CYCLES_5 );
923+ if (( SYSTEM_ADC1_useChanl ) & B13in16 ) ADC_RegularChannelConfig (& ADC1_Handler , ADC_CHANNEL_12 , (uint32_t )(i ++ ), ADC_SAMPLETIME_55CYCLES_5 );
924+ if (( SYSTEM_ADC1_useChanl ) & B14in16 ) ADC_RegularChannelConfig (& ADC1_Handler , ADC_CHANNEL_13 , (uint32_t )(i ++ ), ADC_SAMPLETIME_55CYCLES_5 );
925+ if (( SYSTEM_ADC1_useChanl ) & B15in16 ) ADC_RegularChannelConfig (& ADC1_Handler , ADC_CHANNEL_14 , (uint32_t )(i ++ ), ADC_SAMPLETIME_55CYCLES_5 );
926+ // if(( SYSTEM_ADC1_useChanl) & 0x10 ) ADC_RegularChannelConfig(&ADC1_Handler, ADC_CHANNEL_15, (uint32_t)(i++), ADC_SAMPLETIME_55CYCLES_5);
919927
920- if (SYSTEM_ADC1_useChanl & InrTemp ) ADC_RegularChannelConfig (& ADC1_Handler , ADC_CHANNEL_TEMPSENSOR , (uint32_t )(i ++ ), ADC_SAMPLETIME_239CYCLES_5 );
928+ if (( SYSTEM_ADC1_useChanl ) & B16in16 ) ADC_RegularChannelConfig (& ADC1_Handler , ADC_CHANNEL_TEMPSENSOR , (uint32_t )(i ++ ), ADC_SAMPLETIME_239CYCLES_5 );
921929 }
922930
923- if (SYSTEM_ADC1_useDMA1 )
924- {
925- ADC_DMA_Cfg ();
926- HAL_ADC_Start_DMA (& ADC1_Handler , (uint32_t * )& adValue ,12 ); //开始DMA,最后一个参数为数据长度
927- }
928931}
929932
930933void ADC_RegularChannelConfig (ADC_HandleTypeDef * AdcHandle , uint32_t Channel , uint32_t Rank , uint32_t SamplingTime )
@@ -953,26 +956,42 @@ void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc)
953956
954957 GPIO_Initure .Mode = GPIO_MODE_ANALOG ; //模拟
955958 GPIO_Initure .Pull = GPIO_NOPULL ; //不带上下拉
956-
957- if (SYSTEM_ADC1_useChanl & B0in16 ) {GPIO_Initure .Pin = GPIO_PIN_0 ; HAL_GPIO_Init (GPIOA ,& GPIO_Initure );}
958- if (SYSTEM_ADC1_useChanl & B1in16 ) {GPIO_Initure .Pin = GPIO_PIN_1 ; HAL_GPIO_Init (GPIOA ,& GPIO_Initure );}
959- if (SYSTEM_ADC1_useChanl & B2in16 ) {GPIO_Initure .Pin = GPIO_PIN_2 ; HAL_GPIO_Init (GPIOA ,& GPIO_Initure );}
960- if (SYSTEM_ADC1_useChanl & B3in16 ) {GPIO_Initure .Pin = GPIO_PIN_3 ; HAL_GPIO_Init (GPIOA ,& GPIO_Initure );}
961- if (SYSTEM_ADC1_useChanl & B4in16 ) {GPIO_Initure .Pin = GPIO_PIN_4 ; HAL_GPIO_Init (GPIOA ,& GPIO_Initure );}
962- if (SYSTEM_ADC1_useChanl & B5in16 ) {GPIO_Initure .Pin = GPIO_PIN_5 ; HAL_GPIO_Init (GPIOA ,& GPIO_Initure );}
963- if (SYSTEM_ADC1_useChanl & B6in16 ) {GPIO_Initure .Pin = GPIO_PIN_6 ; HAL_GPIO_Init (GPIOA ,& GPIO_Initure );}
964- if (SYSTEM_ADC1_useChanl & B7in16 ) {GPIO_Initure .Pin = GPIO_PIN_7 ; HAL_GPIO_Init (GPIOA ,& GPIO_Initure );}
965- if (SYSTEM_ADC1_useChanl & B8in16 ) {GPIO_Initure .Pin = GPIO_PIN_0 ; HAL_GPIO_Init (GPIOB ,& GPIO_Initure );}
966- if (SYSTEM_ADC1_useChanl & B9in16 ) {GPIO_Initure .Pin = GPIO_PIN_1 ; HAL_GPIO_Init (GPIOB ,& GPIO_Initure );}
967- if (SYSTEM_ADC1_useChanl & B10in16 ) {GPIO_Initure .Pin = GPIO_PIN_0 ; HAL_GPIO_Init (GPIOC ,& GPIO_Initure );}
968- if (SYSTEM_ADC1_useChanl & B11in16 ) {GPIO_Initure .Pin = GPIO_PIN_1 ; HAL_GPIO_Init (GPIOC ,& GPIO_Initure );}
969- if (SYSTEM_ADC1_useChanl & B12in16 ) {GPIO_Initure .Pin = GPIO_PIN_2 ; HAL_GPIO_Init (GPIOC ,& GPIO_Initure );}
970- if (SYSTEM_ADC1_useChanl & B13in16 ) {GPIO_Initure .Pin = GPIO_PIN_3 ; HAL_GPIO_Init (GPIOC ,& GPIO_Initure );}
971- if (SYSTEM_ADC1_useChanl & B14in16 ) {GPIO_Initure .Pin = GPIO_PIN_4 ; HAL_GPIO_Init (GPIOC ,& GPIO_Initure );}
972- if (SYSTEM_ADC1_useChanl & B15in16 ) {GPIO_Initure .Pin = GPIO_PIN_5 ; HAL_GPIO_Init (GPIOC ,& GPIO_Initure );}
959+
960+ if ((SYSTEM_ADC1_useChanl ) & B1in16 ) {
961+ GPIO_Initure .Pin = GPIO_PIN_0 ;
962+ HAL_GPIO_Init (GPIOA ,& GPIO_Initure );
963+ }
964+ if ((SYSTEM_ADC1_useChanl ) & B2in16 ) {
965+ GPIO_Initure .Pin = GPIO_PIN_1 ;
966+ HAL_GPIO_Init (GPIOA ,& GPIO_Initure );
967+ }
968+ if ((SYSTEM_ADC1_useChanl ) & B3in16 ) {
969+ GPIO_Initure .Pin = GPIO_PIN_2 ;
970+ HAL_GPIO_Init (GPIOA ,& GPIO_Initure );
971+ }
972+ if ((SYSTEM_ADC1_useChanl ) & B4in16 ) {
973+ GPIO_Initure .Pin = GPIO_PIN_3 ;
974+ HAL_GPIO_Init (GPIOA ,& GPIO_Initure );
975+ }
976+ if ((SYSTEM_ADC1_useChanl ) & B5in16 ) {GPIO_Initure .Pin = GPIO_PIN_4 ; HAL_GPIO_Init (GPIOA ,& GPIO_Initure );}
977+ if ((SYSTEM_ADC1_useChanl ) & B6in16 ) {GPIO_Initure .Pin = GPIO_PIN_5 ; HAL_GPIO_Init (GPIOA ,& GPIO_Initure );}
978+ if ((SYSTEM_ADC1_useChanl ) & B7in16 ) {GPIO_Initure .Pin = GPIO_PIN_6 ; HAL_GPIO_Init (GPIOA ,& GPIO_Initure );}
979+ if ((SYSTEM_ADC1_useChanl ) & B8in16 ) {GPIO_Initure .Pin = GPIO_PIN_7 ; HAL_GPIO_Init (GPIOA ,& GPIO_Initure );}
980+ if ((SYSTEM_ADC1_useChanl ) & B9in16 ) {GPIO_Initure .Pin = GPIO_PIN_0 ; HAL_GPIO_Init (GPIOB ,& GPIO_Initure );}
981+ if ((SYSTEM_ADC1_useChanl ) & B10in16 ) {GPIO_Initure .Pin = GPIO_PIN_1 ; HAL_GPIO_Init (GPIOB ,& GPIO_Initure );}
982+ if ((SYSTEM_ADC1_useChanl ) & B11in16 ) {GPIO_Initure .Pin = GPIO_PIN_0 ; HAL_GPIO_Init (GPIOC ,& GPIO_Initure );}
983+ if ((SYSTEM_ADC1_useChanl ) & B12in16 ) {GPIO_Initure .Pin = GPIO_PIN_1 ; HAL_GPIO_Init (GPIOC ,& GPIO_Initure );}
984+ if ((SYSTEM_ADC1_useChanl ) & B13in16 ) {GPIO_Initure .Pin = GPIO_PIN_2 ; HAL_GPIO_Init (GPIOC ,& GPIO_Initure );}
985+ if ((SYSTEM_ADC1_useChanl ) & B14in16 ) {GPIO_Initure .Pin = GPIO_PIN_3 ; HAL_GPIO_Init (GPIOC ,& GPIO_Initure );}
986+ if ((SYSTEM_ADC1_useChanl ) & B15in16 ) {GPIO_Initure .Pin = GPIO_PIN_4 ; HAL_GPIO_Init (GPIOC ,& GPIO_Initure );}
987+ //if((SYSTEM_ADC1_useChanl) & B166in16) {GPIO_Initure.Pin=GPIO_PIN_5; HAL_GPIO_Init(GPIOC,&GPIO_Initure);} 留作内部温度通道,第16个ADC1通道不可用
973988 }
974989}
975990
991+
992+ u16 adValue [SYSTEM_ADC1_useChanlNum ]; /*DMA1把ADC转换结果传送的目标位置*/
993+ u8 adValueDone = 0 ; /*DMA把ADC1的值传送到adValue完成标志*/
994+
976995//获得ADC值
977996//ch: 通道值 0~16,取值范围为:ADC_CHANNEL_0~ADC_CHANNEL_16
978997//返回值:转换结果
@@ -985,41 +1004,27 @@ u16 Get_Adc(u32 ch)
9851004 ADC1_ChanConf .Rank = 1 ; //第1个序列,序列1
9861005 ADC1_ChanConf .SamplingTime = ADC_SAMPLETIME_239CYCLES_5 ; //采样时间
9871006 HAL_ADC_ConfigChannel (& ADC1_Handler ,& ADC1_ChanConf ); //通道配置
1007+
1008+ HAL_ADC_Start (& ADC1_Handler ); //开启ADC
1009+ HAL_ADC_PollForConversion (& ADC1_Handler ,2 ); //轮询转换
1010+ return (u16 )HAL_ADC_GetValue (& ADC1_Handler ); //返回最近一次ADC1规则组的转换结果
1011+ }else
1012+ {
1013+ return 1357 ;
9881014 }
989-
990- HAL_ADC_Start (& ADC1_Handler ); //开启ADC
991- HAL_ADC_PollForConversion (& ADC1_Handler ,2 ); //轮询转换
992- return (u16 )HAL_ADC_GetValue (& ADC1_Handler ); //返回最近一次ADC1规则组的转换结果
9931015}
9941016
995- void Get_Adc_Average (u32 ch ,u8 times , u32 * result )
1017+ u32 Get_Adc_Average (u32 ch ,u8 times )
9961018{
997- u32 temp_val [ SYSTEM_ADC1_useChanlNum ] = { 0 } ;
998- u8 t , i ;
1019+ u32 temp_val = 0 ;
1020+ u8 t ;
9991021
1000- if ( SYSTEM_ADC1_useScan )
1022+ for ( t = 0 ; t < times ; t ++ )
10011023 {
1002- for (t = 0 ;t < times ;t ++ )
1003- {
1004- for (i = 0 ;i < SYSTEM_ADC1_useChanlNum ; i ++ )
1005- {
1006- temp_val [i ] += Get_Adc (ch );
1007- delay_ms (1 );
1008- }
1009- }
1010-
1011- for (i = 0 ;i < SYSTEM_ADC1_useChanlNum ; i ++ )
1012- {
1013- result [i ] = temp_val [i ]/times ;
1014- }
1015- }else {
1016- for (t = 0 ;t < times ;t ++ )
1017- {
1018- temp_val [0 ] += Get_Adc (ch );
1019- delay_ms (1 );
1020- }
1021- result [0 ] = temp_val [0 ]/times ;
1024+ temp_val += Get_Adc (ch );
1025+ delay_ms (1 );
10221026 }
1027+ return (temp_val /times );
10231028}
10241029
10251030/*把AD采集温度通道的原始值,转化为温度值*/
@@ -1031,7 +1036,7 @@ float Get_Temprate(u32 adcx)
10311036 return temperate ;
10321037}
10331038
1034- #if SYSTEM_ADC1_useDMA1
1039+ #if SYSTEM_ADC1_useScan
10351040DMA_HandleTypeDef ADC1rxDMA_Handler ; //DMA句柄
10361041
10371042//DMA1的各通道配置
@@ -1047,8 +1052,12 @@ void ADC_DMA_Cfg(void)
10471052 ADC1rxDMA_Handler .Init .MemInc = DMA_MINC_ENABLE ; //存储器增量模式
10481053 ADC1rxDMA_Handler .Init .PeriphDataAlignment = DMA_PDATAALIGN_HALFWORD ; //外设数据长度:16位
10491054 ADC1rxDMA_Handler .Init .MemDataAlignment = DMA_MDATAALIGN_HALFWORD ; //存储器数据长度:16位
1050- ADC1rxDMA_Handler .Init .Mode = DMA_CIRCULAR ; //不确定是正常博士还是外设循环模式
1051- ADC1rxDMA_Handler .Init .Priority = DMA_PRIORITY_HIGH ; //优先级
1055+
1056+ if (SYSTEM_ADC1_useCircular )
1057+ ADC1rxDMA_Handler .Init .Mode = DMA_CIRCULAR ; //如果ADC选择连续模式,这里是循环,如果不开启连续模式,这里是正常模式
1058+ else ADC1rxDMA_Handler .Init .Mode = DMA_NORMAL ;
1059+
1060+ ADC1rxDMA_Handler .Init .Priority = DMA_PRIORITY_MEDIUM ; //优先级
10521061
10531062 ADC1rxDMA_Handler .XferCpltCallback = HAL_DMA_IRQHandler ;
10541063
@@ -1058,17 +1067,21 @@ void ADC_DMA_Cfg(void)
10581067 /* 数据源 数据源句柄中的DMA变量 使用的DMA句柄*/
10591068 __HAL_LINKDMA (& ADC1_Handler ,DMA_Handle ,ADC1rxDMA_Handler ); //将DMA与ADC联系起来(发送DMA)
10601069
1061- HAL_NVIC_SetPriority (DMA1_Channel1_IRQn , 3 , 0 ); //DMA中断优先级
1070+ HAL_NVIC_SetPriority (DMA1_Channel1_IRQn , 3 , 0 ); //DMA中断优先级 必须开,勿动!
10621071 HAL_NVIC_EnableIRQ (DMA1_Channel1_IRQn ); //使能DMA中断
10631072
10641073}
10651074
1066- // DMA通道1中断服务函数 (完成传送时的中断)
1075+ //DMA通道1中断服务函数,完成传送一次时的中断,不用,因为要等AD全部规则通道转换完后再产生一次中断
10671076void DMA1_Channel1_IRQHandler (void )
10681077{
1069- HAL_DMA_IRQHandler (& ADC1rxDMA_Handler );
1070- //printf("%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d\r\n",advalue[0],advalue[1],advalue[2],advalue[3],advalue[4],advalue[5],advalue[6],advalue[7],advalue[8],advalue[9],advalue[10],advalue[11]);
1071- adValueDone = 1 ;
1078+ HAL_DMA_IRQHandler (& ADC1rxDMA_Handler ); /*清除中断标志,并判断是否完成全部转换,勿动!*/
1079+ }
1080+
1081+ //HAL_DMA_IRQHandler的回调函数,ADC转换完成所有规则组通道后的中断函数
1082+ void HAL_ADC_ConvCpltCallback (ADC_HandleTypeDef * hadc )
1083+ {
1084+ adValueDone = 1 ; /*标志本次规则组通道全部转换完成,勿动!*/
10721085}
10731086
10741087#endif
@@ -1478,7 +1491,7 @@ u16 STMFLASH_ReadHalfWord(u32 faddr)
14781491
14791492
14801493/*__________________________DAC________________________________________*/
1481- #if SYSTEM_DAC_OUT1_ENABLE || SYSTEM_DAC_OUT2_ENABLE
1494+ #if (( SYSTEM_DAC_OUT1_ENABLE ) || ( SYSTEM_DAC_OUT2_ENABLE )) && (( STM32F103xG ) || ( STM32F103xE ))
14821495
14831496DAC_HandleTypeDef DAC1_Handler ;//DAC句柄
14841497
@@ -1567,7 +1580,7 @@ void DAC_Set_Ch2_Vol(float vol)
15671580#endif
15681581
15691582/*____________________SDIO SD_____________________________________________*/
1570- #if SYSTEM_SDIO_SD_ENABLE
1583+ #if ( SYSTEM_SDIO_SD_ENABLE ) && (( STM32F103xG ) || ( STM32F103xE ))
15711584
15721585SD_HandleTypeDef SDCARD_Handler ; //SD卡句柄
15731586HAL_SD_CardInfoTypeDef SDCardInfo ; //SD卡信息
0 commit comments