先生,你好,
我正在研究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我正在得到输出,但在对话框模块的情况下。
感谢致敬
嗨rajn22,
谢谢mt_dialog.