野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10160|回复: 6

在进行串口通信时,输出的都是乱码,怎么解决,求大佬告知

[复制链接]
发表于 2018-4-8 15:09:06 | 显示全部楼层 |阅读模式
        鄙人小白一个,最近在做基于STM32芯片,用ESP8266进行通信,刚开始时只是输入字符串,输出的都是乱码。而且只能点击一次,不能连续发送,就此再次点击手动发送时,连乱码都没有,必须在KEIL里重新下载一次才能继续发送。求大佬帮忙解决。
QQ图片20180408150553.png
回复

使用道具 举报

发表于 2018-4-8 15:36:01 | 显示全部楼层
程序都没有,看个啥。。。。。开脑洞吗。。。。
回复 支持 反对

使用道具 举报

发表于 2018-4-8 15:37:21 | 显示全部楼层
乱码可能是波特率问题或者字符编码问题,只能发送一次可能是程序问题:程序只运行了一次或其他
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-8 16:00:01 | 显示全部楼层
非谢家之宝树 发表于 2018-4-8 15:36
程序都没有,看个啥。。。。。开脑洞吗。。。。

晶振设置与板子一致,是16。
#if !defined  HSE_VALUE
#ifdef STM32F10X_CL   
  #define HSE_VALUE    ((uint32_t)16000000) /*!< Value of the External oscillator in Hz */
#else
  #define HSE_VALUE    ((uint32_t)08000000) /*!< Value of the External oscillator in Hz */
#endif /* STM32F10X_CL */
#endif /* HSE_VALUE */

引脚与原理图一致,波特率在串口里和电脑设置里均是9600.
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init(GPIOA, &GPIO_InitStructure);   
       
        /* Configure USART1 Rx (PA.10) as input floating */
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
        GPIO_Init(GPIOA, &GPIO_InitStructure);
       
        /* USART1 mode config */
        USART_InitStructure.USART_BaudRate = 9600;
        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_Rx | USART_Mode_Tx;
        USART_Init(USART1, &USART_InitStructure);
        USART_Cmd(USART1, ENABLE);
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-8 16:01:57 | 显示全部楼层
tiandijianji 发表于 2018-4-8 15:37
乱码可能是波特率问题或者字符编码问题,只能发送一次可能是程序问题:程序只运行了一次或其他

波特率设置在串口里和端口属性里都设置成一样了,至于那个字符编码请问大神是在哪里看的
回复 支持 反对

使用道具 举报

发表于 2018-4-11 09:20:13 | 显示全部楼层
你可以先不发字符串,先发一个字符试试,看是否能够成功!至于你重新下载程序才能下载,看看你的主函数中是否有while函数一直在循环中没有出来!
回复 支持 反对

使用道具 举报

发表于 2018-4-11 14:52:11 | 显示全部楼层
把“十六进制显示”打开!!!!
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-6-18 02:09 , Processed in 0.032436 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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