我正在用 gcc 编译器为 STM32 编写 C 代码,我尝试了建议。我通过 i2c.h 定义从 i2c.c 调用函数。可能是我在那里弄错了。感谢您的评论。
(i2c.h)
#define Chip_TxBurst(wREG, wCNT, pbDATA) \
I2C_TxBurst((0xC0) | (((wREG) >> 7) & 0x1E), (wREG), (wCNT), (pbDATA))
Run Code Online (Sandbox Code Playgroud)
(i2c.c)
void I2C_TxBurst (
uint16_t bSLA, /* I2C slave address */
uint16_t bREG, /* I2C sub-address */
uint16_t bCNT, /* The number of data which will be transmitted */
uint8_t *pbDATA /* Point to the first DATA item */
)
{
uint8_t bIdx;
for (bIdx = 0; bIdx < bCNT; bIdx++)
{
I2C_TxData(pbDATA[bIdx]); …Run Code Online (Sandbox Code Playgroud)