23度26分! 发表于 2017-9-29 22:02:01

I2C发送数据的问题

大家好:
我用STM32cubeMX进行初始化设置,I2C2初始化后,不知道如何发送数据,搜索发现下面函数是主模式的发送函数,但是好奇怪,不太清楚这个函数该怎么写?还请大神指导一下。
我是对一个LED驱动芯片进行通讯的。8位传输,每次发送的数据2到5组不等。

HAL_StatusTypeDef HAL_I2C_Master_Transmit_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size)


23度26分! 发表于 2017-10-3 18:06:17

请各位大神指导:):)

ctang 发表于 2018-1-11 09:29:36

参考文章源代码http://blog.csdn.net/tclxspy/article/details/77530929

infofans 发表于 2018-1-11 10:13:17

void Single_WriteI2C(uint8_t *data,uint16_t len)
{
        while(HAL_I2C_Master_Transmit(&hi2c3,SlaveAddress,data,len,1000) != HAL_OK)
        {
                if (HAL_I2C_GetError(&hi2c3) != HAL_I2C_ERROR_AF)
                {
                        Error_Handler();
                }
        }
}
稍微改改就可以。

infofans 发表于 2018-1-11 10:15:03

我用的是I2C3轮询模式,可以参考下。:P

nyszx 发表于 2018-1-11 13:36:20

楼主是不清楚I2C是怎么发送数据的,还是指怎么用库函数发送数据呀,楼主贴的不是中断方式发送函数吗,在驱动帮助里面有xxx_User_Manual.chm,里面很方便查找各个函数,看了有三种发送模式(轮询、DMA、中断):
HAL_I2C_Master_Transmit、 HAL_I2C_Master_Transmit_DMA、 HAL_I2C_Master_Transmit_IT


页: [1]
查看完整版本: I2C发送数据的问题