OpenEdv-开源电子网

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

如何编程让stm32接收某组数据?

[复制链接]

9

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
68
金钱
68
注册时间
2018-9-28
在线时间
16 小时
发表于 2018-10-8 08:18:58 | 显示全部楼层 |阅读模式
1金钱
只会给stm32发送数据,如何把发送的这组数据再返回来。

最佳答案

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

你现在实现了STM32的发送,那就要实现接收了。 由于接收的时候并没有明显的现象,所以一般采用我说的那种方法,接收到数据后,立马把接收到的数据发送给串口助手,这样如果在串口助手显示了你发送的数据,就说明串口已经完成了接收数据并发送还给串口助手的一系列操作了,间接证明了接收的成功。 当然你也可以发送特定的数据,例如00 01,stm32在接收的时候判断接收到的是几,如果是1则点亮某盏LED,如果是0则熄灭LED。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

9

主题

796

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2038
金钱
2038
注册时间
2017-8-2
在线时间
522 小时
发表于 2018-10-8 08:18:59 | 显示全部楼层
你现在实现了STM32的发送,那就要实现接收了。
由于接收的时候并没有明显的现象,所以一般采用我说的那种方法,接收到数据后,立马把接收到的数据发送给串口助手,这样如果在串口助手显示了你发送的数据,就说明串口已经完成了接收数据并发送还给串口助手的一系列操作了,间接证明了接收的成功。
当然你也可以发送特定的数据,例如00 01,stm32在接收的时候判断接收到的是几,如果是1则点亮某盏LED,如果是0则熄灭LED。
猪猪熊呢?
回复

使用道具 举报

7

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
137
金钱
137
注册时间
2018-8-29
在线时间
17 小时
发表于 2018-10-8 08:31:43 | 显示全部楼层
通过串口通信
回复

使用道具 举报

2

主题

756

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4163
金钱
4163
注册时间
2017-10-24
在线时间
251 小时
发表于 2018-10-8 08:42:26 | 显示全部楼层
对端接收数据的时候先将数据存放到一个缓冲区也就是一个大数组中,等数据接收完成以后,再通过相似的过程将缓冲区中的数据一个一个原样发回去。
十六进制带我飞。
回复

使用道具 举报

9

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
68
金钱
68
注册时间
2018-9-28
在线时间
16 小时
 楼主| 发表于 2018-10-8 10:15:39 | 显示全部楼层
DreamWaterPro 发表于 2018-10-8 08:42
对端接收数据的时候先将数据存放到一个缓冲区也就是一个大数组中,等数据接收完成以后,再通过相似的过程将 ...

不太懂,我现在只会用USART2->DR往stm32发送数据,所以stm32只是接收了这组数据,那如果想让stm32再发送这组数据呢,编程时该用哪个寄存器?
回复

使用道具 举报

9

主题

796

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2038
金钱
2038
注册时间
2017-8-2
在线时间
522 小时
发表于 2018-10-8 10:23:38 | 显示全部楼层
stm32??    你往DR里放数据是发送到stm32?  LZ连最基本的一些东西都没理解, 怪不得我理解不了LZ说的问题
猪猪熊呢?
回复

使用道具 举报

9

主题

796

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2038
金钱
2038
注册时间
2017-8-2
在线时间
522 小时
发表于 2018-10-8 10:24:40 | 显示全部楼层
LZ你STM32的串口线接着哪呢,电脑吧?电脑上的串口助手?
猪猪熊呢?
回复

使用道具 举报

9

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
68
金钱
68
注册时间
2018-9-28
在线时间
16 小时
 楼主| 发表于 2018-10-8 10:25:48 | 显示全部楼层
323232 发表于 2018-10-8 10:23
stm32??    你往DR里放数据是发送到stm32?  LZ连最基本的一些东西都没理解, 怪不得我理解不了LZ说的问题

我是不理解啊,我刚学啊,所以才来问问题嘛
回复

使用道具 举报

9

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
68
金钱
68
注册时间
2018-9-28
在线时间
16 小时
 楼主| 发表于 2018-10-8 10:26:23 | 显示全部楼层
323232 发表于 2018-10-8 10:24
LZ你STM32的串口线接着哪呢,电脑吧?电脑上的串口助手?

嗯,连着电脑的串口助手,发送的数据可以在串口助手上显示
回复

使用道具 举报

9

主题

796

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2038
金钱
2038
注册时间
2017-8-2
在线时间
522 小时
发表于 2018-10-8 10:27:31 | 显示全部楼层
所以你现在想干什么呢?串口助手自动发送接收到的数据给STM32?
猪猪熊呢?
回复

使用道具 举报

9

主题

796

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2038
金钱
2038
注册时间
2017-8-2
在线时间
522 小时
发表于 2018-10-8 10:30:57 | 显示全部楼层
你要搞清楚,你现在发的数据是STM32发送给串口助手的,所以串口助手上才会有数据显示。不是说发送给STM32。
正常的 想检测STM32的串口是否工作正常,一般是要串口助手发送数据给STM32,STM32接收发来的数据,然后把接收到的数据发给串口助手,串口助手再打印,如果和发送的一致,就说明STM32的串口工作正常
猪猪熊呢?
回复

使用道具 举报

9

主题

796

帖子

1

精华

金牌会员

Rank: 6Rank: 6

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

串口接收有两种方法
一种在主循环中判断USART_RX_STA的最高位是否为1   也就是if(USART_RX_STA&0x8000),如果为1说明接收到数据了。
接收到的数据会默认保存在USART_RX_BUF这个数组中。数组长度也是在USART_RX_STA这个寄存器里
还有一种是使用接收中断函数,接收到数据的时候会自动跳转到这个函数。
百度一下,有很多代码,自己参考一下
猪猪熊呢?
回复

使用道具 举报

9

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
68
金钱
68
注册时间
2018-9-28
在线时间
16 小时
 楼主| 发表于 2018-10-8 10:43:42 | 显示全部楼层
323232 发表于 2018-10-8 10:30
你要搞清楚,你现在发的数据是STM32发送给串口助手的,所以串口助手上才会有数据显示。不是说发送给STM32。 ...

噢噢,明白了,谢谢啦。
我现在比较困惑的是我们老师说我这个程序只是实现了接收数据的功能,要再编个stm32发送数据给电脑呢,我是一点没听懂什么意思,所以提的问题也不清不楚的,所以我再去问问我老师是想让我干什么吧,因为我现在也不知道我该干什么。
回复

使用道具 举报

9

主题

796

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2038
金钱
2038
注册时间
2017-8-2
在线时间
522 小时
发表于 2018-10-8 10:50:47 | 显示全部楼层
猪猪熊呢?
回复

使用道具 举报

9

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
68
金钱
68
注册时间
2018-9-28
在线时间
16 小时
 楼主| 发表于 2018-10-8 10:51:30 | 显示全部楼层
323232 发表于 2018-10-8 10:47
你现在实现了STM32的发送,那就要实现接收了。
由于接收的时候并没有明显的现象,所以一般采用我说的那种 ...

噢噢,好的,我去试试
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-20 14:38

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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