找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 14821|回復(fù): 23
打印 上一主題 下一主題
收起左側(cè)

這是我測(cè)試AMG8833性能時(shí)寫的一個(gè)測(cè)試程序

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:292302 發(fā)表于 2018-3-15 15:03 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
  1. #include "bsp_amg88xx.h"
  2. #include "bsp_iic.h"
  3. u8 xx;

  4. void amg88xx_init(void)
  5. {
  6.         i2c_init();
  7.         amg88xx_write(AMG88xx_PCTL, AMG88xx_NORMAL_MODE);
  8.         amg88xx_write(AMG88xx_RST, AMG88xx_INITIAL_RESET);
  9.         amg88xx_write(AMG88xx_FPSC, AMG88xx_FPS_10);
  10. }

  11. uint8_t amg88xx_write(uint8_t reg,uint8_t data)
  12. {
  13.     i2c_Start();
  14.     i2c_SendByte((AMG88xx_ADDRESS<<1)|0); //發(fā)送器件地址+寫命令
  15.     if(i2c_WaitAck())          //等待應(yīng)答
  16.     {
  17.         i2c_Stop();
  18.         return 1;
  19.     }
  20.     i2c_SendByte(reg);         //寫寄存器地址
  21.     i2c_WaitAck();             //等待應(yīng)答
  22.     i2c_SendByte(data);        //發(fā)送數(shù)據(jù)
  23.     if(i2c_WaitAck())          //等待ACK
  24.     {
  25.         i2c_Stop();
  26.         return 1;
  27.     }
  28.     i2c_Stop();
  29.     return 0;
  30. }

  31. uint8_t amg88xx_read_len(uint8_t reg,uint8_t len,uint8_t *buf)
  32. {
  33.     i2c_Start();
  34.     i2c_SendByte((AMG88xx_ADDRESS<<1)|0); //發(fā)送器件地址+寫命令
  35.     if(i2c_WaitAck())          //等待應(yīng)答
  36.     {
  37.         i2c_Stop();
  38.         return 1;
  39.     }
  40.     i2c_SendByte(reg);         //寫寄存器地址
  41.     i2c_WaitAck();             //等待應(yīng)答
  42.         i2c_Start();               
  43.     i2c_SendByte((AMG88xx_ADDRESS<<1)|1); //發(fā)送器件地址+讀命令
  44.     i2c_WaitAck();             //等待應(yīng)答
  45.     while(len)
  46.     {
  47.         if(len==1)
  48.                 {
  49.                         *buf=i2c_ReadByte();//讀數(shù)據(jù),發(fā)送nACK
  50.                         i2c_NAck();
  51.                 }
  52.                 else
  53.                 {
  54.                         *buf=i2c_ReadByte();                //讀數(shù)據(jù),發(fā)送ACK  
  55.                         i2c_Ack();
  56.                 }
  57.                 len--;
  58.                 buf++;  
  59.     }
  60.     i2c_Stop();                 //產(chǎn)生一個(gè)停止條件
  61.     return 0;      
  62. }

  63. float AMG88XX_signedMag12ToFloat(uint16_t val)
  64. {
  65.         //take first 11 bits as absolute val
  66.         uint16_t absVal = (val & 0x7FF);
  67.         
  68.         return (val & 0x8000) ? 0 - (float)absVal : (float)absVal ;
  69. }

  70. float amg88xx_readThermistor()
  71. {
  72.         uint8_t raw[2];
  73.         uint16_t recast;
  74.         
  75.         amg88xx_read_len(AMG88xx_TTHL, 2, raw);
  76.         recast = ((uint16_t)raw[1] << 8) | ((uint16_t)raw[0]);
  77.         return AMG88XX_signedMag12ToFloat(recast) * AMG88xx_THERMISTOR_CONVERSION;
  78. }

  79. void amg88xx_readPixels(float *buf, uint8_t size)
  80. {
  81.         uint16_t recast;
  82.         float converted;
  83.         uint8_t rawArray[128];
  84.         
  85.         amg88xx_read_len(AMG88xx_PIXEL_OFFSET, 128, rawArray);
  86.         
  87.         for(int i=0; i<size; i++)
  88.         {
  89.                 uint8_t pos = i << 1;
  90.                 recast = ((uint16_t)rawArray[pos + 1] << 8) | ((uint16_t)rawArray[pos]);        
  91.                
  92.                 converted = AMG88XX_signedMag12ToFloat(recast) * AMG88xx_PIXEL_TEMP_CONVERSION;
  93.                 buf[i] = converted;
  94.         }
  95. }

復(fù)制代碼


AMG8833.7z

288.92 KB, 下載次數(shù): 187, 下載積分: 黑幣 -5

AMG8833測(cè)試程序

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂1 踩
回復(fù)

使用道具 舉報(bào)

