CI多表查询(主从表)查询一个值

		$this->load->model('where_model');
		$sql = array('table'=>$this->table, 'where'=> array('id'=> $id,));
		//主从表查询
		$this->db->join('member_data', 'member_data.member_id = member.id');
		$export = $this->where_model->where($sql,FALSE);

CI多表查询(主从表)查询一个值

http://www.hx110.com

以下是TC264使用I2C实现主从通信的示例代码(包含中文注释): 主设备代码: ```c #include "xmc_gpio.h" #include "xmc_i2c.h" #define I2C_SLAVE_ADDR 0x50 void i2c_init(void) { XMC_I2C_CH_CONFIG_t i2c_config = { .baudrate = 100000, // I2C的时钟频率 .address_mode = XMC_I2C_CH_ADDR_MODE_7BIT, // 地址模式 .acknowledge_mode = XMC_I2C_CH_ACKNOWLEDGE, // 应答模式 .digital_filter = XMC_I2C_CH_DIGITAL_FILTER_DISABLED // 数字滤波器 }; XMC_I2C_CH_Init(XMC_I2C0_CH0, &i2c_config); // 初始化I2C通道 XMC_I2C_CH_SetSlaveAddress(XMC_I2C0_CH0, I2C_SLAVE_ADDR); // 设置从设备地址 XMC_I2C_CH_EnableEvent(XMC_I2C0_CH0, XMC_I2C_CH_EVENT_RECEIVE); // 启用接收事件 XMC_I2C_CH_EnableEvent(XMC_I2C0_CH0, XMC_I2C_CH_EVENT_TRANSMIT); // 启用发送事件 XMC_I2C_CH_Start(XMC_I2C0_CH0); // 启动I2C通道 } int main(void) { uint8_t data[2] = {0x01, 0x02}; // 待写入的数据 uint8_t read_data[2]; // 读取的数据 i2c_init(); // 初始化I2C总线 XMC_I2C_CH_MasterTransmit(XMC_I2C0_CH0, I2C_SLAVE_ADDR, data, 2, XMC_I2C_CH_CMD_START | XMC_I2C_CH_CMD_STOP); // 向从设备发送数据 XMC_I2C_CH_MasterReceive(XMC_I2C0_CH0, I2C_SLAVE_ADDR, read_data, 2, XMC_I2C_CH_CMD_START | XMC_I2C_CH_CMD_STOP); // 从从设备接收数据 return 0; } ``` 从设备代码: ```c #include "xmc_gpio.h" #include "xmc_i2c.h" #define I2C_SLAVE_ADDR 0x50 void i2c_init(void) { XMC_I2C_CH_CONFIG_t i2c_config = { .baudrate = 100000, // I2C的时钟频率 .address_mode = XMC_I2C_CH_ADDR_MODE_7BIT, // 地址模式 .acknowledge_mode = XMC_I2C_CH_ACKNOWLEDGE, // 应答模式 .digital_filter = XMC_I2C_CH_DIGITAL_FILTER_DISABLED, // 数字滤波器 .slave_address = I2C_SLAVE_ADDR // 从设备地址 }; XMC_I2C_CH_Init(XMC_I2C0_CH0, &i2c_config); // 初始化I2C通道 XMC_I2C_CH_SetInterruptNodePointer(XMC_I2C0_CH0, XMC_I2C_CH_EVENT_SLAVE_RECEIVE | XMC_I2C_CH_EVENT_SLAVE_TRANSMIT, 0); // 设置中断节点 XMC_I2C_CH_EnableEvent(XMC_I2C0_CH0, XMC_I2C_CH_EVENT_SLAVE_RECEIVE); // 启用接收事件 XMC_I2C_CH_EnableEvent(XMC_I2C0_CH0, XMC_I2C_CH_EVENT_SLAVE_TRANSMIT); // 启用发送事件 XMC_I2C_CH_Start(XMC_I2C0_CH0); // 启动I2C通道 } int main(void) { uint8_t data[2]; // 接收的数据 i2c_init(); // 初始化I2C总线 while(1) { if(XMC_I2C_CH_GetEventStatus(XMC_I2C0_CH0) & XMC_I2C_CH_EVENT_SLAVE_RECEIVE) // 接收事件 { XMC_I2C_CH_ClearEventStatusFlag(XMC_I2C0_CH0, XMC_I2C_CH_EVENT_SLAVE_RECEIVE); // 清除接收事件标志 XMC_I2C_CH_MasterTransmit(XMC_I2C0_CH0, I2C_SLAVE_ADDR, data, 2, XMC_I2C_CH_CMD_START | XMC_I2C_CH_CMD_STOP); // 发送数据 } if(XMC_I2C_CH_GetEventStatus(XMC_I2C0_CH0) & XMC_I2C_CH_EVENT_SLAVE_TRANSMIT) // 发送事件 { XMC_I2C_CH_ClearEventStatusFlag(XMC_I2C0_CH0, XMC_I2C_CH_EVENT_SLAVE_TRANSMIT); // 清除发送事件标志 XMC_I2C_CH_MasterReceive(XMC_I2C0_CH0, I2C_SLAVE_ADDR, data, 2, XMC_I2C_CH_CMD_START | XMC_I2C_CH_CMD_STOP); // 接收数据 } } } ``` 在上面的示例代码中,我们首先调用`i2c_init()`函数初始化I2C总线,然后在主设备代码中使用`XMC_I2C_CH_MasterTransmit()`函数向从设备发送数据,从设备代码中在`while(1)`循环中通过检查接收和发送事件标志来实现数据的接收和发送。注意,在这个示例中,我们使用了从设备地址为0x50,你需要根据你的实际情况修改这个
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值