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