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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2735|回復: 1
打印 上一主題 下一主題
收起左側

使用模擬iic_MAX30102_for_stm32源程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:307931 發表于 2018-12-22 16:55 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  1. #define max30102_WR_address 0xAE

  2. u8 max30102_Bus_Write(u8 Register_Address, u8 Word_Data)
  3. {

  4.         /* 采用串行EEPROM隨即讀取指令序列,連續讀取若干字節 */

  5.         /* 第1步:發起I2C總線啟動信號 */
  6.         i2c_Start();

  7.         /* 第2步:發起控制字節,高7bit是地址,bit0是讀寫控制位,0表示寫,1表示讀 */
  8.         i2c_SendByte(max30102_WR_address | I2C_WR);        /* 此處是寫指令 */

  9.         /* 第3步:發送ACK */
  10.         if (i2c_WaitAck() != 0)
  11.         {
  12.                 goto cmd_fail;        /* EEPROM器件無應答 */
  13.         }

  14.         /* 第4步:發送字節地址 */
  15.         i2c_SendByte(Register_Address);
  16.         if (i2c_WaitAck() != 0)
  17.         {
  18.                 goto cmd_fail;        /* EEPROM器件無應答 */
  19.         }
  20.         
  21.         /* 第5步:開始寫入數據 */
  22.         i2c_SendByte(Word_Data);

  23.         /* 第6步:發送ACK */
  24.         if (i2c_WaitAck() != 0)
  25.         {
  26.                 goto cmd_fail;        /* EEPROM器件無應答 */
  27.         }

  28.         /* 發送I2C總線停止信號 */
  29.         i2c_Stop();
  30.         return 1;        /* 執行成功 */

  31. cmd_fail: /* 命令執行失敗后,切記發送停止信號,避免影響I2C總線上其他設備 */
  32.         /* 發送I2C總線停止信號 */
  33.         i2c_Stop();
  34.         return 0;
  35. }



  36. u8 max30102_Bus_Read(u8 Register_Address)
  37. {
  38.         u8  data;


  39.         /* 第1步:發起I2C總線啟動信號 */
  40.         i2c_Start();

  41.         /* 第2步:發起控制字節,高7bit是地址,bit0是讀寫控制位,0表示寫,1表示讀 */
  42.         i2c_SendByte(max30102_WR_address | I2C_WR);        /* 此處是寫指令 */

  43.         /* 第3步:發送ACK */
  44.         if (i2c_WaitAck() != 0)
  45.         {
  46.                 goto cmd_fail;        /* EEPROM器件無應答 */
  47.         }

  48.         /* 第4步:發送字節地址, */
  49.         i2c_SendByte((uint8_t)Register_Address);
  50.         if (i2c_WaitAck() != 0)
  51.         {
  52.                 goto cmd_fail;        /* EEPROM器件無應答 */
  53.         }
  54.         

  55.         /* 第6步:重新啟動I2C總線。下面開始讀取數據 */
  56.         i2c_Start();

  57.         /* 第7步:發起控制字節,高7bit是地址,bit0是讀寫控制位,0表示寫,1表示讀 */
  58.         i2c_SendByte(max30102_WR_address | I2C_RD);        /* 此處是讀指令 */

  59.         /* 第8步:發送ACK */
  60.         if (i2c_WaitAck() != 0)
  61.         {
  62.                 goto cmd_fail;        /* EEPROM器件無應答 */
  63.         }

  64.         /* 第9步:讀取數據 */
  65.         {
  66.                 data = i2c_ReadByte();        /* 讀1個字節 */

  67.                 i2c_NAck();        /* 最后1個字節讀完后,CPU產生NACK信號(驅動SDA = 1) */
  68.         }
  69.         /* 發送I2C總線停止信號 */
  70.         i2c_Stop();
  71.         return data;        /* 執行成功 返回data值 */

  72. cmd_fail: /* 命令執行失敗后,切記發送停止信號,避免影響I2C總線上其他設備 */
  73.         /* 發送I2C總線停止信號 */
  74.         i2c_Stop();
  75.         return 0;
  76. }


  77. void max30102_FIFO_Read(u8 Register_Address,u16  Word_Data[][2],u8 count)
  78. {
  79.         u8 i=0;
  80.         u8 no = count;
  81.         u8 data1, data2;
  82.         /* 第1步:發起I2C總線啟動信號 */
  83.         i2c_Start();

  84.         /* 第2步:發起控制字節,高7bit是地址,bit0是讀寫控制位,0表示寫,1表示讀 */
  85.         i2c_SendByte(max30102_WR_address | I2C_WR);        /* 此處是寫指令 */

  86.         /* 第3步:發送ACK */
  87.         if (i2c_WaitAck() != 0)
  88.         {
  89.                 goto cmd_fail;        /* EEPROM器件無應答 */
  90.         }

  91.         /* 第4步:發送字節地址, */
  92.         i2c_SendByte((uint8_t)Register_Address);
  93.         if (i2c_WaitAck() != 0)
  94.         {
  95.                 goto cmd_fail;        /* EEPROM器件無應答 */
  96.         }
  97.         

  98.         /* 第6步:重新啟動I2C總線。下面開始讀取數據 */
  99.         i2c_Start();

  100.         /* 第7步:發起控制字節,高7bit是地址,bit0是讀寫控制位,0表示寫,1表示讀 */
  101.         i2c_SendByte(max30102_WR_address | I2C_RD);        /* 此處是讀指令 */

  102.         /* 第8步:發送ACK */
  103.         if (i2c_WaitAck() != 0)
  104.         {
  105.                 goto cmd_fail;        /* EEPROM器件無應答 */
  106.         }

  107.         /* 第9步:讀取數據 */
  108.         while (no)
  109.         {
  110.                 data1 = i2c_ReadByte();        
  111.                 i2c_Ack();
  112.                 data2 = i2c_ReadByte();
  113.                 i2c_Ack();
  114.                 Word_Data[i][0] = (((u16)data1 << 8) | data2);  //

  115.                
  116.                 data1 = i2c_ReadByte();        
  117.                 i2c_Ack();
  118.                 data2 = i2c_ReadByte();
  119.                 if(1==no)
  120.                         i2c_NAck();        /* 最后1個字節讀完后,CPU產生NACK信號(驅動SDA = 1) */
  121.                 else
  122.                         i2c_Ack();
  123.                 Word_Data[i][1] = (((u16)data1 << 8) | data2);

  124.                 no--;        
  125.                 i++;
  126.         }
  127.         /* 發送I2C總線停止信號 */
  128.         i2c_Stop();

  129. cmd_fail: /* 命令執行失敗后,切記發送停止信號,避免影響I2C總線上其他設備 */
  130.         /* 發送I2C總線停止信號 */
  131.         i2c_Stop();
  132. }

  133. #define INTERRUPT_REG                                          0X00
