初级会员

- 积分
- 122
- 金钱
- 122
- 注册时间
- 2022-4-24
- 在线时间
- 42 小时
|
1金钱
代码如下,主要是接收函数返回了timeout,发送正常,请问这是什么原因?用f429的板子
#include "main.h"
#include "PCF8574T.h"
I2C_HandleTypeDef hi2c2;
UART_HandleTypeDef huart1;
UART_HandleTypeDef huart2;
void SystemClock_Config(void);
static void MX_GPIO_Init(void);
static void MX_I2C2_Init(void);
static void MX_USART1_UART_Init(void);
static void MX_USART2_UART_Init(void);
int main(void)
{
HAL_StatusTypeDef ret;
uint8_t buf[12];
uint8_t tx_buff[8] = {0x01,0x03,0x00,0x00,0x00,0x01,0x84,0x0A};
// float out_buff[9];
uint8_t rx_buff[100];
// int lenth,i;//前一个为输出长度 后一个为循环启示位
// float data_H16,data_L16,data_10,data,Res;//分别为16进制和10进制数据
// int lenth1=0;//输出数组的首位
// lenth=rx_buff[2];//判断几个输出数据
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_I2C2_Init();
MX_USART1_UART_Init();
MX_USART2_UART_Init();
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
buf[0]=0xFB; // PCG8574T P6 = 1 发送模式 1111 1011 其他引脚保持空闲默认状态
ret=HAL_I2C_Master_Transmit(&hi2c2, PCF8574_ADDR, buf, 1, 100);
// if(ret != HAL_OK)
// HAL_UART_Transmit(&huart1, "I2C send Error!", 16, 100);
HAL_UART_Transmit(&huart2, tx_buff, 7, 100);
// if(HAL_UART_Transmit(&huart2, tx_buff, 7, 100)== HAL_OK)
// HAL_UART_Transmit(&huart1, tx_buff, 7, 100);
//
// HAL_Delay(200);
buf[0]=0xBB; // PCG8574T P6 = 0 接收模式 1011 1011 其他引脚保持空闲默认状态
ret=HAL_I2C_Master_Transmit(&hi2c2, PCF8574_ADDR, buf, 1, 100);
// if(ret != HAL_OK)
// HAL_UART_Transmit(&huart1, "I2C send Error!", 16, 100);
if(HAL_UART_Receive(&huart2, rx_buff, 30,100) == HAL_OK)
HAL_UART_Transmit(&huart1, rx_buff, 30, 100);
HAL_Delay(500);
}
|
|