STM32MP1 自举程序编程:USB DFU/USART 协议全解析
STM32大神笔记,超详细单片机学习汇总资料
实战经验 | 如何配置STM32MP257的RMII Switch
简单实用!STM32硬件错误的调试技巧
OpenSTLinux 6.1发布:M33-TD加持+安全升级,STM32MPU开发效率翻倍!
STM32MP135 MP157 MP257 CoreMark移植&&跑分对比&&多核心负载不均衡问题排查与解决
STM32系列芯片之间相互移植注意事项
STM32如何成为现代科技的隐形引擎
STM32--STM32 微控制器详解
大神都是怎么学习STM32的,我也跟着学
微信公众号
手机版
当然可以了。
{% u! y1 u1 [* ^$ ~& }
uint8_t data[1];8 v( S' g7 S1 @; g# n, Y9 D
HAL_Delay(50);3 V. K# r7 I# |& x9 {
HAL_I2C_Mem_Read(&hi2c2, DevAddress, MemAddress, I2C_MEMADD_SIZE_8BIT, data, 1, 500);
return data[0];
}
不通过DM A或者中断,直接这样在while中读取* e) f. m q5 r, L3 U6 M; c/ J9 o
while (1)
{1 i3 W q& \* a$ N* X. D
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
data2[0]=i2c_read(0x68,0x75,1,data1);
HAL_Delay(5);3 q \! O: f3 D, v2 F* Y, V
/ k4 E5 F. L: L6 r1 n
}. H2 L+ p8 U, t* e1 g4 O- K3 ^. a
中读不出数来,是为啥那,楼主帮忙解决解决,谢谢
我看有些列子写了 有些没有写
7 r/ I# d3 I' f/ K" f2 ~6 F
uint8_t REG_data;; o0 F% G$ o. Y: d
while(HAL_I2C_Master_Transmit(&hi2cx,SlaveAddress,®_Address,1,5000) != HAL_OK)% m: U; F. o3 O9 b o" q
{
if(HAL_I2C_GetError(&hi2cx) != HAL_I2C_ERROR_AF)
{}
}
if(HAL_I2C_Master_Receive(&hi2cx,SlaveAddress+1,®_data,1,5000) != HAL_OK)) ?7 k$ A4 v4 w' E( `* L- X
{
if(HAL_I2C_GetError(&hi2cx) != HAL_I2C_ERROR_AF)
{}
}
//**************************************
//从I2C设备读取一个字节数据
//**************************************& R7 L; I4 g# ^5 I2 W% r
uint8_t Single_ReadI2C(uint8_t REG_Address), ?0 w# I2 n4 t
{
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)
{5 S" {% d- i1 N# O! r0 Z
if(HAL_I2C_GetError(&hi2c1) != HAL_I2C_ERROR_AF)% m. C1 ^1 l7 p ]$ K; q; D3 L! D
{}
}
return REG_data;* Q' s7 E4 y' S6 Q
}1 Z8 F6 {1 U7 D7 I" Q7 r5 Q! `
好久之前的,找不到了。