stevenvonmark 发表于 2019-11-16 16:34

关于005芯片读温度Trim值时出错

请教高手,
   我想读出005芯片内部温度对应地址的Trim值,比如2.5v对应的地址是:0X00100C36,读这个地址的数据会进入死循环,但我读其他地址的值是正常的,请问是否有办法解决呢?
    Trim_data =*((unsigned long*)(0x00100C36UL));                //出错的,会进入死循环

smartpower 发表于 2019-11-16 16:43

Trim_data =*((unsigned short int*)(0x00100C36UL));   

smartpower 发表于 2019-11-16 16:44

这个是16bit的值,需要用16bit的访问方式。

smartpower 发表于 2019-11-16 16:44

这是ARM 0+ CPU 的特性。

stevenvonmark 发表于 2019-11-16 17:01

你好,我之前也试过这个是可以读,现在也再用你的语句读,得到的数据我是觉得有问题。
目前使用仿真的单片机读出来的trim数据是0x0605,目前环境温度大概27度左右,读出来的AdcValue=0x0776,如果按照计算公式:环境温度= 25 + 0.0839×Vref ×( AdcValue – Trim ) ,温度是85度,这个是非常有问题的。但如果按照手册的例子,trim数据大概是0x076c,计算的温度大概是27度,比较符合实际情况。
所以,目前还是存在疑问。

buffered 发表于 2019-11-17 18:23

可以再详细啃一下手册

aoyi 发表于 2019-12-16 11:47

trim值是什么值呀

tangguowang 发表于 2022-3-11 15:08

我的读出来都是500多度。搞得我都不知道怎么搞

tangguowang 发表于 2022-3-11 15:12

buffered 发表于 2019-11-17 18:23
可以再详细啃一下手册

看了那段操作,就是搞不出来

宝挖小子 发表于 2022-9-14 09:21

官网怎么连个读温度的例程都不给

Bowclad 发表于 2022-9-16 19:11

看一下手册,里面有
页: [1]
查看完整版本: 关于005芯片读温度Trim值时出错