迅维网
标题:
【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