- 积分
- 3537
- 下载分
- 分
- 威望
- 点
- 原创币
- 点
- 下载
- 次
- 上传
- 次
- 注册时间
- 2014-11-13
- 精华
|
马上注册,获取阅读精华内容及下载权限
您需要 登录 才可以下载或查看,没有帐号?注册
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;
}
六、输出结果就如前述了。
|
|