数字通信中的I2C与CAN技术详解
1. I2C通信
1.1 I2C通信代码示例
以下是一段I2C通信的代码示例,包含主设备和从设备的代码:
// 主设备和从设备的全局变量定义
uint8_t masterTxData = 0;
uint8_t masterRxData = 0;
#ifdef SLAVE
DigitalOut greenLED(LED1);
I2CSlave i2c(PC_9, PA_8); // i2c3
uint8_t slaveTxData = 0;
uint8_t slaveRxData = 0;
#endif
#define SLAVEADDRESS 80
int main()
{
i2c.frequency(100000);
#ifdef SLAVE
i2c.address(SLAVEADDRESS);
#endif
while (true)
{
#ifdef MASTER
masterTxData++;
i2c.write(SLAVEADDRESS , (const char *)(&masterTxData), 1, false);
i2c.read(SLAVEADDRESS , (char *)(&masterRxData), 1);
if ((masterRxData % 5) == 0)
redLED = !redLED;
thread_sleep_for(WAIT_TIME_MS);
#endif
#ifdef SLAVE
数字通信中I2C与CAN技术详解
超级会员免费看
订阅专栏 解锁全文
1万+

被折叠的 条评论
为什么被折叠?



