VC获取CPU温度,SMbus,winIo,superIO

fantasyemperor 2008-02-18 03:45:35
加精
怎样写SMBus驱动来读取CPU温度,哪位有范例给我一份,其他的方法能实现读出cpu温度,也可,麻烦给出详细代码。
...全文
9378 67 打赏 收藏 转发到动态 举报
写回复
用AI写文章
67 条回复
切换为时间正序
请发表友善的回复…
发表回复
狂放之歌 2012-07-22
  • 打赏
  • 举报
回复
ddk/wdk 里有个 getsysteminfo 查查看..
linyaoxin 2012-07-09
  • 打赏
  • 举报
回复
谁能给份实现的源码 WMI 根本不行
zcx362424 2012-06-25
  • 打赏
  • 举报
回复
高手给一份源码吧。。 太急用了。。
iwillbeback008 2012-06-18
  • 打赏
  • 举报
回复
还没有搞定么?
antaojin 2012-05-26
  • 打赏
  • 举报
回复
我也需要这方面的代码,。就是能直接获取CPU温度,求代码,多谢。931964335@qq.com
Yofoo 2012-05-04
  • 打赏
  • 举报
回复
一楼说了, 用ACPI可以的, 具体


1. 根据CPU型号先获取基准温度, 有100, 85等
这个需要自己建表查, 以前还找过一些CPU的文档, 现在的CPU不知道是否支持直接查询
http://download.csdn.net/detail/zzz3265/1964636


2. 驱动或其他方法下读取Msr, 在23位开始的8位是基准温差, 相减就是实际温度

部分代码片段


#define EXT_CONFIG 0xEE
#define IA32_THERM_STATUS 0x0000019c

bRetVal = Nntdll::RdMsr(EXT_CONFIG, dwMsr);
if(dwMsr[0] && (1<<30))
m_CurInfo.nTjunction = 85;
else
m_CurInfo.nTjunction = 100;


bRetVal = Nntdll::RdMsr(IA32_THERM_STATUS, dwMsr);
dwCurVal = NData::GetBit(dwMsr[0], 31, 1); //IsVaild
if(dwCurVal == 0)
m_CurInfo.nDTSVaule = -1;

dwCurVal = NData::GetBit(dwMsr[0], 23, 8); //DtsValue
m_CurInfo.nDTSVaule = m_CurInfo.nTjunction - dwCurVal;







kt625427 2012-05-03
  • 打赏
  • 举报
回复
lz,你妈叫你结贴了
fly4free 2012-04-17
  • 打赏
  • 举报
回复
4年了!!无比激动啊,跨度好长的帖子。关注。
Teaxsmagiccc 2012-04-16
  • 打赏
  • 举报
回复
最近一直做这设计却不得要领;望有资料的大神也发我一份,我的邮箱1070632115qq@.com;万分感谢
ogred3d 2011-10-22
  • 打赏
  • 举报
回复
继续顶楼上的
图灵转世 2011-10-07
  • 打赏
  • 举报
回复
顶,支持。
wu847379367 2011-10-06
  • 打赏
  • 举报
回复
太深奥了 帮顶、、、、、、、、、、、、、
hoper 2011-09-29
  • 打赏
  • 举报
回复
通过superio的EC获得,不过这需要相关公司的Datasheet,如8728,8718等芯片,还要看线路图怎么连的.麻烦.
taotao52521 2011-08-23
  • 打赏
  • 举报
回复
挖啊..看来真是难题
shiter 2011-06-07
  • 打赏
  • 举报
回复
类似鲁大师的那种东东,怎么做,关注。。
iwillbeback008 2011-05-28
  • 打赏
  • 举报
回复
还没有搞定么?
veryim 2010-12-02
  • 打赏
  • 举报
回复
还没有搞定啊
wbb19870827 2010-10-18
  • 打赏
  • 举报
回复
学习,做个记号
xhzkoi 2010-10-18
  • 打赏
  • 举报
回复
深奥,学习下~~
你妹的特盗不 2010-10-07
  • 打赏
  • 举报
回复
[Quote=引用 39 楼 qingtain2008 的回复:]
引用 35 楼 balloonpig 的回复:
觉得这个会和 硬件比较相关吧!
不同的平台,采用不同的components,操作的方法也会不太一样吧!

移动些列的电脑一般都会用EC的,这些动作可以让EC去做,我们可能可以发个command要EC reports我们想要的东西(一般通过 0x62和0x66 port),当然这个就需要看你和EC定义如何通信,没标准的!当然也不排除你直接操作E……
[/Quote]

你用i/o的方式去操作,操作成功率是100%吗???
加载更多回复(42)

2,640

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