⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
2个帖子/ 0新
最后一篇
Rajan22.
离线
最后一次露面:1年5个月前
加入:2017-12-29 05:09
寻找API.

先生,你好,
我正在研究IoT设备,其中我添加了几种不同类型的设备,因为它,我需要不同的不同协议。由于缺乏文件,我无法完成任务。
我有一个问题列表.TRY帮助我。
1)我可以拥有API文档吗?如果是,请为我提供链接。
2)我想添加几个驱动程序。在哪里进行更改以及如何链接到其他文件。
3)我正在使用I2C启用的IMU6050传感器。安装完成但无法读取数据。查看以下代码....

int main(空白)
{
system_init();
periph_init();

i2c_eeprom_init(0x68,i2c_fast,i2c_7bit_addr,i2c_1byte_addr);
printf_string(“步骤1启动\ r \ n”);
i2c_error_code retcode = i2c_eeprom_write_byte(smplrt_div,0x07);
check_error(转码);
printf_string(“步骤1结束\ r \ n \ n \ r \ n”);
i2c_eeprom_release();

i2c_eeprom_init(0x68,i2c_fast,i2c_7bit_addr,i2c_1byte_addr);
printf_string(“步骤2启动\ r \ n”);
RetCode = I2C_EEPROM_WRITE_BYTE(PWR_MGMT_1,0x01);
check_error(转码);
printf_string(“步骤2结束\ r \ n \ n \ n \ n”);
i2c_eeprom_release();

i2c_eeprom_init(0x68,i2c_fast,i2c_7bit_addr,i2c_1byte_addr);
printf_string(“步骤3启动\ r \ n”);
RetCode = I2C_EEPROM_WRITE_BYTE(CONFIG,0x00);
check_error(转码);
printf_string(“步骤3结束\ r \ n \ r \ n”);
i2c_eeprom_release();

i2c_eeprom_init(0x68,i2c_fast,i2c_7bit_addr,i2c_1byte_addr);
printf_string(“步骤4启动\ r \ n”);
RetCode = I2C_EEPROM_WRITE_BYTE(GYRO_CONFIG,0x18);
check_error(转码);
printf_string(“步骤4结束\ r \ n \ n \ n \ n”);
i2c_eeprom_release();

i2c_eeprom_init(0x68,i2c_fast,i2c_7bit_addr,i2c_1byte_addr);
printf_string(“步骤5启动\ r \ n”);
RetCode = I2C_EEPROM_WRITE_BYTE(INT_ENABLE,0x01);
check_error(转码);
printf_string(“步骤5结束\ r \ n \ n \ n \ n”);
i2c_eeprom_release();

printf_string(“**************传感器设置完成***************** \ r \ n \ n \ n”);

i2c_eeprom_init(0x68,i2c_fast,i2c_7bit_addr,i2c_1byte_addr);
RetCode = I2C_EEPROM_READ_BYTE(GYRO_XOUT_H,&BYTE);
check_error(转码);
i2c_eeprom_release();

Sprintf(Buff,“数据是:%d”,byte);
printf_string(buff);

而(1);
}

void system_init(void)
{
setword16(clk_amba_reg,0x00);//设置时钟(HCLK和PCLK)16MHz
setword16(set_freeeze_reg,frz_wdog);//停止观看狗
SetBits16(Sys_ctrl_reg,pad_latch_en,1);//打开垫
setbits16(sys_ctrl_reg,debugger_enable,1);//打开调试器
setBits16(PMU_CTRL_REG,PERIPH_SLEEP,0);//退出外围电源
}

void check_error(i2c_error_code代码)
{
开关(代码)
{
case i2c_no_error:
printf_string(“i2c_no_error \ r \ n”);
休息;

案例I2C_7B_ADDR_NOACK_ERROR:
printf_string(“i2c_7b_addr_noack_error \ r \ n”);
休息;

case i2c_invalid_eeprom_address:
printf_string(“i2c_7b_addr_noack_error \ r \ n”);
休息;
}
}

*************************上面的销量****************************
串口COM14打开
第1步开始
i2c_no_error.
步骤1结束

第2步开始
i2c_no_error.
第2步结束

第3步开始
i2c_no_error.
第3步结束

第4步开始
i2c_no_error.
第4步结束

第5步开始
i2c_no_error.
第5步结束

**************设置完成*****************

i2c_no_error.
数据是:0

我在下面的链接中写了代码。
http://www.electronicwings.com/avr-atmega/mpu6050-gyroscope-acceleromete ...

我的情况是AVR Atmega16我正在得到输出,但在对话框模块的情况下。

感谢致敬

设备:
mt_dialog.
离线
最后一次露面:2个月6天前
职员
加入:2015-06-08 11:34
嗨rajn22,

嗨rajn22,

  1. 关于什么的API文件?i2c api自从我看到你粘贴的代码与i2c模块有关吗?您将找到有关I2C API的文档,可用于在第10.11段中的UM-B-079 SDK 6软件平台参考中接通EEPROM I2C。
  2. 你的第二个问题是非常通用的,你是什么意思在哪里做出改变以及如何链接?您可以创建新的.c和.h文件在keil中添加它们,在keil中添加.c文件从keil中添加.c文件,并使用“目标选项”中添加的.h文件“中的”C / C ++选项“ - >”C / C ++“ - >>> inlcude路径。
  3. 关于您无法读取数据的事实,您是否在I2C总线上看到了操作?您是否有分析仪捕获以提供检查问题?

谢谢mt_dialog.