OpenEdv-开源电子网

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

串口通讯

[复制链接]

6

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
67
金钱
67
注册时间
2018-6-26
在线时间
14 小时
发表于 2018-7-25 10:40:54 | 显示全部楼层 |阅读模式
怎么接收一串数据呀,帧头A5  5A,不是原子哥的回车结尾(没有回车结尾)。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
67
金钱
67
注册时间
2018-6-26
在线时间
14 小时
 楼主| 发表于 2018-7-25 13:46:29 | 显示全部楼层
xuyaqi 发表于 2018-7-25 11:02
串口接收,先判断有没有接收到信号,然后 变量=sbuf,变量里就有了接收到的数值,开始可以只发一个,接收一 ...

for(i=0;i<8;i++)
        {
                while(USART_GetITStatus(USART2, USART_IT_RXNE)!=RESET)
                {
                                A=USART_ReceiveData(USART2);
                                USART_ClearFlag(USART2,USART_IT_RXNE);
                       
                       
               
                }
        }
        我直接这么写,能接受到8位数据么,不用中断
回复 支持 1 反对 0

使用道具 举报

2

主题

686

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
10892
金钱
10892
注册时间
2014-6-12
在线时间
1040 小时
发表于 2018-7-25 10:50:48 | 显示全部楼层
串口通讯 协议非常多,不是只有一种。
回复 支持 反对

使用道具 举报

6

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
67
金钱
67
注册时间
2018-6-26
在线时间
14 小时
 楼主| 发表于 2018-7-25 10:54:20 | 显示全部楼层
xuyaqi 发表于 2018-7-25 10:50
串口通讯 协议非常多,不是只有一种。

具体要怎么写呀,我现在能发送出去,接收回来做不了,死在这2天了。
回复 支持 反对

使用道具 举报

2

主题

686

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
10892
金钱
10892
注册时间
2014-6-12
在线时间
1040 小时
发表于 2018-7-25 11:02:32 | 显示全部楼层
串口接收,先判断有没有接收到信号,然后 变量=sbuf,变量里就有了接收到的数值,开始可以只发一个,接收一个,弄明白了可以一次发多个。
回复 支持 反对

使用道具 举报

6

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
67
金钱
67
注册时间
2018-6-26
在线时间
14 小时
 楼主| 发表于 2018-7-25 13:59:24 | 显示全部楼层

A是A,掉了
回复 支持 反对

使用道具 举报

2

主题

686

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
10892
金钱
10892
注册时间
2014-6-12
在线时间
1040 小时
发表于 2018-7-25 14:27:18 | 显示全部楼层

你把全部程序发出来,帮你改
回复 支持 反对

使用道具 举报

6

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
67
金钱
67
注册时间
2018-6-26
在线时间
14 小时
 楼主| 发表于 2018-7-25 14:30:26 | 显示全部楼层
xuyaqi 发表于 2018-7-25 14:27
你把全部程序发出来,帮你改

你qq号给我吧,我给你点报酬,直接帮我改我不好意思。。。
回复 支持 反对

使用道具 举报

2

主题

686

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
10892
金钱
10892
注册时间
2014-6-12
在线时间
1040 小时
发表于 2018-7-25 14:31:45 | 显示全部楼层
zdsk周颖 发表于 2018-7-25 14:30
你qq号给我吧,我给你点报酬,直接帮我改我不好意思。。。

难道程序很长
回复 支持 反对

使用道具 举报

2

主题

686

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
10892
金钱
10892
注册时间
2014-6-12
在线时间
1040 小时
发表于 2018-7-25 14:32:46 | 显示全部楼层

只改串口收发
回复 支持 反对

使用道具 举报

2

主题

686

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
10892
金钱
10892
注册时间
2014-6-12
在线时间
1040 小时
发表于 2018-7-25 14:35:49 | 显示全部楼层
你是在学习,还是做项目
回复 支持 反对

使用道具 举报

6

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
67
金钱
67
注册时间
2018-6-26
在线时间
14 小时
 楼主| 发表于 2018-7-25 14:37:27 | 显示全部楼层

                        WriteReg(0x02);
                                ReadReg();
                                                       
                        for(i=0;i<8;i++)
        {
                while(USART_GetITStatus(USART2, USART_IT_RXNE)!=RESET)
                {
                                A=USART_ReceiveData(USART2);
                                USART_ClearFlag(USART2,USART_IT_RXNE);
                       
                       
               
                }
        }                               
                                                这就是我程序了,WriteReg(0x02) 切换到2号图片
                                               ReadReg()读取图片编号(其实就是发送指令给屏,屏返回一个8字节数据),我没用中断,需要把返回数据的格式告诉你么,只要帧头,没用帧尾
