野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9739|回复: 22

通过USART1发送16进制数乱码问题

[复制链接]
发表于 2016-1-5 21:56:24 | 显示全部楼层 |阅读模式
        通过USART1串口发送字符型的数据是没有任何问题的,但是如果发送16进制的数就有问题了。
        发送8位的16进制数据,前4位0~F没有任何问题,但是高四位只能是0~7之间,如果高四位大于7,收到的就会乱码,不对了
    求大神指点,在下小白,刚入手没几天
串口问题.png
回复

使用道具 举报

 楼主| 发表于 2016-1-5 21:57:19 | 显示全部楼层
没发过帖子,听说要自顶,等大神
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-1-5 21:59:02 | 显示全部楼层
火哥的视频感觉太高深,刚接触的我听不懂,只得自己去图书馆借书看,一遍一遍抄代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-1-5 21:59:32 | 显示全部楼层
通过USART1串口发送字符型的数据是没有任何问题的,但是如果发送16进制的数就有问题了。
        发送8位的16进制数据,前4位0~F没有任何问题,但是高四位只能是0~7之间,如果高四位大于7,收到的就会乱码,不对了
    求大神指点,在下小白,刚入手没几天
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-1-5 22:00:37 | 显示全部楼层
还只22点,就没大神在这里了吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-1-5 22:02:01 | 显示全部楼层
主要代码如下
int main(void)
{
        RCC_Config();
        GPIO_Config();
        NVIC_Config();
        USART_Config();
//        SendByte('a');
        USART_SendData(USART1,0x8f);
}
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-1-5 22:02:41 | 显示全部楼层
void NVIC_Config(void)
{
        NVIC_InitTypeDef NVIC_InitStructure;
       
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);
       
        NVIC_InitStructure.NVIC_IRQChannel=USART1_IRQn;
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;
        NVIC_InitStructure.NVIC_IRQChannelSubPriority=0;
        NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
        NVIC_Init(&NVIC_InitStructure);
}


void USART_Config(void)
{
        USART_InitTypeDef USART_InitStructure;
        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_ITConfig(USART1,USART_IT_RXNE,ENABLE);       
       
        USART_Cmd(USART1,ENABLE);               
       
        USART_ClearFlag(USART1,USART_FLAG_TC);  
}
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-1-5 22:06:21 | 显示全部楼层
第一次在这求助就要沉了,串口收发16进制数感觉是挺重要的一件事,没法求助了
回复 支持 反对

使用道具 举报

发表于 2016-1-6 08:46:58 | 显示全部楼层
换一个串口调试助手看看,旧版本的这个串口调试助手有点问题
另外你调用串口发送函数之后要加个while循环
回复 支持 反对

使用道具 举报

发表于 2016-1-6 08:47:29 | 显示全部楼层
烟酒僧 发表于 2016-1-5 22:06
第一次在这求助就要沉了,串口收发16进制数感觉是挺重要的一件事,没法求助了

其实你自顶这么多个我们都看不到了。。。一般我们会先回复 0回复的帖子。。
回复 支持 反对

使用道具 举报

发表于 2016-1-6 08:55:02 | 显示全部楼层
你这样写程序没有错,是串口调试助手的问题,参考我下面的

2.jpg 123.jpg

新版本串口调试助手
串口调试助手.zip (499.14 KB, 下载次数: 22)

我测试好的程序
printf(polling).zip (331.22 KB, 下载次数: 20)
回复 支持 反对

使用道具 举报

发表于 2016-1-6 08:56:02 | 显示全部楼层
烟酒僧 发表于 2016-1-5 22:00
还只22点,就没大神在这里了吗?

6点就下班啦,不可能24小时上班撒
回复 支持 反对

使用道具 举报

发表于 2016-1-6 09:00:35 | 显示全部楼层
【F1-串口发送十六进制数】看好些人发帖,先发个代码,抛砖引玉
http://www.firebbs.cn/forum.php? ... 10731&fromuid=1
(出处: 野火论坛)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-1-6 10:40:10 | 显示全部楼层
fire 发表于 2016-1-6 09:00
【F1-串口发送十六进制数】看好些人发帖,先发个代码,抛砖引玉
http://www.firebbs.cn/forum.php?mod= ...

感谢火哥,我看看
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-1-6 10:51:37 | 显示全部楼层
fire 发表于 2016-1-6 09:00
【F1-串口发送十六进制数】看好些人发帖,先发个代码,抛砖引玉
http://www.firebbs.cn/forum.php?mod= ...

发有的还是会出错,例如发DF    EF  这样的,不能一次收到,要同时复位两次,然后同时收到两个,这应该也是串口助手的问题
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-1-6 10:52:43 | 显示全部楼层
flyleaf 发表于 2016-1-6 08:47
其实你自顶这么多个我们都看不到了。。。一般我们会先回复 0回复的帖子。。

哦哦,是这样的,我没发过贴子,看有的论坛都是自己顶,嗯嗯,应该是串口助手的问题
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-1-6 11:03:43 | 显示全部楼层
好诡异,我用两个无线模块,一个联板子,一个连电脑,从电脑上发过去,板子可以点亮LED灯,但是从板子上用按键发出来,我能从我的下载器上看到电脑这边无线模块也收到了,但是串口助手却显示不了
回复 支持 反对

使用道具 举报

发表于 2016-1-6 19:14:48 | 显示全部楼层
烟酒僧 发表于 2016-1-6 11:03
好诡异,我用两个无线模块,一个联板子,一个连电脑,从电脑上发过去,板子可以点亮LED灯,但是从板子上用 ...

帮顶,自己搞定拉           
回复 支持 反对

使用道具 举报

发表于 2016-1-6 19:15:08 | 显示全部楼层
烟酒僧 发表于 2016-1-6 10:52
哦哦,是这样的,我没发过贴子,看有的论坛都是自己顶,嗯嗯,应该是串口助手的问题

那你还我传的那个串口调试助手啊               
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-1-6 23:44:10 | 显示全部楼层
fire 发表于 2016-1-6 19:15
那你还我传的那个串口调试助手啊

火哥,可以出一个用ULINK2仿真的视频教程不?怎么都学不会用KEIL做仿真,看变量值的变化啥的
回复 支持 反对

使用道具 举报

发表于 2016-1-7 08:36:08 | 显示全部楼层
烟酒僧 发表于 2016-1-6 23:44
火哥,可以出一个用ULINK2仿真的视频教程不?怎么都学不会用KEIL做仿真,看变量值的变化啥的

你百度下 KEIL 仿真 看变量,大把的教程,这个太简单了  
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-1-7 14:10:51 | 显示全部楼层
fire 发表于 2016-1-7 08:36
你百度下 KEIL 仿真 看变量,大把的教程,这个太简单了

好吧,我试试
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-1-7 16:48:59 | 显示全部楼层
fire 发表于 2016-1-7 08:36
你百度下 KEIL 仿真 看变量,大把的教程,这个太简单了

火哥,再一次求助,发呆一天了,实在无解。需要的功能是从串口助手发ON到USART1,然后用DMA1把数据转到数组SrcBuf[10]中,再在主函数中判断数组中是不是"ON"字符,如果是就将数组中的字符通过串口发出来
http://www.firebbs.cn/thread-10745-1-1.html 这是我,刚发的帖子
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-27 05:49 , Processed in 0.039512 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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