标题: 基于STM32的ADC双通道电流+电压采样源程序 [打印本页]

作者: lijun19990429    时间: 2019-7-15 17:18
标题: 基于STM32的ADC双通道电流+电压采样源程序
我在做双向DC-DC实验的时候 需要用到STM32的ADC采样然后用PWM输出
而我采样是采两个 一个是电压 一个是电流 所以需要用到双通道
这份代码是我不用DWM实现的ADC双通道采样

单片机源程序如下:
  1. #include "led.h"
  2. #include "delay.h"
  3. #include "key.h"
  4. #include "sys.h"
  5. #include "usart.h"
  6. #include "timer.h"
  7. #include "lcd.h"
  8. #include "adc.h"
  9. #define  adcDiv100 adcx/100

  10. int main(void)
  11. {               
  12.         u16 adcx=0;
  13.         u16 adcy=0;
  14.        
  15.         u16 led0pwmval=600;
  16.         delay_init();                     //延时函数初始化          
  17.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);          //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
  18.         uart_init(115200);         //串口初始化为115200
  19.         LED_Init();                             //LED端口初始化
  20.         TIM3_PWM_Init(899,0);         //不分频。PWM频率=72000000/900=80Khz
  21.         Adc_Init();
  22.         LCD_Init();
  23.          
  24.            while(1)
  25.         {
  26.                 adcx=Get_Adc_Average(ADC_Channel_1,50);//通道1采样50次
  27.                 LCD_ShowxNum(120,120,adcx,4,16,0);//120 120为起始点坐标 4为长度:显示的位数 16为字体大小 模式:[7]、[6:1]、[0]
  28.                 delay_ms(10);         
  29.     if(adcx>1740)//1.4
  30.                 {
  31.                         led0pwmval+=10;
  32.                         if(led0pwmval>750)
  33.                                 led0pwmval=750;
  34.                 }
  35.                 else if(adcx<980)//0.78
  36.                 {
  37.                         led0pwmval-=10;
  38.                         if(led0pwmval<300)
  39.                                 led0pwmval=300;
  40.                 }                                                                         
  41.                 TIM_SetCompare2(TIM3,led0pwmval);               
  42.           //LCD_ShowxNum(120,140,(u32)TIM3->CCR1,4,16,0);  

  43.     adcy=Get_Adc_Average2(ADC_Channel_2,50);
  44.     LCD_ShowxNum(156,230,adcy,4,16,0);//显示ADC的值
  45.                 delay_ms(10);
  46.                
  47.     if(adcy>1110)//0.9
  48.                 {        led0pwmval=899;  
  49.                                 TIM_SetCompare2(TIM3,led0pwmval);               
  50.                   break;
  51.                 }
  52.         }         
  53. }
复制代码

所有资料51hei提供下载:
双向DC-DC实验最终版.7z (225.99 KB, 下载次数: 151)




作者: LQ^2    时间: 2019-11-27 17:24
我想下载但是积分不够哈哈哈
作者: LQ^2    时间: 2019-11-28 10:04
拿正点原子的例程糊弄人??
作者: 卢OK    时间: 2023-4-26 00:56
可测交流电压吗
作者: liufeng180840    时间: 2023-6-20 15:00
抄正点原子的资料发到这里赚分




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1