纬图虚拟仪器论坛

 找回密码
 立即注册
搜索
查看: 8988|回复: 2

AM2311传感器测试程序

[复制链接]
发表于 2012-8-21 14:22:23 | 显示全部楼层 |阅读模式
本程序利用Ginkgo I2C适配器底层接口函数对AM2311温湿度传感器进行读写控制,同时将读取的数据打印输出,程序代码如下:
  1. #include <stdio.h>
  2. #include <Windows.h>
  3. //定义I2C适配器底层函数的函数指针
  4. typedef int(*I2C_Funtion)(char *in,char *out);
  5. //数据存储区
  6. unsigned char inString[10240];
  7. unsigned char outString[10240];
  8. //主函数
  9. int main(void)
  10. {
  11.         // 加载DLL
  12.         HINSTANCE hDLL;    //DLL句柄
  13.         hDLL = LoadLibrary("vtfreqfunc.dll");
  14.         //获取I2C初始化函数指针地址
  15.         I2C_Funtion I2C_Init = (I2C_Funtion)GetProcAddress(hDLL,"VTIF_I2C_Init");
  16.         //获取I2C写数据函数指针地址
  17.         I2C_Funtion I2C_WriteData = (I2C_Funtion)GetProcAddress(hDLL,"VTIF_I2C_WriteData");
  18.         //获取I2C读数据函数指针地址
  19.         I2C_Funtion I2C_ReadData = (I2C_Funtion)GetProcAddress(hDLL,"VTIF_I2C_ReadData");
  20.         //获取I2C设备选择函数指针地址
  21.         I2C_Funtion I2C_SelectDevice = (I2C_Funtion)GetProcAddress(hDLL,"VTIF_I2C_SelectDevice");
  22.         //选择I2C适配器
  23.         printf("选择I2C适配器\n");
  24.         I2C_SelectDevice("0",(char*)outString);//选择I2C适配器
  25.         printf("%s\n\n",outString);//显示选择适配器操作后的字符串数据
  26.         //初始化I2C适配器
  27.         //数据格式为:“控制模式|设备地址|读写速度|子地址模式|子地址宽度|初始化通道”
  28.         printf("初始化I2C适配器\n");
  29.         I2C_Init("1|0xB8|100000|2|0|0",(char*)outString);//初始化I2C适配器
  30.         printf("%s\n\n",outString);//显示初始化后适配器返回的初始化结果字符串

  31.         //唤醒AM2311传感器(不需要实际的数据)
  32.         printf("唤醒AM2311传感器\n");
  33.         I2C_WriteData("0|0",(char*)outString);
  34.         printf("%s\n\n",outString);//显示数据写操作后的结果

  35.         //向AM2311传感器写控制数据,首字节为子地址,本适配器被初始化为无子地址模式,因此该数据无效
  36.         printf("向AM2311传感器写控制数据\n");
  37.         I2C_WriteData("0x00|0x03|0x00|0x04",(char*)outString);
  38.         printf("%s\n\n",outString);//显示数据写操作后的结果

  39.         //读取AM2311传感器所测的温度和湿度
  40.         printf("读取AM2311传感器所测的温度和湿度\n");
  41.         I2C_ReadData("0x00|8",(char*)outString);//首字节为子地址(无效数据),读取8字节数据
  42.         printf("%s\n\n",outString);//显示返回来的数据,数据格式为:“数据1|数据2|...|数据n”

  43.         FreeLibrary(hDLL);
  44.         system("pause");
  45.         return 0;
  46. }
复制代码
程序运行效果如下:
1.jpg
唤醒AM2311传感器I2C总线输出时序:
2.jpg
向AM2311写数据I2C总线输出时序:
3.jpg
向AM2311读数据I2C总线输出时序:
4.jpg
程序源码包下载(VS2010)工程: AM2311.zip (269.72 KB, 下载次数: 206)
回复

使用道具 举报

发表于 2012-12-19 01:40:13 | 显示全部楼层
我也想了解,谢谢发帖的人
回复 支持 反对

使用道具 举报

发表于 2020-2-12 20:53:09 | 显示全部楼层
嘿嘿,回个贴表明我来过。

2020年全国老板手机号码大全》介绍

   2020年全国老板手机号码大全共400万个老板手机号码,全国老板手机号码数据截止更新

日期到202018年底。全国老板手机号码数据内容有公司名称、老板姓名、 经营范围、经济

类型、地址、 邮编、手机号码、注册日期、注册资金等等 。是开放的Access数据库格式,

1张光盘。有效率在87%以上。

   2020年《全国老板手机号码大全》让您直接同公司最顶层的老板 洽谈业务,是您最好的

商务秘书和商务助手。做生意,跑业务,担心没有客户?《全国老板手机号码名录》让你直

接和企业的老总谈生意!拥有它,你就等于拥有全中国企 业、事业单位的400多万位负责人的

客户资料,你就有做不完的生意。



QQ 1217718899
回复 支持 反对

使用道具 举报

发表于 2022-11-7 19:21:13 | 显示全部楼层
讨债公司 www.zhent.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|纬图虚拟仪器

GMT+8, 2024-12-22 11:12 , Processed in 0.070210 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表