回复 支持 反对

使用道具 举报

6

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
67
金钱
67
注册时间
2018-6-26
在线时间
14 小时
 楼主| 发表于 2018-7-25 14:37:59 | 显示全部楼层
zdsk周颖 发表于 2018-7-25 14:37
WriteReg(0x02);
                                ReadReg();
                                                       

发数据没问题,可以切换页面,我这屏是组态屏
回复 支持 反对

使用道具 举报

6

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
67
金钱
67
注册时间
2018-6-26
在线时间
14 小时
 楼主| 发表于 2018-7-25 14:43:28 | 显示全部楼层
xuyaqi 发表于 2018-7-25 14:35
你是在学习,还是做项目

边学边做把,STM32刚学十多天,老师让我做个东西
回复 支持 反对

使用道具 举报

2

主题

686

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
10892
金钱
10892
注册时间
2014-6-12
在线时间
1040 小时
发表于 2018-7-25 14:45:00 | 显示全部楼层
如果是做项目牵扯问题比较多,不是短时间能解决的,你只能把问题化小,一个个来解决。
回复 支持 反对

使用道具 举报

6

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
67
金钱
67
注册时间
2018-6-26
在线时间
14 小时
 楼主| 发表于 2018-7-25 14:46:48 | 显示全部楼层
xuyaqi 发表于 2018-7-25 14:45
如果是做项目牵扯问题比较多,不是短时间能解决的,你只能把问题化小,一个个来解决。

其他都可以了,只要能接受到数据,我后面都没问题,根据接收到的数据,判断屏幕界面,然后按键实现不同功能。我就卡在接受数据上了
回复 支持 反对

使用道具 举报

2

主题

686

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
10892
金钱
10892
注册时间
2014-6-12
在线时间
1040 小时
发表于 2018-7-25 14:48:10 | 显示全部楼层
zdsk周颖 发表于 2018-7-25 14:37
WriteReg(0x02);
                                ReadReg();
                                                       

因为屏是人家的,接收一定要用中断,否则漏数据
回复 支持 反对

使用道具 举报

6

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
67
金钱
67
注册时间
2018-6-26
在线时间
14 小时
 楼主| 发表于 2018-7-25 14:49:25 | 显示全部楼层
xuyaqi 发表于 2018-7-25 14:48
因为屏是人家的,接收一定要用中断,否则漏数据

他回来的数据 有规律,头两个是A5 5A,我在网上找了几个,没改成功
回复 支持 反对

使用道具 举报

2

主题

686

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
10892
金钱
10892
注册时间
2014-6-12
在线时间
1040 小时
发表于 2018-7-25 14:54:57 | 显示全部楼层
zdsk周颖 发表于 2018-7-25 14:49
他回来的数据 有规律,头两个是A5 5A,我在网上找了几个,没改成功

它什么时间发你是不可控,所以收要用中断
回复 支持 反对

使用道具 举报

6

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
67
金钱
67
注册时间
2018-6-26
在线时间
14 小时
 楼主| 发表于 2018-7-25 14:56:39 | 显示全部楼层
xuyaqi 发表于 2018-7-25 14:54
它什么时间发你是不可控,所以收要用中断

所以我不怎么会了。。。
回复 支持 反对

使用道具 举报

2

主题

686

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
10892
金钱
10892
注册时间
2014-6-12
在线时间
1040 小时
发表于 2018-7-25 14:58:42 | 显示全部楼层
可以找例程来看看
回复 支持 反对

使用道具 举报

6

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
67
金钱
67
注册时间
2018-6-26
在线时间
14 小时
 楼主| 发表于 2018-7-25 15:07:15 | 显示全部楼层
xuyaqi 发表于 2018-7-25 14:58
可以找例程来看看

搞出来了,谢谢 ,
回复 支持 反对

使用道具 举报

2

主题

686

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
10892
金钱
10892
注册时间
2014-6-12
在线时间
1040 小时
发表于 2018-7-25 15:08:02 | 显示全部楼层
zdsk周颖 发表于 2018-7-25 15:07
搞出来了,谢谢 ,

那就好
回复 支持 反对

使用道具 举报

0

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
112
金钱
112
注册时间
2018-8-16
在线时间
25 小时
发表于 2019-1-16 16:48:33 | 显示全部楼层

请问为什么A掉了
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-11 20:04

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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