來自 2#
ID:606366 發(fā)表于 2019-10-30 17:45 | 只看該作者
樓主你好,amg88xx_write這個(gè)函數(shù)我有問題想問一下,這個(gè)函數(shù)的作用是發(fā)送數(shù)據(jù)到AMG8833中,由于需要Slave Address和內(nèi)部寄存器地址,所以IIC通信采用的是復(fù)合格式,你的程序里面并沒有發(fā)送重復(fù)起始信號(hào),主機(jī)是怎么把數(shù)據(jù)發(fā)送到AMG8833里面的?能給AMG8833寫命令嗎?
我在amg88xx_read_len這個(gè)函數(shù)里面發(fā)現(xiàn)了重復(fù)發(fā)送起始信號(hào)的代碼。
所以說樓上那位沒有做出來是因?yàn)閱纹瑱C(jī)不能將數(shù)據(jù)寫入到與AMG8833中,初始化失敗,所以才無法讀取數(shù)據(jù)的嗎?
回復(fù)

使用道具 舉報(bào)

板凳
ID:297768 發(fā)表于 2018-3-27 15:10 | 只看該作者
這是那個(gè)熱像儀的嗎
回復(fù)

使用道具 舉報(bào)

地板
ID:359446 發(fā)表于 2018-6-26 16:25 | 只看該作者
堅(jiān)持每天簽到。不知道哦這個(gè)能不能探測(cè)遠(yuǎn)方大面積的高溫?zé)狳c(diǎn)。
回復(fù)

使用道具 舉報(bào)

5#
ID:373494 發(fā)表于 2018-7-17 17:27 | 只看該作者
樓主可以用么
回復(fù)

使用道具 舉報(bào)

6#
ID:379865 發(fā)表于 2018-7-27 14:38 | 只看該作者
學(xué)習(xí)了,正要做這個(gè)
回復(fù)

使用道具 舉報(bào)

7#
ID:138247 發(fā)表于 2018-9-8 19:03 | 只看該作者
感謝分享。。。
回復(fù)

使用道具 舉報(bào)

8#
ID:411087 發(fā)表于 2018-10-17 14:15 | 只看該作者
多謝樓主分享
回復(fù)

使用道具 舉報(bào)

9#
ID:437818 發(fā)表于 2018-12-5 13:53 | 只看該作者
為什么主函數(shù)調(diào)用之后,屏幕是藍(lán)屏呢
回復(fù)

使用道具 舉報(bào)

10#
ID:453995 發(fā)表于 2018-12-25 01:26 | 只看該作者
很有用,學(xué)習(xí)學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

11#
ID:389073 發(fā)表于 2019-3-10 02:05 | 只看該作者
正是要找的
回復(fù)

使用道具 舉報(bào)

12#
ID:339108 發(fā)表于 2019-3-30 19:44 | 只看該作者
樓主  你amg8833地址咋算的啊
回復(fù)

使用道具 舉報(bào)

13#
ID:504918 發(fā)表于 2019-4-6 12:16 | 只看該作者
66666向大佬學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

14#
ID:504918 發(fā)表于 2019-4-6 12:17 | 只看該作者
大佬,寄存器配置的那個(gè)數(shù)據(jù)手冊(cè)可以分享一下么?
回復(fù)

使用道具 舉報(bào)

15#
ID:606366 發(fā)表于 2019-10-25 15:52 | 只看該作者
nb,6666666(雖然我還沒下載,但是喊666就對(duì)了)
回復(fù)

使用道具 舉報(bào)

16#
ID:606366 發(fā)表于 2019-10-30 15:37 | 只看該作者
樓主我想請(qǐng)問一下,為什么在有關(guān)AMG88XX的地方一條注釋都看不到???
回復(fù)

使用道具 舉報(bào)

17#
ID:269538 發(fā)表于 2019-12-3 18:18 | 只看該作者
感激不盡,最需要這個(gè)資料的時(shí)候
回復(fù)

使用道具 舉報(bào)

18#
ID:692142 發(fā)表于 2020-2-12 22:28 | 只看該作者
感謝分享
回復(fù)

使用道具 舉報(bào)

19#
ID:384489 發(fā)表于 2020-2-24 17:14 | 只看該作者
普通的紅外測(cè)溫探頭最近都買不到了,只能買個(gè)AM8833試試了。感謝分享。
回復(fù)

使用道具 舉報(bào)

20#
ID:734966 發(fā)表于 2020-4-22 10:20 | 只看該作者
感謝分享,學(xué)習(xí)了
回復(fù)

使用道具 舉報(bào)

21#
ID:672711 發(fā)表于 2020-5-11 18:35 | 只看該作者
大佬請(qǐng)問一下這個(gè)傳感器的波段是多少啊
回復(fù)

使用道具 舉報(bào)

22#
ID:391164 發(fā)表于 2020-5-22 14:25 | 只看該作者
正好學(xué)習(xí)下
回復(fù)

使用道具 舉報(bào)

23#
ID:162050 發(fā)表于 2020-6-27 18:00 | 只看該作者
下載看看,學(xué)習(xí)下
回復(fù)

使用道具 舉報(bào)

24#
ID:421245 發(fā)表于 2021-1-21 15:56 | 只看該作者
樓主,請(qǐng)問我只能讀一個(gè)溫度寄存器的值,怎么解決,除了0x80地址的溫度能讀取之外,其它的都讀取不了
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表