迅维网

标题: 【NUCLEO-F412ZG试用体验】之---05 ADC测芯片温度+串口输出 [打印本页]

作者: バ幸福De右岸    时间: 2016-12-22 10:15
标题: 【NUCLEO-F412ZG试用体验】之---05 ADC测芯片温度+串口输出
上一次做了串口通信,这些在串口通信上增加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;
}
六、输出结果就如前述了。






欢迎光临 迅维网 (https://www.chinafix.com/) Powered by Discuz! X3.4