STM32F7xx —— ADC

                             STM32F7xx —— ADC

 

基础知识参考:ADC   

 

/*****************************************************************************
*          ADC1     ADC2     ADC3
* 通道0    PA0      PA0      PA0
* 通道1    PA1      PA1      PA1
* 通道2    PA2      PA2      PA2
* 通道3    PA3      PA3      PA3
* 通道4    PA4      PA4      PF6
* 通道5    PA5      PA5      PF7
* 通道6    PA6      PA6      PF8
* 通道7    PA7      PA7      PF9
* 通道8    PB0      PB0      PF10
* 通道9    PB1      PB1      PF3
* 通道10   PC0      PC0      PC0
* 通道11   PC1      PC1      PC1
* 通道12   PC2      PC2      PC2
* 通道13   PC3      PC3      PC3
* 通道14   PC4      PC4      PF4
* 通道15   PC5      PC5      PF5
* 通道18   温度传感器
*****************************************************************************/
static ADC_HandleTypeDef adc_handle;static void adc_gpio_init(void)
{}static void adc_mode_init(void)
{__HAL_RCC_ADC1_CLK_ENABLE();adc_handle.Instance = ADC1;adc_handle.Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV4;adc_handle.Init.Resolution = ADC_RESOLUTION_12B; //12 位模式adc_handle.Init.DataAlign = ADC_DATAALIGN_RIGHT; //右对齐adc_handle.Init.ScanConvMode = DISABLE; //非扫描模式adc_handle.Init.EOCSelection = DISABLE; //关闭 EOC 中断adc_handle.Init.ContinuousConvMode = DISABLE; //关闭连续转换adc_handle.Init.NbrOfConversion = 1;adc_handle.Init.DiscontinuousConvMode = DISABLE; //禁止不连续采样模式adc_handle.Init.NbrOfDiscConversion = 0; //不连续采样通道数为 0adc_handle.Init.ExternalTrigConv = ADC_SOFTWARE_START; //软件触发adc_handle.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE; //使用软件触发adc_handle.Init.DMAContinuousRequests = DISABLE; //关闭 DMA 请求HAL_ADC_Init(&adc_handle);
}void ADCInit(void)
{adc_gpio_init();adc_mode_init();
}uint16_t ADCGet(uint32_t channel)
{ADC_ChannelConfTypeDef adc_config;adc_config.Channel = channel;adc_config.Rank = 1;adc_config.SamplingTime = ADC_SAMPLETIME_480CYCLES;adc_config.Offset = 0;HAL_ADC_ConfigChannel(&adc_handle, &adc_config);HAL_ADC_Start(&adc_handle);HAL_ADC_PollForConversion(&adc_handle, 10); //轮询转换return (uint16_t)HAL_ADC_GetValue(&adc_handle);
}float ADCAverageGet(uint32_t channel, uint16_t times)
{float temp;uint32_t value = 0, average;uint16_t i;for(i = 0; i < times; ++i){value += ADCGet(channel);}average = value / times;temp = (float)average * (3.3 / 4096);return temp;
}// T = ((Vsense - V25) / avg_slope) + 25;
// V25:Vsense在25°时的数值(0.76)
// avg_slope:温度与Vsense曲线的平均斜率(2.5mV/度)
float ADCSocInnerTemperature(void)
{float temperature;temperature = ADCAverageGet(ADC_CHANNEL_TEMPSENSOR, 10);temperature = (temperature - 0.76f) * 400 + 25;printf("%f\r\n", temperature);return temperature;
}

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/465621.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一键了结CUP100%问题

1、dllhost进程造成CPU使用率占用100%<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />服务器正常CPU消耗应该在75%以下&#xff0c;而且CPU消耗应该是上下起伏的&#xff0c;出现这种问题的服务器&#xff0c;CPU会突然一直处10…

Linux内核工程师是怎么步入内核殿堂的?

上图是公众号冠名参加的篮球赛对我来说&#xff0c;要搞好Linux内核&#xff0c;首先要做的就是买一块Linux开发板&#xff0c;然后就使劲捣鼓。下面是一位大神对于入门Linux内核的看法。以下的「我」不是公众号作者作者&#xff1a;Coly Lihttps://www.zhihu.com/question/304…

Newtonsoft.Json 获取匿名类数据

