久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: 這是我測試AMG8833性能時寫的一個測試程序 [打印本頁]

作者: Hachi56    時間: 2018-3-15 15:03
標題: 這是我測試AMG8833性能時寫的一個測試程序
  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); //發送器件地址+寫命令
  15.     if(i2c_WaitAck())          //等待應答
  16.     {
  17.         i2c_Stop();
  18.         return 1;
  19.     }
  20.     i2c_SendByte(reg);         //寫寄存器地址
  21.     i2c_WaitAck();             //等待應答
  22.     i2c_SendByte(data);        //發送數據
  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); //發送器件地址+寫命令
  35.     if(i2c_WaitAck())          //等待應答
  36.     {
  37.         i2c_Stop();
  38.         return 1;
  39.     }
  40.     i2c_SendByte(reg);         //寫寄存器地址
  41.     i2c_WaitAck();             //等待應答
  42.         i2c_Start();               
  43.     i2c_SendByte((AMG88xx_ADDRESS<<1)|1); //發送器件地址+讀命令
  44.     i2c_WaitAck();             //等待應答
  45.     while(len)
  46.     {
  47.         if(len==1)
  48.                 {
  49.                         *buf=i2c_ReadByte();//讀數據,發送nACK
  50.                         i2c_NAck();
  51.                 }
  52.                 else
  53.                 {
  54.                         *buf=i2c_ReadByte();                //讀數據,發送ACK  
  55.                         i2c_Ack();
  56.                 }
  57.                 len--;
  58.                 buf++;  
  59.     }
  60.     i2c_Stop();                 //產生一個停止條件
  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. }

復制代碼


AMG8833.7z

288.92 KB, 下載次數: 187, 下載積分: 黑幣 -5

AMG8833測試程序


作者: 興趣使然    時間: 2018-3-27 15:10
這是那個熱像儀的嗎
作者: xiaee    時間: 2018-6-26 16:25
堅持每天簽到。不知道哦這個能不能探測遠方大面積的高溫熱點。
作者: 邦邦    時間: 2018-7-17 17:27
樓主可以用么
作者: huyanglei.ok    時間: 2018-7-27 14:38
學習了,正要做這個
作者: plj213    時間: 2018-9-8 19:03
感謝分享。。。

作者: zwjiang    時間: 2018-10-17 14:15
多謝樓主分享
作者: 周方均    時間: 2018-12-5 13:53
為什么主函數調用之后,屏幕是藍屏呢

作者: zeeee92    時間: 2018-12-25 01:26
很有用,學習學習
作者: dahuzhi_cn    時間: 2019-3-10 02:05
正是要找的
作者: 2728194262    時間: 2019-3-30 19:44
樓主  你amg8833地址咋算的啊
作者: lovernw    時間: 2019-4-6 12:16
66666向大佬學習
作者: lovernw    時間: 2019-4-6 12:17
大佬,寄存器配置的那個數據手冊可以分享一下么?
作者: 無敵的UUZ大人    時間: 2019-10-25 15:52
nb,6666666(雖然我還沒下載,但是喊666就對了)
作者: 無敵的UUZ大人    時間: 2019-10-30 15:37
樓主我想請問一下,為什么在有關AMG88XX的地方一條注釋都看不到???
作者: 無敵的UUZ大人    時間: 2019-10-30 17:45
樓主你好,amg88xx_write這個函數我有問題想問一下,這個函數的作用是發送數據到AMG8833中,由于需要Slave Address和內部寄存器地址,所以IIC通信采用的是復合格式,你的程序里面并沒有發送重復起始信號,主機是怎么把數據發送到AMG8833里面的?能給AMG8833寫命令嗎?
我在amg88xx_read_len這個函數里面發現了重復發送起始信號的代碼。
所以說樓上那位沒有做出來是因為單片機不能將數據寫入到與AMG8833中,初始化失敗,所以才無法讀取數據的嗎?
作者: PADFE    時間: 2019-12-3 18:18
感激不盡,最需要這個資料的時候
作者: 18077215749    時間: 2020-2-12 22:28
感謝分享
作者: onono    時間: 2020-2-24 17:14
普通的紅外測溫探頭最近都買不到了,只能買個AM8833試試了。感謝分享。
作者: 梧桐島島主    時間: 2020-4-22 10:20
感謝分享,學習了
作者: SRTAN    時間: 2020-5-11 18:35
大佬請問一下這個傳感器的波段是多少啊

作者: HJWei    時間: 2020-5-22 14:25
正好學習下
作者: abcd20084444    時間: 2020-6-27 18:00
下載看看,學習下
作者: FFF阿貍    時間: 2021-1-21 15:56
樓主,請問我只能讀一個溫度寄存器的值,怎么解決,除了0x80地址的溫度能讀取之外,其它的都讀取不了





歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 一二区视频 | 欧美精产国品一二三区 | 久久精品一区二区三区不卡牛牛 | 午夜精品久久久久久久 | 国产精品一区二区三区不卡 | 成人免费福利视频 | 久久99深爱久久99精品 | 蜜臀99久久精品久久久久小说 | 日本久久网站 | 国产黄色精品视频 | 日韩综合在线 | 欧美亚洲自拍偷拍 | 欧美日皮视频 | 天天操女人 | 国产寡妇亲子伦一区二区三区四区 | 99在线免费观看视频 | 日韩国产在线播放 | 免费一级黄色 | 一级黄片毛片 | 日本成人黄色 | 成人涩涩 | 99re国产 | 中文在线视频 | 日本成人中文字幕 | 精品福利一区 | 欧美亚洲在线观看 | 午夜aaa| 日韩亚洲在线 | 亚洲va国产va天堂va久久 | 亚洲 欧美 激情 另类 校园 | www午夜 | 国产精品一区二区不卡 | 日本在线观看网站 | 狠狠躁日日躁夜夜躁2022麻豆 | 国产乡下妇女三片 | 日韩精品三区 | 成人av一区二区三区在线观看 | av三级在线观看 | 青草久久久 | 黑人操亚洲女人 | 日韩av手机在线 |