OpenEdv-开源电子网

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

程序求解答

[复制链接]

5

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
107
金钱
107
注册时间
2013-8-26
在线时间
15 小时
发表于 2013-10-31 10:24:31 | 显示全部楼层 |阅读模式

void fspc1(uchar fspc_a)
{
 SBUF=fspc_a;
 while(!TI);
 TI=0;
}

 void send3(uint ss3,uchar dp1)
{uint aaa;
uchar se1;
aaa=ss3;
se1=aaa/100+0x30; 
fspc1(se1);
ss3=aaa%100;
se1=ss3/10+0x30; 
fspc1(se1);
if(dp1==1){fspc1(0x2e);}; 
se1=(ss3%10+0x30); 
fspc1(se1);
fspc1(0x20); // 空格
}

void send_pc(void)
{uint xx1;
WDT_CONTR=0x3c; //喂狗
send3(vj1,0);
send3(vj2,0);
send3(vj3,0);

send3(aaa_c,0);

WDT_CONTR=0x3c; //喂狗
send3(v48,1);
xx1=900;
if(in_48==0)xx1=xx1+10;
if(k_off==0)xx1=xx1+1; 
send3(xx1,0);
fspc1(0x38);fspc1(0x38);
fspc1(0x38);fspc1(0x38);
fspc1(0x20);
}
哪位帮助解释一下这2段程序放在一起是什么功能。
1,传送的数据到哪里?
2,se1=aaa/100+0x30; 这句里面加0x30是什么意思?
3,fspc1(0x20); 这句的功能是什么?
4,fspc1(0x38);这句上传的是什么

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

使用道具 举报

120

主题

7877

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12010
金钱
12010
注册时间
2013-9-10
在线时间
427 小时
发表于 2013-10-31 11:49:17 | 显示全部楼层
回复【楼主位】lbk1964:
---------------------------------
楼主好好看下ASCII码表吧
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

32

主题

72

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
227
金钱
227
注册时间
2013-10-16
在线时间
1 小时
发表于 2013-10-31 14:49:17 | 显示全部楼层
让我帮你整理一下
void fspc1(uchar fspc_a)
 {
  SBUF=fspc_a;
  while(!TI);
  TI=0;
 }

  void send3(uint ss3,uchar dp1)
 {uint aaa;
 uchar se1;
 aaa=ss3;
 se1=aaa/100+0x30; 
 fspc1(se1);
 ss3=aaa%100;
 se1=ss3/10+0x30; 
 fspc1(se1);
 if(dp1==1){fspc1(0x2e);}; 
 se1=(ss3%10+0x30); 
 fspc1(se1);
 fspc1(0x20); // 空格
}

void send_pc(void)
 {uint xx1;
 WDT_CONTR=0x3c; //喂狗
send3(vj1,0);
 send3(vj2,0);
 send3(vj3,0);

send3(aaa_c,0);

WDT_CONTR=0x3c; //喂狗
send3(v48,1);
 xx1=900;
 if(in_48==0)xx1=xx1+10;
 if(k_off==0)xx1=xx1+1; 
 send3(xx1,0);
 fspc1(0x38);fspc1(0x38);
 fspc1(0x38);fspc1(0x38);
 fspc1(0x20);
 }
回复 支持 反对

使用道具 举报

32

主题

72

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
227
金钱
227
注册时间
2013-10-16
在线时间
1 小时
发表于 2013-10-31 14:49:31 | 显示全部楼层
擦 怎么发送了?
回复 支持 反对

使用道具 举报

5

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
107
金钱
107
注册时间
2013-8-26
在线时间
15 小时
 楼主| 发表于 2013-10-31 14:58:38 | 显示全部楼层
回复【2楼】Badu_Space:回复【4楼】higerd_han:
---------------------------------
谢谢,对着ASCLL码,看明白了,
回复 支持 反对

使用道具 举报

32

主题

72

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
227
金钱
227
注册时间
2013-10-16
在线时间
1 小时
发表于 2013-10-31 14:59:28 | 显示全部楼层
重新来
void fspc1(uchar fspc_a)//该函数为发送数据函数 fspc_a为要发送的数据是一个函数变量例如void fspc1=0x01表示要发送的数据位01H
 {
     SBUF=fspc_a; 
     while(!TI);
     TI=0;
 }

  void send3(uint ss3,uchar dp1)
 {
 uint aaa;
 uchar se1;
 aaa=ss3;
 se1=aaa/100+0x30;  //个人感觉这个aaa是一个三位数,aaa/100 这样就可以得到百位的数,如981/100=9;至于+30H,是为了显示ASCII 39;
 fspc1(se1);  //这段话是se1发走
 ss3=aaa%100; //aaa%100 这样可以得到十位、个位数的数,如981%100=81,剩下的就和上面说的一样了;
 se1=ss3/10+0x30; 
 fspc1(se1);
 if(dp1==1){fspc1(0x2e);}; 
 se1=(ss3%10+0x30); 
 fspc1(se1);
 fspc1(0x20); // 空格
}

void send_pc(void)
 {
  uint xx1;
  WDT_CONTR=0x3c; //喂狗
send3(vj1,0);
send3(vj2,0);
  send3(vj3,0);

send3(aaa_c,0);

WDT_CONTR=0x3c; //喂狗
send3(v48,1);
 xx1=900;
  if(in_48==0)xx1=xx1+10;
  if(k_off==0)xx1=xx1+1; 
  send3(xx1,0);
  fspc1(0x38);fspc1(0x38);
  fspc1(0x38);fspc1(0x38);
fspc1(0x20);
 }
楼主理解没?
回复 支持 反对

使用道具 举报

5

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
107
金钱
107
注册时间
2013-8-26
在线时间
15 小时
 楼主| 发表于 2013-10-31 15:15:39 | 显示全部楼层
回复【4楼】higerd_han:
---------------------------------
谢谢
回复 支持 反对

使用道具 举报

5

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
107
金钱
107
注册时间
2013-8-26
在线时间
15 小时
 楼主| 发表于 2013-10-31 15:18:00 | 显示全部楼层
回复【7楼】lbk1964:
明白了
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-22 17:24

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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