void bsp_i2c_init()
{
wm_i2c_div_low8_bit_t un_i2c_low8;
un_i2c_low8.clk_div=79;
wm_i2c_div_high8_bit_t un_i2c_high8;
un_i2c_high8.clk_div=79;
wm_i2c_ctrl_t un_i2c_ctrl;
un_i2c_ctrl.ctrl_enable=1;
wm_i2c_reg_t reg_wm_i2c;
reg_wm_i2c.low8bit=un_i2c_low8;
reg_wm_i2c.high8bit=un_i2c_high8;
reg_wm_i2c.ctrl=un_i2c_ctrl;
wm_hal_i2c_dev_t wm_hal_i2c_dev;
wm_hal_i2c_dev.ctx=0;
memcpy(&wm_hal_i2c_dev.reg,®_wm_i2c,sizeof(wm_i2c_reg_t));
wm_hal_i2c_config_t wm_hal_i2c_config;
wm_hal_i2c_config.addr_bits=7;
wm_hal_i2c_config.speed=WM_I2C_SPEED_STANDARD;
int flag=wm_hal_i2c_init(&wm_hal_i2c_dev,&wm_hal_i2c_config);
printf("wm_hal_i2c_init=%dn",flag);
uint8_t buf[10]={0x00};
flag=wm_hal_i2c_tx_polling(&wm_hal_i2c_dev,I2C_ADDR,buf,1,0,10);
printf("wm_hal_i2c_tx_polling=%dn",flag);
flag=wm_hal_i2c_rx_polling(&wm_hal_i2c_dev,I2C_ADDR,buf,1,0,10);
printf("wm_hal_i2c_rx_polling=%dn",flag);
}//下面是sdk函數我加了個printf
int wm_hal_i2c_init(wm_hal_i2c_dev_t dev, wm_hal_i2c_config_t cfg)
{
wm_hal_i2c_ctx_t *ctx;
WM_HAL_I2C_CHECK_PARAM(dev && cfg && cfg->ref_clock > 0 && cfg->addr_bits == 7);
if (dev->ctx) {
printf("ctx=%dn",dev->ctx);
/initialized before/
WM_HAL_I2C_TRACE_FAIL();
return WM_ERR_ALREADY_INITED;
}//在init函數傳參的wm_hal_i2c_dev.ctx=NULL;
函數已經賦值為空了但是為什麼printf出來的是2啊
ctx=2