|
FSP配置I2C引脚和参数
驱动代码修改
- #include "r_iic_master.h"
- #define DHTC12_I2C_ADDR 0x44
- static uint16_t HumA,HumB;
- i2c_master_event_t g_i2c_callback_event;
- /* Callback function */
- void i2c_master_callback(i2c_master_callback_args_t *p_args)
- {
- g_i2c_callback_event = p_args->event;
- }
- void yuyy_dhtc12_iic_init(void)
- {
- R_IIC_MASTER_Open(&g_i2c_master0_ctrl,&g_i2c_master0_cfg);
- R_IIC_MASTER_SlaveAddressSet(&g_i2c_master0_ctrl,DHTC12_I2C_ADDR,I2C_MASTER_ADDR_MODE_7BIT);
- }
- uint8_t yuyy_dhtc12_iic_senddatas(uint8_t devaddr,uint16_t regaddr,uint8_t regaddrlen,uint8_t *datas,uint8_t datalen)
- {
- fsp_err_t err = FSP_SUCCESS;
- uint8_t sdata[8] = {0},i=0;
- R_IIC_MASTER_SlaveAddressSet(&g_i2c_master0_ctrl,devaddr,I2C_MASTER_ADDR_MODE_7BIT);
- if(regaddrlen == 1)
- {
- sdata[0] = regaddr&0xFF;
- i = 1;
- }
- else if(regaddrlen == 2)
- {
- sdata[0] = (regaddr>>8)&0xFF;
- sdata[1] = regaddr&0xFF;
- i = 2;
- }
- while(i<regaddrlen+datalen)
- {
- sdata[i] = datas[i-regaddrlen];
- i++;
- }
- err = R_IIC_MASTER_Write(&g_i2c_master0_ctrl,sdata,i,false);
- i = 0;
- while ((I2C_MASTER_EVENT_TX_COMPLETE != g_i2c_callback_event) && i<3)
- {
- R_BSP_SoftwareDelay(5, BSP_DELAY_UNITS_MILLISECONDS);
- i++;
- }
- if(i == 3)
- err = FSP_ERR_TIMEOUT;
- return err;
- }
- uint8_t yuyy_dhtc12_iic_readdatas(uint8_t devaddr,uint16_t regaddr,uint8_t regaddrlen,uint8_t *datas,uint8_t datalen)
- {
- fsp_err_t err = FSP_SUCCESS;
- uint8_t sdata[2] = {0},i=0;
- R_IIC_MASTER_SlaveAddressSet(&g_i2c_master0_ctrl,devaddr,I2C_MASTER_ADDR_MODE_7BIT);
- if(regaddrlen == 1)
- {
- sdata[0] = regaddr&0xFF;
- i = 1;
- }
- else if(regaddrlen == 2)
- {
- sdata[0] = (regaddr>>8)&0xFF;
- sdata[1] = regaddr&0xFF;
- i = 2;
- }
- err = R_IIC_MASTER_Write(&g_i2c_master0_ctrl,sdata,i,true);
- i = 0;
- while ((I2C_MASTER_EVENT_TX_COMPLETE != g_i2c_callback_event) && i<3)
- {
- R_BSP_SoftwareDelay(5, BSP_DELAY_UNITS_MILLISECONDS);
- i++;
- }
- if(i == 3)
- err = FSP_ERR_TIMEOUT;
- if(err == FSP_SUCCESS)
- {
- err = R_IIC_MASTER_Read(&g_i2c_master0_ctrl,datas,datalen,false);
- i = 0;
- while ((I2C_MASTER_EVENT_RX_COMPLETE != g_i2c_callback_event) && i<3)
- {
- R_BSP_SoftwareDelay(5, BSP_DELAY_UNITS_MILLISECONDS);
- i++;
- }
- if(i == 3)
- err = FSP_ERR_TIMEOUT;
- }
- return err;
- }
- void yuyy_dhtc12_delayms(uint16_t ms)
- {
- R_BSP_SoftwareDelay(ms,BSP_DELAY_UNITS_MILLISECONDS);
- }
复制代码 运行效果
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|