
最近主控MCU从F0换到了G0,用到了G0的内部温度传感器,有几个问题没能解决 1.文档上给出的出厂测量的温度的raw data只有30度的,用CubeMX生成的代码里倒是有30度和130度的 ,但是130度的值比30度的值要大,意思是G0的内部温度传感器现在是PTC了? 2.现在在室温下(约20度)测量的内度温度传感器的AD值约为940,按照程序里给出的转换公式,换算出来的温度为-25度左右, 用热风枪对着MCu吹一下,AD值会增加到1100左右,证明AD检测的配置应该没什么问题。 Temperature = ((TS_ADC_DATA - TS_CAL1) * (TS_CAL2_TEMP - TS_CAL1_TEMP)) / (TS_CAL2 - TS_CAL1) + TS_CAL1_TEMP 想请教一下有哪位用过G0的内部温度传感器,例程中给出的温度计算公式是否正确。谢谢! |
STM32G070CBT6使用硬件SPI无法读出W25Q128的ID
STM32G0B0CET6的usb的时钟只能用48MHz的晶振来实现吗?
大家好
STM32G070RET6,中断优先级配置没有效果
1
STM32G070 UART串口,低波特率传送数据时,TIMER出现严重延时现象,如何解决?
STM32G070 UART串口,低波特率传送数据时,TIMER出现严重延时现象是,如何解决?
STM32G030F6P6写FLASH最后8字节出错
stm32的同一个定时器,不同的通道,可以不同时的输出pwm波形吗
STM32G0 STL 自检库 问题咨询
1、内部传感器本质还是使用ADC来测量的。2、F0的ADC也是12位的,G0的ADC也是12位的。如果配置可能不同,数值有可能不同?
3、公式似乎没有问题。
4、这两个系列的MCU的TS_CAL1获取条件有点不一样:
F0: TS ADC raw data acquired at a temperature of 30 °C (± 5 °C), VDDA= 3.3 V (± 10 mV)
G0: TS ADC raw data acquired at a temperature of 30 °C (± 5 °C), VDDA = VREF+ = 3.0 V (± 10 mV)
而且两个地址也不一样。
5、关于温度和输出是正相关还是负相关。我手边暂时没有F0,就用G0测试一下吧。(待会留言告诉你结果)
6、数据是左对齐还是右对齐。不过看情况应该没有搞错。
7、你说的cubemx生成的代码有130度,这个数据是在哪里设置的?理论上硬件应该不支持吧?
不好意思,看不带编辑功能。就在这里写一下:
130度的在datasheet里面看到了:
temperature of 30 °C (± 5 °C),
VDDA = VREF+ = 3.0 V (± 10 mV)
temperature of 130 °C (± 5 °C),
VDDA = VREF+ = 3.0 V (± 10 mV)
官方的计算方法在stm32g0xx_II_adc.h:
感觉温度很不准,暂时没有看公式对错。
默认官方的公式是对的先。
温度正常竟然50度,有点不可信。但是这个温度对应的ADC在30和130度之间。
我这边假定电压是3.3V,其实可以测量一下vref的取值。也许修正一下就可以了
我算的更不对