我为I2C协议编写了驱动程序,目标微控制器是STM32F413ZH。不要问我为什么要写我自己的驱动程序(这是项目要求)。
我希望创建简单的公共API返回错误状态,但我不知道是否可以同时发生多个I2C错误。如果是的话,我的API不能只返回单个枚举类型,但是它应该返回一些更复杂的内容,比如由bool类型的位字段组成的结构或其他什么东西。
总之,主要的问题是:
可以同时(同时)发生多个I2C错误吗?
发布于 2021-03-02 11:45:08
I2C错误的数量是有限的(受状态寄存器中位数的限制)。
I2C硬件可以升起多个标志,所以我通常使用位进行特定的错误枚举。
typedef enum
{
I2C_OK = 0,
I2C_ERROR1 = 1 << 0,
I2C_ERROR2 = 1 << 1,
I2C_ERROR3 = 1 << 2,
I2C_ERROR4 = 1 << 3,
/* other */
}I2C_ERRORS_ENUMS;https://stackoverflow.com/questions/66437565
复制相似问题