Hi @Harry_Zhang ,
Thanks for your response.
I have other sensor modules that are working with non-blocking calls.
I am using a BMP390 sensor, and the I²C communication works fine with non-blocking calls. For example, if one of the register addresses is 0x01, I assign the subaddress as shown below:
masterXfer.subaddress = (uint32_t)0x01;
However, for the DAC (MCP47FEB21A0) module, the subaddress is assigned differently:
uint8_t subAddress;
subAddress = (uint8_t)(reg_addr << 3); // Based on the MCP47FEB21A0 datasheet, the register address must be shifted left by 3
masterXfer.subaddress = (uint32_t)subAddress;
Is it going to make any difference?
Regards,
San