OpenEdv-开源电子网

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

51单片机多机串行口通讯问题

[复制链接]

2

主题

10

帖子

0

精华

新手上路

积分
32
金钱
32
注册时间
2016-10-5
在线时间
3 小时
发表于 2016-10-5 08:15:38 | 显示全部楼层 |阅读模式
1金钱
单片机A发送数组,单片机B接收数组,然后单片机B控制1062显示数组,通讯这一块一直做不出来
发送
void cuan() interrupt 4
{
unsigned char z=0;
        //uchar date;
        //date=SBUF;        //取出接受到的数据
        //RI=0;                          //清除接受中断标志位
for (z=0;z<8;z++)
                {
                        SBUF = TempData[z];
                        while(!TI);
                        TI=0;
}

接收
void ser() interrupt 4
{
        unsigned char a;
        RI = 0;
        a = SBUF;
        z++;
        if(z==8)
        {
                z = 0;
        }
}

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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165378
金钱
165378
注册时间
2010-12-1
在线时间
2111 小时
发表于 2016-10-6 19:22:09 | 显示全部楼层
回复

使用道具 举报

20

主题

67

帖子

0

精华

初级会员

Rank: 2

积分
120
金钱
120
注册时间
2016-6-15
在线时间
34 小时
发表于 2016-10-6 20:22:35 | 显示全部楼层
[mw_shl_code=applescript,true]//发送
unsigned char z=0;
ES=0;//查询法不要开中断
for (z=0;z<8;z++)
{
           SBUF = TempData[z];
           while(!TI);
           TI=0;
}
ES=1;

接收
char TempData_RX[8];
void ser() interrupt 4
{
        static int z=0;
        unsigned char a;

        RI = 0;
        TempData_RX[z++] = SBUF;
        if(z==8)
        {
                z = 0;
        }
}[/mw_shl_code]

没测试过,基本思路是这样
回复

使用道具 举报

2

主题

60

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
206
金钱
206
注册时间
2016-7-26
在线时间
33 小时
发表于 2016-10-7 09:03:20 | 显示全部楼层
接收函数中  a只是局部变量,没有赋值给全局变量或者有输出接口,怎么发送,每次中断都会更新a的值 ,a的值最后只是数组的最后一个值并且没有输出。
回复

使用道具 举报

3

主题

14

帖子

0

精华

新手上路

积分
40
金钱
40
注册时间
2016-11-23
在线时间
4 小时
发表于 2016-11-23 20:31:13 | 显示全部楼层
你接受的数据,没有赋值数组,无法正确显示
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-3-14 01:37

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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