范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

GD32开发实战指南第14章内部温度传感器

  开发环境:
  MDK:Keil 5.30
  开发板:GD32F207I-EVAL
  MCU:GD32F207IK14.1内部温度传感器工作原理
  GD32 有一个内部的温度传感器,可以用来测量 CPU 及周围的温度(TA)。该温度传感器在内部和 ADCx_IN16 输入通道相连接,此通道把传感器输出的电压转换成数字值。温度传感器模拟输入推荐采样时间是 17.1μs。GD32 的内部温度传感器支持的温度范围为: -40~125度。精度比较差,为 1.5 左右。
  GD32 内部温度传感器的使用很简单,只要设置一下内部 ADC,并激活其内部通道就差不多了。关于 ADC 的设置,我们在前面的章节已经进行了详细的介绍,这里就不再多说。接下来我们介绍一下和温度传感器设置相关的 2 个地方。
  第一个地方,我们要使用 GD32的内部温度传感器,必须先激活 ADC 的内部通道,这里通过 ADC_CTL1的 TSVREN位(bit23)设置。设置该位为 1 则启用内部温度传感器。置位ADC_CTL1寄存器的ADCON位,或者由外部触发启动ADC转换。
  第二个地方, GD32的内部温度传感器固定的连接在 ADC 的通道 16 上,所以,我们在设置好 ADC 之后只要读取通道 16 的值,就是温度传感器返回来的电压值了。根据这个值,我们就可以计算出当前温度。GD32内置一个温度传感器,通过 ADC_IN16这个通道可以读出温度传感器的电压。其中给出了一个计算公式:
  Temperature (in  ) = {(V25- Vsense) / Avg_Slope} + 25公式中的 Vsense 就是在 ADC_IN16读到的数值。单位是V。Avg_Slope 就是温度与 ADC 数值转换的斜率。最小=4.0 典型=4.3 最大=4.6 单位是 mV/ V25 最小=1.34V 典型=1.43V 最大=1.52V
  现在,我们就可以总结一下 GD32内部温度传感器使用的步骤了,如下:
  1)设置 ADC,开启内部温度传感器。
  关于如何设置 ADC,上一节已经介绍了,我们采用与上一节相似的设置。 不同的是上一节温度传感器是读取外部通道的值,而内部温度传感器相当与把通道端口连接在内部温度传感器上。所以这里,我们要开启内部温度传感器功能:adc_tempsensor_vrefint_enable();
  2)读取通道 16 的 AD 值,计算结果。
  在设置完之后,我们就可以读取温度传感器的电压值了, 得到该值就可以用上面的公式计算温度值。
  例如读到 Vsense= 1.30V。分别取 V25和 Avg_Slope 的典型值,
  计算得到:(1.43 - 1.30)/0.0043 + 25 = 55.23
  所以温度大约为 55 。GD32内部温度传感器与 ADC 的通道16相连,与 ADC 配合使用实现温度测量;测量范围–40~125 ,精度 1.5 。温度传感器产生一个随温度线性变化的电压,转换范围在2V < VDDA < 3.6V之间。14.2内部温度传感器读取实现
  内部ADC实现代码很简单,配置函数如下:/*     brief      Configure the ADC peripheral     param[in]  none     param[out] none     retval     none */ void adc_config(void) {     /* enable GPIOC clock */     rcu_periph_clock_enable(RCU_GPIOC);      /* enable ADC0 clock */     rcu_periph_clock_enable(RCU_ADC0);      /* config ADC clock */     rcu_adc_clock_config(RCU_CKADC_CKAPB2_DIV8);      /* config the GPIO as analog mode */     gpio_init(GPIOC, GPIO_MODE_AIN, GPIO_OSPEED_50MHZ, GPIO_PIN_3);      /* ADC mode config */     adc_mode_config(ADC_MODE_FREE);      /* ADC continuous mode function disable */     adc_special_function_config(ADC0, ADC_CONTINUOUS_MODE, DISABLE);      /* ADC data alignment config */     adc_data_alignment_config(ADC0, ADC_DATAALIGN_RIGHT);      /* ADC channel length config */     adc_channel_length_config(ADC0, ADC_REGULAR_CHANNEL, 1);      /* ADC regular channel config */     adc_regular_channel_config(ADC0, 0, ADC_CHANNEL_16, ADC_SAMPLETIME_1POINT5);      /* ADC trigger config */     adc_external_trigger_source_config(ADC0, ADC_REGULAR_CHANNEL, ADC0_1_2_EXTTRIG_REGULAR_NONE);      /* ADC external trigger enable */     adc_external_trigger_config(ADC0, ADC_REGULAR_CHANNEL, ENABLE);      /* ADC temperature and Vrefint enable */     adc_tempsensor_vrefint_enable();      /* enable ADC interface */     adc_enable(ADC0);     delay_ms(1);      /* ADC calibration and reset calibration */     adc_calibration_enable(ADC0);  }
  主函数也很简单:/*     brief      main function     param[in]  none     param[out] none     retval     none */ int main(void) {     uint32_t ad=0;       uint8_t i=0;      //systick init     sysTick_init();      //usart init 115200 8-N-1     com_init(COM1, 115200, 0, 1);      //adc config     adc_config();      while(1)     {               ad=0;         for(i=0;i<50;i++)         {              adc_software_trigger_enable(ADC0, ADC_REGULAR_CHANNEL);              while(!adc_flag_get(ADC0,ADC_FLAG_EOC));//检查转换标志             adc_flag_clear(ADC0, ADC_FLAG_EOC); // 清除结束标志              ad=ad+adc_regular_data_read(ADC0);//ADC转换结果         }         ad=ad/50;         printf("The current AD value = 0x%04X r ", ad);          printf("The current AD value = %f V r ",(float)ad / 4096 * 3.3); //实际电压         printf("temperture =%fr r ",(1.43-3.3/4096*ad)/0.0043+25);          delay_ms(1000);     } }
  值得注意的是,获取内部温度的核心代码就以下几行:adc_software_trigger_enable(ADC0, ADC_REGULAR_CHANNEL); while(!adc_flag_get(ADC0,ADC_FLAG_EOC));//检查转换标志 adc_flag_clear(ADC0, ADC_FLAG_EOC); // 清除结束标志 ad=ad+adc_regular_data_read(ADC0);//ADC转换结果
  只是为了防止偶然误差,这里求50次的均值。14.3实验现象
  将程序编译好后下载到板子中,通过串口助手可以看到在接收区有温度值输出。

中金人均年薪115万,超越华为腾讯,9372名员工半年净赚50。1亿薪资是大家在找工作时,主要考虑的因素之一。在国内众多企业当中,金融互联网等行业是薪资水平较高的。正是因此,大家在找工作的时候,才会首先考虑这一领域。值得注意的是,金融领域中的中金公鸿蒙系统体验分享难怪很多人用惯了鸿蒙系统,连iPhone都瞧不上和芯片相比,操作系统的短板才是中国科技产业最大的危机。虽然中国芯片自给自足率比较低,但至少不是0。而在操作系统领域,中国科技产业几乎就是0的存在,无论是手机操作系统还是电脑操作系统SSD降价在即找对目标再出手SSD终于要降价了,小伙伴们大概早就忘记上一次这种消息是啥时候了吧?SSD的主要组件就是闪存芯片主控芯片内存芯片,全都是芯片,在产能吃紧的当下,能降价真是不容易了。那咱们也别客气,永久激活系统电脑已成为我们生活的一部分,那么怎么激活Windows系统呢?以下分享一招可以永久激活Win10电脑系统,只需要两行代码即可。首先按键盘上的WinR键调出运行框,然后在运行框中输入为什么iPhone只要4GB运存就很流畅,而安卓却不行?3个原因是关键iPhone和安卓的运存差异可能很多人都没注意到,iPhone11iPhone12iPhone13标准版都是4GB运存,而且还是LPDDR4X。而安卓旗舰,早就普及了8GB运存,并8年前的荣耀3X还有4万多在网用户,然而还是不如这款小米神机8年前的荣耀3X还有4万多在网用户,然而还是不如这款小米神机!今天下午,在荣耀周年庆暨荣耀X30新品发布会上,荣耀官方透露,8年前发布的荣耀3X手机到现在仍有40000在网用户。荣传承尼尔机械纪元叫板崩坏3这款二次元动作游戏迎来国风新角色如果说除开米哈游的崩坏3,谁是当下最强的二次元动作手游,相信大部分玩家都会不约而同的说出战双帕弥什,这款游戏在过去的一年里经历了与尼尔的联动以及2000元皮肤事件,陪玩家走过了风风不利于身体健康的3个喝水误区,可别再犯了我们身体内的水分,每天会通过4个途径代谢排出体外1尿液大概排出1500毫升2粪便大概排出150毫升3呼吸大概排出350毫升4皮肤蒸发大概排出500毫升。加起来算的话,我们人体每天排维生素B2有啥作用?服用维生素B2,身体会发生哪些变化?人体每天要摄入很多的营养物质来维持身体平衡,维生素B2也是人体所需的营养物质之一,如果你是缺乏维生素B2,可能会患有口疮牙龈炎等一些疾病,从而危害身体健康。维生素B2是人体的一种代对手剧情人设太上头!剧中郭京飞2个动作暴露真实身份12月16日,对手在央视8套开播啦!按理说,有前一天雪中悍刀行的强势上线,对手的锋芒应该会削弱几分才是,但是没想到的是,就连小编我一个不爱看这个类型剧的人,看了不到30分钟,感觉这冷天多吃蒸菜身体好,分享8道家常蒸菜,少油清淡,营养不上火大家好,我是大磊,又到了分享美食的时间。咱们中国做菜的烹饪方式有很多种,这其中,蒸的做法少油烟,少油盐,可以说是最健康最能保证食材原本滋味的方式了。也正如大家所公认的,蒸与爆炒或其
我的第二个家巴马长寿之乡可以分享你手机里的风景照片吗我的第二个家一巴马长寿之乡夜深人静,翻着手机里的老照片,思绪回到了我的第二个故乡一巴马长寿村。伫望着弥漫鸟语花香的乡间小路,村里老人在路上行走回首的目光会卖茶算什么?要是没在武夷山摔过几次跤,都不算真正的茶人丨本文由小陈茶事原创丨首发于头条号小陈茶事丨作者村姑陈1最初,我去马头岩。小竹林的姐姐带我去的。那时候是个深秋,时间也不早,已经下午四点了。姐姐风风火火地把车停在大红袍景区入口的停山洪泥石流突发!教你如何避险自救图片来源澎湃新闻8月13日四川省彭州市龙漕沟发生山洪灾害至今,已造成7人死亡8人轻伤8月18日青海省大通县山洪爆发以来,已有25人遇难6人失联。在自然灾害面前,人类显得如此渺小,生暑假为何不去旅工游呢暑假期间,一些大学生总想着快点放假吧!放假啦,我想回家享受享受。在家多舒服啊!可是我想说的就是,其实暑假你可以换一种方式去享受。打个比方,就拿我举例而言,这个暑假可以说我过的很充实立秋以后,抓住孩子的长高期,这10道菜钙量比牛奶高,个头长得快大家好,欢迎大家来到我的美食自媒体,我是美食领域创作者锦绣V山东专注美食,让生活更有味。今天为大家带来了几道家常美食的做法,这几道美食也是深受大家的喜欢,而且是很常见的几道美食。天被惯坏的孩子!本泽马又让点,大巴黎拿天价工资的姆巴佩看哭了么西甲第2轮的比赛,皇马客场41击败塞尔塔,本场比赛取得进球的本泽马,在比赛最后阶段将点球让给了替补登场的阿扎尔,虽然阿扎尔的点球没有罚进,但是这已经不是本泽马第1次让点,欧冠赛场上孩子加盐,真的越晚越好吗?很多家长可能有误解了很多新手妈妈都有听到过宝宝的辅食里不要加盐,这样更健康!晚点加盐,这样对宝宝更好!对于什么时候加盐,众说纷纭!妈妈们都被弄迷糊了,到底哪种说法才是正确的呢?什么时候开始加盐才是正确孩子不能忽视的坏习惯习惯成自然,这句话说的可以是好习惯,也可以是坏习惯,小的坏习惯不及时纠正,可能会造成更严重的后果。我一个亲戚家的孩子,从小跟随父母在上海打工,由于父母平日里忙于上班,无暇顾及孩子的控制不了的不是3岁的孩子,而是满身的戾气你以后别生孩子,生了孩子也被你带死!我想不出一个一口标准普通话戴着眼镜略显斯文的人,是如何能够说出这样恶毒的话的?同为女人而且自己还有孩子的情形下怎么去想到诅咒另一个女孩子?每当面彩云之南之泸沽湖(一)泸沽湖是整个行程中最辛苦的一段。去之前,我们曾经为去还是不去商量了半天。不去,实在可惜,甚至,我们怕后悔去,又担心如此漫长的路途。思虑良久,最终决定去。最早知道泸沽湖,是源于电视上索尼挑战ampampquot同等价位ampampquot的国产75英寸电视!网友别乱买,差老鼻子了前几天回农村老家看父母,有邻居找我说她家的电视不能看有好长时间了,让我过去给看看,结果是一台刚买不久的索尼75英寸电视,说是城里女婿给送的,花了一万多块,我看了底座是索尼KD75X