首页 > 解决方案 > C STM32中指向数据缓冲区的指针

问题描述

我对C相当陌生,并且有以下问题。

我想通过 STM 32 上的 I2C 传输数据,命令是

HAL_StatusTypeDef HAL_I2C_Master_Transmit(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size, uint32_t Timeout); 

EDIT1:在每个数组元素上都有 8 位计数

这意味着数据是 8 位或 1 字节。但在代码中,我发现使用上述命令发送了一个 8 字节数组。任何人都可以帮助并解释如何以 8 位大小发送字节数据。

TxFrame[0]=0_AnalogCntIn8[HI];

TxFrame[1]=0_AnalogCntIn8[LO];

TxFrame[2]=1_AnalogCntIn8[HI];

TxFrame[3]=1_AnalogCntIn8[LO];

TxFrame[4]=2_AnalogCntIn8[HI];

TxFrame[5]=2_AnalogCntIn8[LO];

TxFrame[6]=3_AnalogCntIn8[HI];

TxFrame[7]=3_AnalogCntIn8[LO];

HAL_I2C_Master_Transmit(&hi2c2,DAC_ID,TxFrame,8,100);

标签: arraysbufferstm32

解决方案


我得到了答案。它是 I2C 的 HAL 处理程序,它根据我们在 I2C 命令中输入的数组和大小不断增加。

hi2c->pBuffPtr++;

      hi2c->XferCount--;
      hi2c->XferSize--;

推荐阅读