OpenEdv-开源电子网

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

STM32F103C8T6的RS485通讯乱码问题

[复制链接]

5

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
96
金钱
96
注册时间
2015-8-5
在线时间
14 小时
发表于 2017-5-6 20:58:20 | 显示全部楼层 |阅读模式
5金钱
我和电脑波特率一样,怎么一直接收不到正确的数据,请大家解决一下,谢谢了 这是我的程序
void USART2_485_init(void)
{
        GPIO_InitTypeDef GPIO_InitStructure;
  USART_InitTypeDef USART_InitStruct;

       
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO,ENABLE);   
  RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2,ENABLE);  

  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;  
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;           //CS_485  
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;      //????  
  GPIO_Init(GPIOA, &GPIO_InitStructure);     
                GPIO_ResetBits(GPIOA,GPIO_Pin_1);

  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;        //??2  
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;       //??????  
  GPIO_Init(GPIOA, &GPIO_InitStructure);                //TX???  

  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;  
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;        //??3  
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; //????         
  GPIO_Init(GPIOA, &GPIO_InitStructure);   
       
        USART_InitStruct.USART_BaudRate=15200;
        USART_InitStruct.USART_HardwareFlowControl=USART_HardwareFlowControl_None ;
        USART_InitStruct.USART_Mode=USART_Mode_Rx| USART_Mode_Tx;
        USART_InitStruct.USART_Parity=USART_Parity_No;
        USART_InitStruct.USART_StopBits=USART_StopBits_1;
        USART_InitStruct.USART_WordLength=USART_WordLength_8b;
       
        USART_Init(USART2,&USART_InitStruct);

       
        USART_Cmd(USART2,ENABLE);

       

}


int main()
{


        delay_init();

        USART2_485_init();

                GPIO_SetBits(GPIOA,GPIO_Pin_1);
        while(1)
        {
                USART_SendData(USART2,0x11);
        }

}

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

使用道具 举报

0

主题

12

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2017-5-7
在线时间
7 小时
发表于 2017-5-7 23:02:17 | 显示全部楼层
USART_InitStruct.USART_BaudRate=15200;
        USART_InitStruct.USART_HardwareFlowControl=USART_HardwareFlowControl_None ;
        USART_InitStruct.USART_Mode=USART_Mode_Rx| USART_Mode_Tx;
        USART_InitStruct.USART_Parity=USART_Parity_No;
        USART_InitStruct.USART_StopBits=USART_StopBits_1;
        USART_InitStruct.USART_WordLength=USART_WordLength_8b;
        
你这个波特率是不是搞错了“15200”不是115200吗
回复

使用道具 举报

5

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
96
金钱
96
注册时间
2015-8-5
在线时间
14 小时
 楼主| 发表于 2017-5-8 08:16:20 | 显示全部楼层
cooooookoo 发表于 2017-5-7 23:02
USART_InitStruct.USART_BaudRate=15200;
        USART_InitStruct.USART_HardwareFlowControl=USART_Har ...

是,我后来改了,还是不行,发现115200,收到的全是00,如果是9600,竟然可以正常收。
回复

使用道具 举报

4

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
149
金钱
149
注册时间
2013-10-11
在线时间
28 小时
发表于 2017-5-8 12:02:40 | 显示全部楼层
485模块坏了?还有就是注意控制你的收发引脚
回复

使用道具 举报

3

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
84
金钱
84
注册时间
2017-4-6
在线时间
8 小时
发表于 2017-5-8 20:25:42 | 显示全部楼层
IT_Config配置
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-8-21 14:42

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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