OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4285|回复: 0

f429 为什么接收不到数据 使用的是rs485

[复制链接]

4

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
122
金钱
122
注册时间
2022-4-24
在线时间
42 小时
发表于 2022-5-28 18:10:05 | 显示全部楼层 |阅读模式
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);
     }
  

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-25 18:38

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表