i2c - 如何获取设备地址?
问题描述
我想用 i2c 阅读触摸屏。但是当我调试这段代码时,while (I2C_GetFlagStatus(I2C1, I2C_ISR_TXIS) == RESET) 行不能工作。我该如何解决?请帮助我
void EXTI1_IRQHandler(void)
{
if (EXTI_GetITStatus((EXTI_Line1) != RESET))
{
res = touch_i2c_read(0x3C, 0x00, i2c_buffer, 22);
// printf("deneme");
if (!res)
{
}
else
{
}
EXTI_ClearITPendingBit(EXTI_Line0);
}
}
static uint32_t touch_i2c_read(uint8_t DeviceAddr, uint8_t RegAddr, uint8_t *pBuffer, uint16_t len)
{ //uint8_t deviceaddr ,0x00,(uint8_t *)&buf, sizeof(buf)
uint32_t timeout = I2C_TIMEOUT;
while (I2C_GetFlagStatus(I2C1, I2C_ISR_BUSY) != RESET)
{
if ((timeout--) == 0)
return 0;
}
I2C_TransferHandling(I2C1, DeviceAddr << 1, 1, I2C_SoftEnd_Mode, I2C_Generate_Start_Write);
/* !(!! Wait until TXIS flag is set !!! */
timeout = I2C_TIMEOUT;
while (I2C_GetFlagStatus(I2C1, I2C_ISR_TXIS) == RESET)
{
if ((timeout--) == 0)
return 0;
}
GPIO_SetBits(DEBUG_LED_PORT, DEBUG_LED_PIN);
}
解决方案
推荐阅读
- macos - 在 mac 上安装 BerkeleyDB Perl 模块时出错
- angular - combineLatest 但仅用于一次发射
- javascript - 回调函数可以是闭包吗?
- java - 运行主窗口摆动时出现异常
- amazon-web-services - 对于 Dynamodb DAX,即使有缓存命中也会收取请求费用,即从 dax 缓存中获取项目
- javascript - 如何使用 fs 从 json 文件中获取 ID
- reactjs - 语法错误 - collectionViewURL 未定义
- javascript - 如何创建一个从用户那里获取值的 java 对象?
- html - 自定义引导程序的导航栏切换器图标
- java - 设置 JTextFrame 的高度