OpenEdv-开源电子网

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

485实验中的一些代码问题!

[复制链接]

2

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
70
金钱
70
注册时间
2020-5-21
在线时间
18 小时
发表于 2020-11-9 15:05:24 | 显示全部楼层 |阅读模式
本帖最后由 Liuchunjiang 于 2020-11-10 11:47 编辑

原子哥中的485实验中的RS485_Receive_Data(rs485buf,&key);这一句&key是什么意思呀!
                key=KEY_Scan(0);
                if(key==KEY0_PRES)//KEY0按下,发送一次数据
                {
                        for(i=0;i<5;i++)
                        {
                                rs485buf=cnt+i;//填充发送缓冲区
                                LCD_ShowxNum(30+i*32,190,rs485buf,3,16,0X80);        //显示数据
                         }
                        RS485_Send_Data(rs485buf,5);//发送5个字节                                                                           
                }                 
                RS485_Receive_Data(rs485buf,&key);
                if(key)//接收到有数据
                {
                        if(key>5)key=5;//最大是5个数据.
                         for(i=0;i<key;i++)LCD_ShowxNum(30+i*32,230,rs485buf,3,16,0X80);        //显示数据
                 }
                t++;
                delay_ms(10);
                if(t==20)
                {
                        LED0=!LED0;//提示系统正在运行        
                        t=0;
                        cnt++;
                        LCD_ShowxNum(30+48,150,cnt,3,16,0X80);        //显示数据
                }        



正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

34

主题

252

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
473
金钱
473
注册时间
2020-5-11
在线时间
217 小时
发表于 2020-11-9 16:05:53 | 显示全部楼层
我看了一下例程的注释
//RS485查询接收到的数据
//buf:接收缓存首地址
//len:读到的数据长度
void RS485_Receive_Data(u8 *buf,u8 *len)

是将接收到的数据长度存在的一个地址中,所以用的是u8 *len的指针类型,&key就是取地址里面的值。
回复 支持 反对

使用道具 举报

2

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
70
金钱
70
注册时间
2020-5-21
在线时间
18 小时
 楼主| 发表于 2020-11-10 11:40:57 | 显示全部楼层
asshole 发表于 2020-11-9 16:05
我看了一下例程的注释
//RS485查询接收到的数据
//buf:接收缓存首地址

这个地方明白了,但是我还有个问题就是我两个板子通信 可以发送,但是都无法输出,波形看上去也是都对的
回复 支持 反对

使用道具 举报

5

主题

269

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1050
金钱
1050
注册时间
2020-5-11
在线时间
252 小时
发表于 2020-11-10 11:44:48 | 显示全部楼层
Liuchunjiang 发表于 2020-11-10 11:40
这个地方明白了,但是我还有个问题就是我两个板子通信 可以发送,但是都无法输出,波形看上去也是都对的

”可以发送,但是都无法输出“这句啥意思?建议检查收发控制引脚,如果是原子哥的代码那应该收发控制引脚应该做了修改。其次检查接线。      
回复 支持 反对

使用道具 举报

2

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
70
金钱
70
注册时间
2020-5-21
在线时间
18 小时
 楼主| 发表于 2020-11-10 11:45:50 | 显示全部楼层
C:\Users\Lenovo\Desktop
回复 支持 反对

使用道具 举报

2

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
70
金钱
70
注册时间
2020-5-21
在线时间
18 小时
 楼主| 发表于 2020-11-10 11:48:59 | 显示全部楼层
thisisdemo 发表于 2020-11-10 11:44
”可以发送,但是都无法输出“这句啥意思?建议检查收发控制引脚,如果是原子哥的代码那应该收发控制引脚 ...

A-A B-B接一起 也都供地了,我看过了,就是根本就不去接收中断服务函数。还有我想问一下,A,B两端用万用表表看的话再接收的时候电压应该是多少才正常
回复 支持 反对

使用道具 举报

5

主题

269

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1050
金钱
1050
注册时间
2020-5-11
在线时间
252 小时
发表于 2020-11-10 16:01:18 | 显示全部楼层
本帖最后由 thisisdemo 于 2020-11-10 16:08 编辑
Liuchunjiang 发表于 2020-11-10 11:48
A-A B-B接一起 也都供地了,我看过了,就是根本就不去接收中断服务函数。还有我想问一下,A,B两端用万用 ...

这拿万用表没用吧。示波器吧
看看这个http://www.rationmcu.com/elecjc/2397.html
回复 支持 反对

使用道具 举报

2

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
70
金钱
70
注册时间
2020-5-21
在线时间
18 小时
 楼主| 发表于 2020-11-11 09:46:06 | 显示全部楼层
thisisdemo 发表于 2020-11-10 16:01
这拿万用表没用吧。示波器吧
看看这个http://www.rationmcu.com/elecjc/2397.html

找到原因了,应该是串口的问题,现在串口1接485是可以实现的,但是串口2不行,但是不知道为啥串口2不行
回复 支持 反对

使用道具 举报

0

主题

8

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2024-3-9
在线时间
12 小时
发表于 2024-6-5 10:58:16 来自手机 | 显示全部楼层
asshole 发表于 2020-11-9 16:05
我看了一下例程的注释
//RS485查询接收到的数据
//buf:接收缓存首地址

我的理解是应该改成RS485_Receive_Data(rs485buf,&len)
回复 支持 反对

使用道具 举报

0

主题

8

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2024-3-9
在线时间
12 小时
发表于 2024-6-5 11:02:00 来自手机 | 显示全部楼层
zykll 发表于 2024-6-5 10:58
我的理解是应该改成RS485_Receive_Data(rs485buf,&len)

错了理解错了不是改成&len,取完地址 就和后面的代码挂钩了,所以就会有后面key判断,因为现在的key不是按键的值了
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-22 19:36

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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