櫰進。 2023-02-23 15:55 采纳率: 0%
浏览 147
已结题

rs485自动收发通信程序

#32驱动RS485,没有反应,硬件电路设计的是自动收发的电路,有没有人知道,该如何配置这种情况的串口?

USART_SendData(USART3,0x0d);
    while(USART_GetFlagStatus(USART3,USART_FLAG_TXE) == RESET);

void usart_485_init(void)
{    
    USART_InitTypeDef USART_InitStructure;
    NVIC_InitTypeDef   NVIC_InitStructure;
    GPIO_InitTypeDef   GPIO_InitStructure;
    
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3,ENABLE);
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);        //打开USART1的时钟
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); 
    
    /*USART3_TX -> PB10 , USART3_RX -> PB11 ,  PB10,低电平进入发送模式,高电平进入接收模式
    当TX高电平,mos管导通,RE和DE引脚接地,进入接收模式。当TX低电平,mos管截止,RE和DE引脚接高电平,进入发送模式*/
    GPIO_InitStructure.GPIO_Mode     = GPIO_Mode_AF_PP;
    GPIO_InitStructure.GPIO_Pin     = GPIO_Pin_10;
    GPIO_InitStructure.GPIO_Speed     = GPIO_Speed_50MHz;    
    GPIO_Init(GPIOB,&GPIO_InitStructure);
    
    GPIO_InitStructure.GPIO_Mode     = GPIO_Mode_IN_FLOATING;
    GPIO_InitStructure.GPIO_Pin     = GPIO_Pin_11;
    GPIO_Init(GPIOB,&GPIO_InitStructure);
    
    GPIO_PinRemapConfig(GPIO_PartialRemap_USART3,ENABLE);
    
    NVIC_InitStructure.NVIC_IRQChannel                         = USART3_IRQn;
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority     = 0;
    NVIC_InitStructure.NVIC_IRQChannelSubPriority             = 1;
    NVIC_InitStructure.NVIC_IRQChannelCmd                     = ENABLE;
    NVIC_Init(&NVIC_InitStructure);
    
    USART_DeInit(USART3);
    USART_InitStructure.USART_BaudRate                 = 115200;
    USART_InitStructure.USART_WordLength             = USART_WordLength_8b;
    USART_InitStructure.USART_StopBits                 = USART_StopBits_1;
    USART_InitStructure.USART_Parity                 = USART_Parity_No;
    USART_InitStructure.USART_HardwareFlowControl     = USART_HardwareFlowControl_None;
    USART_InitStructure.USART_Mode                     = USART_Mode_Tx|USART_Mode_Rx;
    USART_Init(USART3,&USART_InitStructure);
    
    //USART_ClearFlag(USART3,USART_IT_RXNE);    //清除中断标志
    USART_ITConfig(USART3,USART_IT_RXNE,ENABLE);    //设置中断方式
    USART_Cmd(USART3,ENABLE);    //使能终端    
}

使用485转USB发送无反应

img

  • 写回答

6条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-02-23 18:06
    关注
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 2月28日
  • 修改了问题 2月23日
  • 修改了问题 2月23日
  • 修改了问题 2月23日
  • 展开全部

悬赏问题

  • ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
  • ¥15 安装quartus II18.1时弹出此error,怎么解决?
  • ¥15 keil官网下载psn序列号在哪
  • ¥15 想用adb命令做一个通话软件,播放录音
  • ¥30 Pytorch深度学习服务器跑不通问题解决?
  • ¥15 部分客户订单定位有误的问题
  • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
  • ¥15 Bug traq 数据包 大概什么价
  • ¥15 在anaconda上pytorch和paddle paddle下载报错
  • ¥25 自动填写QQ腾讯文档收集表