迅维网

查看: 1752|回复: 0
打印 上一主题 下一主题

【NUCLEO-F412ZG试用体验】之---05 ADC测芯片温度+串口输出

[复制链接]
跳转到指定楼层
1#
发表于 2016-12-22 10:15:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式 来自: 山东 来自 山东

马上注册,获取阅读精华内容及下载权限

您需要 登录 才可以下载或查看,没有帐号?注册

x
上一次做了串口通信,这些在串口通信上增加ADC测量芯片温度。一开始用错了计算公式,计算的数据不对。先上一下结果图。  

                               
登录/注册后看高清大图


一、首先开F412芯片IN0-15共16路外部通道,可以进行16路外部转换,同时还有IN16内部温度通道、IN17内部参考电压通道、IN18电池充电监测通道(其中IN16与IN18为选其一的关系) 。

                               
登录/注册后看高清大图


                               
登录/注册后看高清大图


                               
登录/注册后看高清大图

//Vsense为采样数据转化成的电压       Vsense=MCU_Temperature_ConvertedValue*3.3/4096
//计算公式                                       温度(度)={(Vsense-V25)/Avg_Slope}+25

二、前面进行过串口测试  【NUCLEO-F412ZG试用体验】之---04串口通信测试
三、进行ADC配置,如下图只打开温度传感器通道,并设置好初始化,并生成工程。

                               
登录/注册后看高清大图

四、编程

                               
登录/注册后看高清大图


                               
登录/注册后看高清大图

五、由于本次采用printf函数串口进行输出。
      5.1 须要增加 #include <stdio.h>头文件。
      5.2 只增加头文件运行会进入死循环。
      5.3 printf执行时每个字符会调用int fputc(int ch, FILE *f),所以只要将fputc进行重定义。记字符一个个输出去。
int fputc(int ch, FILE *f)
{
uint8_t ch1[1];
ch1[0]=ch;        
HAL_UART_Transmit(&huart6,ch1,1,10);                       //将传过来的字符发送出去
while (!(&huart6.Instance ->SR && UART_FLAG_TXE));
return ch;
}
六、输出结果就如前述了。


您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表
附近
店铺
微信扫码查看附近店铺
维修
报价
扫码查看手机版报价
信号元
件查询
点位图


芯片搜索

快速回复