根据参考手册的描述,所有的 AHB memory 默认都是 cacheable 的,对于无法实现缓存的区域(OTP、RO、data area),必须使用 MPU 来禁用本地缓存。也就是说,不仅是 TS_CAL1 和 TS_CAL2,其实整个 OTP、RO(Table 39)、data area区域的访问都无法经过 Cache,需要使用 MPU 将其配置为 none-cacheable 属性。既...
其中,TS_CAL1和TS_CAL2是在30℃和110℃温度下对应的ADC采集值,这些值已经在ST芯片出厂时内置好,并在数据手册中详细说明。要获取这些值,只需查阅相关地址即可。此外,ST库还提供了相应的宏来简化操作。接着,在工程配置方面,若不考虑功耗限制,我们可以简单地让ADC持续采样,无需开启中断服务。只需在需要数据...
其中TS_CAL1和TS_CAL2分别是30℃和110℃温度下对应的ADC采集值,但这个值哪来呢?别担心,这个是ST芯片出厂就给你内置好的一个值,在数据手册里有说明,只要获取这个地址的值即可。ST库里也提供有相关的宏。 然后工程按如下配置,不考虑功耗的情况,我们只需要让其一直采样即可,不...
ts_c30=*(uint16_t*)(TS_CAL1_ADDR);//读取30℃时的ADC校准值 ts_c110 = *(uint16_t *)(TS_CAL2_ADDR);//读取110℃时的ADC校准值 HAL_ADCEx_Calibration_Start(&hadc1 , ADC_SINGLE_ENDED);//ADC校准 HAL_ADC_Start_IT(&hadc1);//启动ADC并开启转换中断 HAL_TIM_PWM_Start(&htim1, TI...
TS_DATA 对应于内部传感器当前温度的采样值,而 TS_CAL2_TEMP 和 TS_CAL1_TEMP 则分别代表校准值2和校准值1的温度值。对于 STM32U5,TS_CAL2_TEMP 为 130℃,其对应的采样值存储在 0x0BFA0742 和 0x0BFA0743;而 TS_CAL1_TEMP 为 30℃,其对应的采样值存储在 0x0BFA0710 和 0x0BFA0711。根据...
DATA = 945(温度的原始ADC数据),TS_CAL_1 = 1035(从预定义的存储器地址读取校准点),TS_CAL_...
13.内部温度传感器:需校准(参考TS_CAL1/TS_CAL2),采样时间建议大于10μs 14.DAC输出纹波:增加RC...
使用ADC的通道16, 17的内部温度传感器和参考电压,从芯片地址0x1FF80078开始读出TS_CAL1, TS_CAL2,...
(uint32_t *)adc_buff, ADC_TYPE_max);/* 温度换算 */#define TS_CAL1 ((uint16_t *)0x1FFFF7B8)#define TS_CAL2 ((uint16_t *)0x1FFFF7C2)AdcData[ADC_TYPE_temperature] = (float)(110 - 30) / ((*TS_CAL2) - (*TS_CAL1)) * (adc_buff[ADC_TYPE_temperature] - (*TS_CAL1)...
我正在尝试测量/计算 STM32G0B1VE 设计的内部温度。使用的算法取自参考手册 RM0444 Rev 5 第 376-378 页:以摄氏度为单位的温度 = ((TS_CAL2_TEMP-TS_CAL1_TEMP) / (TS_C ...