OpenEdv-开源电子网

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

通过串口助手向32发一串16进制代码,可以接收到,但是用通信模块发送同样的数组,单片机却接收不到,这是为什么

[复制链接]

210

主题

773

帖子

0

精华

初级会员

Rank: 2

积分
124
金钱
124
注册时间
2018-3-26
在线时间
288 小时
发表于 2018-8-8 10:06:05 | 显示全部楼层 |阅读模式
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

168

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
336
金钱
336
注册时间
2018-5-14
在线时间
69 小时
发表于 2018-8-8 10:09:01 | 显示全部楼层
问题描述的太模糊了,
通信模块正常吗?串口设置一致吗?
这种问题太难回答了,简直是让人“猜谜”呀。
回复

使用道具 举报

210

主题

773

帖子

0

精华

初级会员

Rank: 2

积分
124
金钱
124
注册时间
2018-3-26
在线时间
288 小时
 楼主| 发表于 2018-8-8 13:37:45 | 显示全部楼层
kvdong 发表于 2018-8-8 10:09
问题描述的太模糊了,
通信模块正常吗?串口设置一致吗?
这种问题太难回答了,简直是让人“猜谜”呀。

通信模块正常工作,串口波特率也一致,并且两方都已经单独测试过了,都没问题,单片机就是接不到数组
回复

使用道具 举报

35

主题

560

帖子

2

精华

资深版主

Rank: 8Rank: 8

积分
17786
金钱
17786
注册时间
2018-3-3
在线时间
523 小时
发表于 2018-8-8 13:46:39 | 显示全部楼层
一般是换行问题
/*
*
*
*
*
*
*/
回复

使用道具 举报

0

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
64
金钱
64
注册时间
2018-8-7
在线时间
14 小时
发表于 2018-8-8 14:14:00 | 显示全部楼层
仿真看有没有进接收中断,进的话得到的是什么数据,什么格式,一般是ascall码
回复

使用道具 举报

210

主题

773

帖子

0

精华

初级会员

Rank: 2

积分
124
金钱
124
注册时间
2018-3-26
在线时间
288 小时
 楼主| 发表于 2018-8-8 14:30:18 | 显示全部楼层
Psheng 发表于 2018-8-8 13:46
一般是换行问题

您能详细说说吗
回复

使用道具 举报

210

主题

773

帖子

0

精华

初级会员

Rank: 2

积分
124
金钱
124
注册时间
2018-3-26
在线时间
288 小时
 楼主| 发表于 2018-8-8 14:31:22 | 显示全部楼层
默默地掠过 发表于 2018-8-8 14:14
仿真看有没有进接收中断,进的话得到的是什么数据,什么格式,一般是ascall码

程序调试没有任何问题,但是与通信模块相连就是接不到码
回复

使用道具 举报

35

主题

560

帖子

2

精华

资深版主

Rank: 8Rank: 8

积分
17786
金钱
17786
注册时间
2018-3-3
在线时间
523 小时
发表于 2018-8-8 14:54:40 | 显示全部楼层

你的模块向单片机发送的数据有换行吗?你用串口助手有勾选发送新行吧
/*
*
*
*
*
*
*/
回复

使用道具 举报

210

主题

773

帖子

0

精华

初级会员

Rank: 2

积分
124
金钱
124
注册时间
2018-3-26
在线时间
288 小时
 楼主| 发表于 2018-8-8 15:48:53 | 显示全部楼层
Psheng 发表于 2018-8-8 14:54
你的模块向单片机发送的数据有换行吗?你用串口助手有勾选发送新行吧

没有换行,我选了发送新行
回复

使用道具 举报

1

主题

882

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3071
金钱
3071
注册时间
2018-2-7
在线时间
285 小时
发表于 2018-8-8 17:12:41 | 显示全部楼层
支持者2400 发表于 2018-8-8 15:48
没有换行,我选了发送新行

发送新行就是在发送的数据后面 又发送了 0x0D,0x0A两个数据。你的模块发送的数据最后面两位没有0x0D,0x0A。如果你用的是原子的串口接收程序的话,那么只有收到了0x0D,0x0A这两个字符后,串口才会结束本次接收的数据,如果没有收到0x0D,0x0A串口就会永远不会结束数据的接收。
回复

使用道具 举报

210

主题

773

帖子

0

精华

初级会员

Rank: 2

积分
124
金钱
124
注册时间
2018-3-26
在线时间
288 小时
 楼主| 发表于 2018-8-9 08:08:54 | 显示全部楼层
HXYDJ 发表于 2018-8-8 17:12
发送新行就是在发送的数据后面 又发送了 0x0D,0x0A两个数据。你的模块发送的数据最后面两位没有0x0D,0x0A ...

现在主要是接收的数据乱码,我知道模块发送的数组,但是单片机一个接收不到,接收到的是乱码
回复

使用道具 举报

9

主题

796

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2038
金钱
2038
注册时间
2017-8-2
在线时间
522 小时
发表于 2018-8-9 09:31:25 | 显示全部楼层
本帖最后由 323232 于 2018-8-9 09:33 编辑

额  没看清你问题
猪猪熊呢?
回复

使用道具 举报

9

主题

796

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2038
金钱
2038
注册时间
2017-8-2
在线时间
522 小时
发表于 2018-8-9 09:40:03 | 显示全部楼层
1.16进制数通过串口发送进32时,查看32rxbuff内容是否是你发送的16进制数,确保32接收到这些数据
2.检查32在通信模块发送的数据是否是你要发送的16进制数,在调试的时候查看一下,确保32用通信模块发送了这些数据(你这个通信模块有没有工具接收查看他发送的信息的?)
3.单片机接收端看看有没有接收到数据,你是怎么判别它收没收到的?写一个程序若接收到数据(不管什么数据),让灯闪烁或者弄个屏幕显示出来,看看它究竟接收到数据没有,还是说是接收了没有接收到你需要判断的数据。

仔细排查,看看问题究竟出在哪个环节。在这猜哪里出了问题还不如把问题缩小范围再猜。
猪猪熊呢?
回复

使用道具 举报

0

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
76
金钱
76
注册时间
2015-9-28
在线时间
5 小时
发表于 2018-8-9 09:45:52 | 显示全部楼层
抓下模块到单片机间通讯的log看格式对不对
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-12 18:52

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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