智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 1144|回复: 0
打印 上一主题 下一主题

高手帮看看

[复制链接]

1

主题

4

帖子

0

精华

注册会员

Rank: 2

积分
193
威望
230
贡献
33
兑换币
0
注册时间
2010-4-8
在线时间
3 小时
跳转到指定楼层
1#
发表于 2010-4-8 12:16:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一直想修改别人的程序将一个数组发送到电脑上,但接收到的好像不是数组里面的数据,搞了好多天了

/****************************************/
//  9S12XS128 串口发送传感器采集数据      
/****************************************/

#include <hidef.h>      /* common defines and macros */
#include <MC9S12XS128.h>     /* derivative information */

char k;

char atd0_da[15]={0xa4,0x5b,0x5e,0x76,0xa7,0xc4,0x9f,0x3a,0xb3,0x58,0x73,0x96,0x75,0xa5,0x5d};


/****************************************/
//  SCI相关函数声明      
/****************************************/
//SCI初始化函数
void SCI_init(void);

//发送1字节数
//参数:c1为待发送的1字节数据
void SCISendChar(char c1);

//发送1个字符串
//参数:pc1指向待发送的字符串
void SCISendString(char *pc1);

//把1字节数据才拆成2个十六进制数发送
//比如要发送0x34这个数,本函数会先发送3的ASCII码,然后发送4的ASCII码
//参数:c1为待发送的1字节数据
void SCISendHex(char c1);

//把一个数转换成这个数对应的ASCII码
//参数:c1为待转换的数
//返回值:c1这个数的ASCII码
//比如:c1为3,那么返回值为3的ASCII码0x33
unsigned char dtoa(char c1);




/****************************************/
//  主函数      
/****************************************/


void main(void) {

/*当外接16MHz晶振,单片机复位后,默认内部总线时钟为16MHz/2=8MHz*/

//初始化SCI口
  SCI_init();

  SCISendHex(0xB9);
  SCISendString("\r\n");
  
  for(k=0;k<=14;k++){
    SCISendChar(dtoa((atd0_da[k]&0xF0)>>4));
    SCISendChar(dtoa((atd0_da[k]&0x0F)));
  }
  SCISendString("\r\n");
  DDRB = 0xff;
  PORTB = 0XFF;
  for(;;) {}  /*wait forever */

  
}   //END OF MAIN





/****************************************/
//  SCI相关函数实现      
/****************************************/
void SCI_init(void) {
SCI0BDH = 0;
SCI0BDL = 52;          //设定波特率为(8MB/16/52)=9600
SCI0CR2 = 0x0c;        //使能发送和接受功能
}


void SCISendChar(char c1){
  while(SCI0SR1_TC==0);      //查发送完标志
  SCI0DRL = c1;
}

void SCISendString(char *pc1)
{
  while((*pc1)!=0){
    SCISendChar(*pc1);
    pc1++;
  }
}

void SCISendHex(char c1){
  SCISendChar(dtoa((c1&0xF0)>>4));
  SCISendChar(dtoa((c1&0x0F)));
}


unsigned char dtoa(char c1){
  return(c1>=10)?(c1+0x37)c1+0x30);
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-9-28 21:27 , Processed in 0.086251 second(s), 34 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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