很简单。 1 using System;2 using System.Collections.Generic;3 4 namespace Test5 {6 class Program7 {8 9 static string Message "{\"Result\":0,\"ErrMsg\":\"执行失败。索引超出范围。必须为非负值并小于集合大小。\r\n参…

STM32F7xx —— Timer

STM32F7xx —— Timer 目录 STM32F7xx —— Timer 一、基础定时器配置 二、带回调定时器 作用&#xff1a;输出PWM&#xff0c;测量脉冲长度&#xff0c;定时等。 一、基础定时器配置 // 基本定时器 #define TIMER_CHANNEL TIM3 #define TIMER_PREEMPT_PRIO…

jquery-autocomplete学习(转)

jquery-autocomplete学习 一、用前必备官方网站&#xff1a;http://bassistance.de/jquery-plugins/jquery-plugin-autocomplete/当前版本&#xff1a;1.0.2需要JQuery版本&#xff1a;1.2.6 二、使用<script src"./jquery-1.3.2.js" type"text/javascript&q…

时间同步绝对是一个大问题

上图是加班看到的夜景假设A电脑时间和B电脑时间不同&#xff0c;当他们两个电脑的用户在使用电脑的时候就会存在问题&#xff0c;比如A电脑的用户说&#xff0c;我们下午5&#xff1a;00 去打球&#xff0c;然后A电脑到了5&#xff1a;00就去打球了&#xff0c;但是可能这个时候…

Window10彻底卸载应用商店

Window10如何彻底卸载应用商店&#xff1f;Window10应用商店就是一个应用下载平台&#xff0c;我们可以在应用商店中下载各种应用&#xff0c;但是很多用户并不喜欢在Window10应用商店中下载应用&#xff0c;觉得应用商店浪费内存&#xff0c;因此想将应用商店卸载掉&#xff0…

STM32F7xx —— QSPI

STM32F7xx —— QSPI 目录 STM32F7xx —— QSPI 一、QSPI 二、几个重要的函数 三、几个重要的结构 四、QSPI接口设计&#xff08;仅供参考&#xff09; 五、QSPI驱动W25Q256 一、QSPI SPI 是 Queued SPI 的简写&#xff0c;是 Motorola公司推出的 SPI 接口的扩展&#xf…

嵌入式、物联网常见通信协议

本文介绍一些常见的嵌入式、物联网通信协议&#xff0c;它们具有不同的性能、通信速率、覆盖范围、功率和内存&#xff0c;而且每一种协议都有各自的优点和或多或少的缺点。其中一些通信协议只适合小型家用电器&#xff0c;而其他一些通信协议则可以用于大型智慧城市项目。物联…

解决T400死机的问题!

终于解决这几天突然出现的t400 vista假死问题! 原来罪魁祸首是 ThinkPad -- Intel Matrix Storage Manager驱动程序(Windows XP/vista 32bit) 此更新在su自动更新里也有 千万别更新 如果不小心更新并出现偶尔假死(现象&#xff1a;鼠标能动&#xff0c;但是不能打开程序所有应用…

cas-client登录后报INVALID_PROXY_CALLBACK

服务器部署cas&#xff0c;登录后页面提示INVALID_PROXY_CALLBACK 然后查看cas的日志&#xff0c;日志报以下错误&#xff1a; 2018-06-29 11:36:06,251 ERROR [org.jasig.cas.util.http.SimpleHttpClient] - java.lang.RuntimeException: Unexpected error: java.security.Inv…

OpenNMS全接触-事件及通知(九)

在上一篇文章OpenNMS全接触-事件及通知&#xff08;八&#xff09;中&#xff0c;介绍了OpenNMS在收到受管设备发出的SNMP Trap之后&#xff0c;如何将收到的SNMP Trap与eventconf.xml文件中定义的事件(event)进行匹配&#xff0c;从而触发该事件的发生。主要是引入了<mask&…

STM32F7xx —— 看门狗

STM32F7xx —— 看门狗 看门狗&#xff1a;指定时间内不喂狗&#xff0c;就重启系统。 最简单的看门狗设计&#xff08;喂狗就是指定时间内给寄存器写一个固定值&#xff09; // 初始化独立看门狗 // prer:分频数:0~7(只有低 3 位有效!) // rlr:自动重装载值,0~0XFFF. // 分频…

网络中路由器的工作原理

大家好&#xff0c;我是情报小哥&#xff01;01路由器

C++学习(10)

1 //设计运算符重载的复数类2 #include<iostream.h>3 4 class Complex{5 private:6 double real;//实部7 double image;//虚部8 public:9 Complex(){ 10 real0; 11 image0; 12 } 13 Complex(do…

嵌入式真的没前途?

-上图是我的朋友邓总最近在互联网&#xff0c;然后从侧面了解了嵌入式的行业发展&#xff0c;嵌入式是离不开硬件的&#xff0c;但是硬件的话&#xff0c;又不只是靠硬件赚钱&#xff0c;如果硬件做不成一个产品&#xff0c;很难卖一个好价钱&#xff0c;就好比一个好的食材&am…

STM32F7xx —— 内存管理

STM32F7xx —— 内存管理 目的&#xff1a;高效、快速的分配&#xff0c;并在适当的时候回收内存资源。最终就是实现malloc和free函数。&#xff08;实现方法参考原子哥&#xff09; #define CONFIG_SRAM_OUT_ENABLE 0typedef enum {SRAM_TYPE_IN, // 内部内存池 #if(CO…

js for in 遍历对象与数组

遍历对象 let obj {q:9,w:5,e:2,t:7,c:3}//for in 遍历对象 key为对象的属性名称,遍历属性值时用[]操作符访问//通过[]操作符为对象添加属性或访问属性时&#xff0c;属性名称可以是任何字符串。for (let key in obj) {console.log(obj的key:,key, obj的value:,obj[key]);} …

前凸后翘的步进电机调速算法~

[导读] 大家好&#xff0c;我是逸珺。今天想分享一种超级实用的步进电机调速算法&#xff0c;这种算法在步进电机调速方案中可以说是一种非常优异的方案。梯形调速算法 为啥需要设计一个调速算法呢&#xff1f;步进电机不是给多少脉冲就动多少步吗&#xff1f;但是带上负载了就…

[转帖]关于win7共享的问题和解答

转自 活动目录SEO 的博客&#xff0c;转载请保留原出处 原文路径 http://gnaw0725.blogbus.com/logs/49380146.html 问题 1、请问现在Win7共享后怎么没有出现共享图标显示&#xff0c;都不知道这个文件夹已经共享过。 2、点击右键取消共享后&#xff0c;文件夹会出现一个锁的标…