标题:
基于STM32的ADC双通道电流+电压采样源程序
[打印本页]
作者:
lijun19990429
时间:
2019-7-15 17:18
标题:
基于STM32的ADC双通道电流+电压采样源程序
我在做双向DC-DC实验的时候 需要用到STM32的ADC采样然后用PWM输出
而我采样是采两个 一个是电压 一个是电流 所以需要用到双通道
这份代码是我不用DWM实现的ADC双通道采样
单片机源程序如下:
#include "led.h"
#include "delay.h"
#include "key.h"
#include "sys.h"
#include "usart.h"
#include "timer.h"
#include "lcd.h"
#include "adc.h"
#define adcDiv100 adcx/100
int main(void)
{
u16 adcx=0;
u16 adcy=0;
u16 led0pwmval=600;
delay_init(); //延时函数初始化
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
uart_init(115200); //串口初始化为115200
LED_Init(); //LED端口初始化
TIM3_PWM_Init(899,0); //不分频。PWM频率=72000000/900=80Khz
Adc_Init();
LCD_Init();
while(1)
{
adcx=Get_Adc_Average(ADC_Channel_1,50);//通道1采样50次
LCD_ShowxNum(120,120,adcx,4,16,0);//120 120为起始点坐标 4为长度:显示的位数 16为字体大小 模式:[7]、[6:1]、[0]
delay_ms(10);
if(adcx>1740)//1.4
{
led0pwmval+=10;
if(led0pwmval>750)
led0pwmval=750;
}
else if(adcx<980)//0.78
{
led0pwmval-=10;
if(led0pwmval<300)
led0pwmval=300;
}
TIM_SetCompare2(TIM3,led0pwmval);
//LCD_ShowxNum(120,140,(u32)TIM3->CCR1,4,16,0);
adcy=Get_Adc_Average2(ADC_Channel_2,50);
LCD_ShowxNum(156,230,adcy,4,16,0);//显示ADC的值
delay_ms(10);
if(adcy>1110)//0.9
{ led0pwmval=899;
TIM_SetCompare2(TIM3,led0pwmval);
break;
}
}
}
复制代码
所有资料51hei提供下载:
双向DC-DC实验最终版.7z
(225.99 KB, 下载次数: 151)
2019-7-15 17:52 上传
点击文件名下载附件
ADC双通道采样
下载积分: 黑币 -5
作者:
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