电机驱动软件学习笔记——ADC采样电流、温度、按键值
/***********************************************************************************************************
* 函数名称: ADCSample()
* 输入参数: adcval
* 返回值 : 无
* 功 能: 对各个ADC通道轮流采样
************************************************************************************************************/
void ADCSample(ADC* adcval)
{static ADC2_Channel_TypeDef ADCChannel = ADC2_CHANNEL_2; //ADC2_CHANNEL_2 = 0x02//static u8 time = 0; //按键通道检测次数//static u16 KeyADC = 0;u16 ADCTemp;ADCTemp = GetADCValue(ADCChannel);switch(ADCChannel){case ADC2_CHANNEL_6: //电机1过流检测通道 PIN16if((M1Cmd==CmdUp)||(M1Cmd==CmdDown)||(M1Dir!=STOP)){if(M1ADCCnt < 40) //M1ADCCnt = 0(初始化){ADCBuffer1[M1ADCCnt] = ADCTemp;M1ADCCnt++;}}else{M1CurTemp1 = 0;M1CurTemp2 = 0;M1CurTemp3 = 0;M1ADCCnt = 0;}adcval->M1Current = adcval->M1Current * 0.9 + ADCTemp * 0.1; //低通滤波//adcval->M1Current = ADCTemp; //低通滤波break;case ADC2_CHANNEL_5: //电机2过流检测通道 PIN17if((M2Cmd==CmdUp)||(M2Cmd==CmdDown)||(M2Dir!=STOP)){if(M2ADCCnt < 40){ADCBuffer2[M2ADCCnt] = ADCTemp;M2ADCCnt++;}}else{M2CurTemp1 = 0;M2CurTemp2 = 0;M2CurTemp3 = 0;M2ADCCnt = 0;}adcval->M2Current = adcval->M2Current * 0.9 + ADCTemp * 0.1; //低通滤波//adcval->M2Current = ADCTemp; //低通滤波break;case ADC2_CHANNEL_7: //系统过热检测通道 PIN15adcval->Temperature = adcval->Temperature * 0.9 + ADCTemp * 0.1;//adcval->Temperature = ADCTemp;break;case ADC2_CHANNEL_3: //按键检测通道 PIN19 (该硬件无此功能)adcval->KeyADCValue = ADCTemp; //无滤波break; }if(ADCChannel < ADC2_CHANNEL_7)ADCChannel++;elseADCChannel = ADC2_CHANNEL_3;if(ADCChannel == ADC2_CHANNEL_4)ADCChannel = ADC2_CHANNEL_5;//if(ADCChannel == ADC2_CHANNEL_8)// ADCChannel = ADC2_CHANNEL_9;
}
/***********************************************************************************************************
* 函数名称: GetADCValue()
* 输入参数: ADC_Channel,对应的ADC通道
* 返回值 : 该通道的ADC采样值
* 功 能: 获取指定通道的ADC采样值
************************************************************************************************************/
u16 GetADCValue(ADC2_Channel_TypeDef ADC_Channel)
{ADC2_Init(ADC2_CONVERSIONMODE_CONTINUOUS,ADC_Channel, ADC2_PRESSEL_FCPU_D4,\ADC2_EXTTRIG_TIM, DISABLE, ADC2_ALIGN_RIGHT, ADC2_SCHMITTTRIG_ALL, DISABLE); //ADC时钟频率6M,连续采样模式ADC2_ConversionConfig(ADC2_CONVERSIONMODE_CONTINUOUS, ADC_Channel,ADC2_ALIGN_RIGHT);ADC2_ITConfig(DISABLE); //禁止中断ADC2_Cmd(ENABLE); ADC2->CR1 |= 0x01;; //启动ADC转换while(ADC2_GetITStatus()==SET); //等待ADC转换结束ADC2->CSR &= 0x7F; ; //清除转换完成标志位return ADC2_GetConversionValue(); //返回ADC结果
}
电机驱动软件学习笔记——ADC采样电流、温度、按键值相关推荐
- 电机学习笔记 ADC dma 电流电压采集
分析 在电机驱动电路中串入一个 0.02Ω.2W 的采样电阻,将电流信号 转换成电压信号,再经过隔离运放放大 8 倍后差分输出,使用普通运放将差分输出转换成单端输 出给 STM32 的 ADC 采样通 ...
- 嵌入式学习笔记——ADC模数转换器
ADC模数转换器 前言 ADC介绍 ADC概述 ADC的数量 ADC的特性 ADC框图 芯片外部框图 芯片内部框图 转换部分框图 状态输出部分 条件触发框图 寄存器介绍 编程思路 模式选择 规则通道的 ...
- 新唐芯片学习笔记——ADC
新唐芯片学习笔记--ADC 概述 NuMicro®NUC029xAN 包含一个12位逐次逼近型模数转换器(SAR A/D转换器) ,包含8个输入通道:NuMicro®NUC029FAE 包含一个10位 ...
- 树莓派学习笔记——Python SQLite插入温度记录
0 前言 本文使用python向SQLite数据库中插入树莓派温度数据,SQLite数据库中包含一张只包含三个字段的记录表--参数名称,时间和温度值.本文重点解释Python操作SQlite的具体方法 ...
- STM8学习笔记---ADC平均值采样和有效值采样算法分析
目录 平均值采样: 采样数据分析: 采样时间分析: 有效值采样: 采样数据分析: 采样时间分析: 结论: 在开关电源中,电流采样是非常重要的.常用的电流采样计算方法有平均值采样法和有效值采样法.现将这 ...
- STM8学习笔记---ADC多通道采样
STM8S003单片机ADC采样通道总共有5个,从AIN2---AIN6,多通道采样时需要将ADC转换设置为单次转换模式,每次切换采样通道后,需要重新初始化 ADC,采样结果在中断中读取. IO口初始 ...
- stm32学习笔记---ADC电压采集
1. ①电压输入范围 ADC 输入范围为:VREF- ≤ VIN ≤ VREF+.由 VREF-.VREF+ .VDDA .VSSA.这四个外部 引脚决定. 我们在设计原理图的时候一般把 VSSA ...
- 树莓派学习笔记——获取树莓派CPU温度
0 前言 本文通过文件操作读取树莓派CPU温度,在linux系统中任何设备的操作都被抽象成为文件读写,通过读取/sys/class/thermal/thermal_zone0/temp文件中的内容便获 ...
- Mr.J-- jQuery学习笔记(七)--CSS类操作文本值操作
不了解属性以及属性操作的同学可以看我之前的博客:Mr.J-- jQuery学习笔记(五)--属性及属性节点 下面demo 中btn用到的角标,之前写验证码动态强度测试时也用过同样方法:Mr.J--密码 ...
- matlab连通区边界_Matlab图像处理学习笔记(一):二值化、开操作、连通区域提取、重心、ROI...
本博客主要记录我学习运用matlab进行一些基本的图像处理的一些笔记,如果有不当的地方,欢迎批评指正,一起学习,一起进步. 本篇是第一篇,只涉及到一些基本的操作,涉及到的知识点如下: 1.二值化 2. ...
最新文章
- 排序算法之——优先队列经典实现(基于二叉堆)
- php 登录 linux服务器,如何实现linux系统远程登录到linux服务器
- 云炬60s看世界20211125
- iOS开发HTTPS实现之信任SSL证书和自签名证书
- oracle vertica性能对比,测试Vertica性能
- 类型转换与类型断言之间的区别
- 查询工资最低的3名员工的职工工号、姓名和收入_@打工人 | 关于工资条,这6个常识必须掌握,事关你的权益...
- VIM插件——vimplus安装(centos 7)
- cocos2d-x-3.x 场景(3)场景切换特效
- 转载一篇过来人谈的大学期间关于课外学习的意见lt;出自左飞老师笔记gt;
- 使用计算机管理文件教后反思,《管理计算机中的文件》教学设计
- python 批量处理图片
- vue项目的导出功能
- 博林格林大学计算机排名,美国传媒研究生排名简述
- 超详细:将iPhone中音乐导出到电脑里的简单方法(完美支持最新iOS15.2系统)
- java保存map_Java之map
- Python实现梯度下降
- H3C交换机常用命令汇总
- ARM CPU性能优化:FP32 、FP16 和BF16区别
- 数商云:以数字化全面促进传统产业升级,纺织行业最大限度实现精益管理
热门文章
- 浅谈unicode字符集及编码方式
- matlab模板图像匹配,基于Matlab 图像匹配――模板匹配
- VGS--网络三维互动软件技术
- spring的核心模块
- Qt 打印文档(PDF)
- linux终端 快捷键
- java串口rxtx_Java串口操作RXTX
- android转移数据到苹果手机号码,苹果电话号码怎么转到新手机(简单教你两招轻松搞定)...
- 如何把多个pdf文件合并成一个?
- IDEA引入JDK/jar包无效、java 文件灰色右下角橙色java图标显示等问题解决办法