復制代碼
全部資料51hei下載地址:
使用模擬iic_MAX30102_for_stm32.7z (371.91 KB, 下載次數: 39)

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發
ID:430342 發表于 2020-2-11 16:34 | 只看該作者
樓主在嗎?這個程序里FIFO里的樣本數據只能讀前3位,后3位讀不了。你出現了這個情況嗎?
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 人人草人人干 | 在线观看av网站 | 欧美性生活网 | 欧美一级毛片久久99精品蜜桃 | 成人在线免费观看 | 国产精品精品视频一区二区三区 | 亚洲国产精品一区二区久久 | 国产成人免费视频网站视频社区 | 国产精品91久久久久久 | 中文字幕亚洲欧美日韩在线不卡 | 久久99精品久久久久久国产越南 | 久久久久免费 | 欧美日韩午夜精品 | 国产精品久久精品 | www四虎影视| 成人精品一区二区三区中文字幕 | 国产精品亚洲片在线播放 | 日韩三级在线观看 | 国产精品一区二区久久久久 | 亚洲精品免费在线 | 日韩免费一区 | 日韩一区二区在线视频 | 日韩伦理一区二区 | 日韩性在线 | 成人精品一区亚洲午夜久久久 | 成人精品视频免费 | 久久一区二区三区免费 | 韩日有码| 国精久久 | 91在线观看网址 | 久久国产一区 | 欧美h视频 | 亚洲精品国产电影 | 成人午夜免费在线视频 | 性生生活大片免费看视频 | av网站免费看 | 超碰精品在线 | 日本久久久久久久久 | 日韩在线成人 | 狠狠视频 | 在线观看日韩精品视频 |