OpenEdv-开源电子网

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

USART_ReceiveData 函数收取到的数据到底是什么样子的啊

[复制链接]

7

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
125
金钱
125
注册时间
2016-4-3
在线时间
37 小时
发表于 2016-5-20 11:53:30 | 显示全部楼层 |阅读模式
5金钱
u8 coin = 10;
u8 RxBuffer[64];
u8 TxCounter = 5;
u16 RxCounter = 0;
void USART1_IQ()  // 串口中断处理函数
{
static u8 restr,i;
USART_ClearFlag(USART1,USART_FLAG_TC);
if(USART_GetITStatus(USART1,USART_IT_RXNE)!=Bit_RESET)//判断是否符合中断
{
  restr=USART_ReceiveData(USART1); // 这里接收到的到底是什么数据啊
  if(restr == 0x05)
  {
   coin = 5;
  }
  else
  {
   USART_SendData(USART1,restr);// 发送会上位机
   while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==Bit_RESET);
  }
}
}

USART_ReceiveData(USART1); 返回的到底是什么数据啊 是每次一个比特 的8位数据吗。
if(restr == 0x05)
{
       这个判断一直跑不进去。用串口助手发送0x05 也没办法跑进来赋值
}

因为手上没有调试器,没办法设断点跟踪调试 到底收到的是什么。有知道的吗,怎么才通过串口收取到从电脑上用串口助手发送的完整的数据 进行判断是不是0x05。还是说中断每触发一次只有一位数据,需要吧数据放在缓冲数组,然后重组收到的数据吗?
1111.png

最佳答案

查看完整内容[请看2#楼]

参考下这个http://www.openedv.com/forum.php?mod=viewthread&tid=67915&highlight=%B4%AE%BF%DA%BD%D3%CA%D5%CA%FD%BE%DD
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

13

主题

201

帖子

0

精华

高级会员

Rank: 4

积分
671
金钱
671
注册时间
2015-4-26
在线时间
173 小时
发表于 2016-5-20 11:53:31 | 显示全部楼层
回复

使用道具 举报

13

主题

201

帖子

0

精华

高级会员

Rank: 4

积分
671
金钱
671
注册时间
2015-4-26
在线时间
173 小时
发表于 2016-5-20 11:58:25 | 显示全部楼层
USART_ReceiveData()为STM32的串口函数,串口接收的数据就是一次1Byte(字节)#在这里快速回复#
回复

使用道具 举报

7

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
125
金钱
125
注册时间
2016-4-3
在线时间
37 小时
 楼主| 发表于 2016-5-20 12:11:06 | 显示全部楼层
康仔呦 发表于 2016-5-20 11:58
USART_ReceiveData()为STM32的串口函数,串口接收的数据就是一次1Byte(字节)#在这里快速回复#

嗯 我估计也是 触发一次接收一个字节, 如果我用串口助手发送 5 那么应该就会被编码成一个字节发送,但是 接收到的 还是没办法跑进这个if  如果发送5 的话 那接收到的这个restr 是什么样子的呢,是5的 其他编码形式吗 需要转码后才能比较?
restr=USART_ReceiveData(USART1); //
if(restr == 5)
回复

使用道具 举报

7

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
125
金钱
125
注册时间
2016-4-3
在线时间
37 小时
 楼主| 发表于 2016-5-20 12:35:18 | 显示全部楼层
康仔呦 发表于 2016-5-20 12:18
参考下这个http://www.openedv.com/forum.php?mod=viewthread&tid=67915&highlight=%B4%AE%BF%DA%BD%D3%CA% ...

嗯啊 谢谢了 我联系到一个有仿真器 可以设断点调试的朋友给我断点调试了,发现确实是编码的问题导致的,转码就好了。
回复

使用道具 举报

13

主题

201

帖子

0

精华

高级会员

Rank: 4

积分
671
金钱
671
注册时间
2015-4-26
在线时间
173 小时
发表于 2016-5-20 13:01:15 | 显示全部楼层
jaems 发表于 2016-5-20 12:35
嗯啊 谢谢了 我联系到一个有仿真器 可以设断点调试的朋友给我断点调试了,发现确实是编码的问题导致的, ...

0x05是十六进制,确保收发一样
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
16
金钱
16
注册时间
2019-10-3
在线时间
3 小时
发表于 2019-10-16 14:43:16 | 显示全部楼层
jaems 发表于 2016-5-20 12:35
嗯啊 谢谢了 我联系到一个有仿真器 可以设断点调试的朋友给我断点调试了,发现确实是编码的问题导致的, ...

你好,我也遇到了和你一模一样的问题,条件有限,可以给我讲解一下是如何转码的吗,我也是想接到数据,跑进if
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
5
金钱
5
注册时间
2020-7-2
在线时间
1 小时
发表于 2020-7-2 13:18:46 来自手机 | 显示全部楼层
meng777 发表于 2019-10-16 14:43
你好,我也遇到了和你一模一样的问题,条件有限,可以给我讲解一下是如何转码的吗,我也是想接到数据,跑 ...

问题解决了吗,我也遇到了类似的问题
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-18 19:14

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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