
STM32如何分配原理图IO
利用STM32MP1和STM32MP2为嵌入式Linux提供有效的安全措施:供当今决策者参考的3条宝贵经验
有奖直播 | STM32MP2x 资源隔离架构 (RIF) 介绍与使用
STM32ADC过采样及几种ADC采样的处理方法
分享一个STM32L031的串口调试程序
白皮书下载|边缘 AI 变革:MCU集成 NPU 的破局与领航
OpenSTLinux:为STM32 MPU生态系统带来超强助力
【STM32MP257】轻松搭建A35 Linux编译及调试环境
【STM32MP257】🥳STM32MP257-DK-开发板开箱体验
【STM32MP157】从ST官方例程中分析RPMsg-TTY/SDB核间通信的使用方法
当然可以了。
{
uint8_t data[1];
HAL_Delay(50);
HAL_I2C_Mem_Read(&hi2c2, DevAddress, MemAddress, I2C_MEMADD_SIZE_8BIT, data, 1, 500);
return data[0];
}
不通过DM A或者中断,直接这样在while中读取
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
data2[0]=i2c_read(0x68,0x75,1,data1);
HAL_Delay(5);
}
中读不出数来,是为啥那,楼主帮忙解决解决,谢谢
我看有些列子写了 有些没有写
uint8_t REG_data;
while(HAL_I2C_Master_Transmit(&hi2cx,SlaveAddress,®_Address,1,5000) != HAL_OK)
{
if(HAL_I2C_GetError(&hi2cx) != HAL_I2C_ERROR_AF)
{}
}
if(HAL_I2C_Master_Receive(&hi2cx,SlaveAddress+1,®_data,1,5000) != HAL_OK)
{
if(HAL_I2C_GetError(&hi2cx) != HAL_I2C_ERROR_AF)
{}
}
//**************************************
//从I2C设备读取一个字节数据
//**************************************
uint8_t Single_ReadI2C(uint8_t REG_Address)
{
uint8_t REG_data;
while(HAL_I2C_Master_Transmit(&hi2c1,MPU6050_DEFAULT_ADDRESS,®_Address,1,5000) != HAL_OK)
{
if(HAL_I2C_GetError(&hi2c1) != HAL_I2C_ERROR_AF)
{}
}
if(HAL_I2C_Master_Receive(&hi2c1,MPU6050_DEFAULT_ADDRESS+1,®_data,1,5000) != HAL_OK)
{
if(HAL_I2C_GetError(&hi2c1) != HAL_I2C_ERROR_AF)
{}
}
return REG_data;
}
好久之前的,找不到了。