¿No se puede acceder a los miembros de la estructura a través del puntero en una función llamada de otra función?

0

Al intentar conectar BMP180 a mi controlador STM32L4 usando librerías encontré que,

BMP180_RETURN_FUNCTION_TYPE bmp180_get_calib_param(void)

funciton llamado desde

BMP180_RETURN_FUNCTION_TYPE bmp180_init(struct bmp180_t *bmp180)

no puede acceder al miembro de la estructura a través del puntero.

El BMP180_RETURN_FUNCTION_TYPE bmp180_init(struct bmp180_t *bmp180) toma la dirección de la estructura y la asigna a un puntero, static struct bmp180_t *p_bmp180; declarado globalmente en bmp180.c.  Por ejemplo: p_bmp180->calib_param.ac1 =(something) no realiza ningún cambio en el miembro de la estructura, mientras que cambia en la función init ( BMP180_RETURN_FUNCTION_TYPE bmp180_init(struct bmp180_t *bmp180) ), donde la dirección de la estructura se recibe de bmp180_support.c.

¿Cuál podría ser una razón para esto y cómo resolverlo? El IDE utilizado es KeilMDK-V5.

    
pregunta Arun Joe

2 respuestas

0

Esto sucedió porque el nivel de optimización en el opciones de proyecto en el Keil-MDK se estableció en el nivel 3, cuando lo bajé al nivel 1, todo funcionó bien; no había nada mal con el código.

    
respondido por el Arun Joe
0
  

BMP180_RETURN_FUNCTION_TYPE bmp180_init (struct bmp180_t * bmp180) toma la dirección de la estructura y la asigna a un puntero, estructura estática bmp180_t * p_bmp180;

La sintaxis es incorrecta.

    
respondido por el dannyf

Lea otras preguntas en las etiquetas