我用了串口调试助手 先把“按十六进制发送”勾上 然后再输入A8 00 01 00 15 00
或用sscom32.exe先把“hex发送”勾上然后再输入A80001001500这样都可以从串口外部设备看到结果但是在程序中应该怎么处理呢??...
或用sscom32.exe
先把“hex发送”勾上
然后再输入A8 00 01 00 15 00
这样都可以从串口外部设备看到结果
但是在程序中应该怎么处理呢?? 展开
先把“hex发送”勾上
然后再输入A8 00 01 00 15 00
这样都可以从串口外部设备看到结果
但是在程序中应该怎么处理呢?? 展开
2个回答
展开全部
这个根据你使用的微处理器不同程序代码略有区别,但大致包含的基本内容是不变的。
一般串口程序的书写,包括三个函数,
第一,串口初始化,
第二串口接收程序,
第三串口发送程序。
你所说的内容只包含串口初始化和串口发送。
串口初始化就是设置波特率,发送数据格式,微处理器工作方式等,当然如果你使用中断方式还要设置微处理器的中断方式等。
至于串口发送程序,你就可以把需要发送的数据比如“0xA8,0X00,0X01,0X00,0X15,0X00”放在一个数组里,写个发送程序就可以把这些数据发送出去了。
下面是51单片机的一个串口程序,仅供参考,
#include<reg52.h>
#define uchar unsigned char
uchar rtemp,sflag;
void SerialInit() //11.0592M晶振,波特率9600
{
TMOD=0x20; //设置定时器1工作方式为方式2
TH1=0xfd;
TL1=0xfd;
TR1=1; //启动定时器1
SM0=0; //串口方式1
SM1=1;
REN=1; //允许接收
PCON=0x00; //关倍频
ES=1; //开串口中断
EA=1; //开总中断
}
void SerialService() interrupt 4
{
ES=0; //发送期间关闭串口中断
sflag=0;
SBUF=rtemp;
while(!TI);
TI=0;
ES=1; //发送完成开串口中断
}
这个程序使用了中断。再次声明,这个程序不一定完全正确,仅提供一个参考思路。
一般串口程序的书写,包括三个函数,
第一,串口初始化,
第二串口接收程序,
第三串口发送程序。
你所说的内容只包含串口初始化和串口发送。
串口初始化就是设置波特率,发送数据格式,微处理器工作方式等,当然如果你使用中断方式还要设置微处理器的中断方式等。
至于串口发送程序,你就可以把需要发送的数据比如“0xA8,0X00,0X01,0X00,0X15,0X00”放在一个数组里,写个发送程序就可以把这些数据发送出去了。
下面是51单片机的一个串口程序,仅供参考,
#include<reg52.h>
#define uchar unsigned char
uchar rtemp,sflag;
void SerialInit() //11.0592M晶振,波特率9600
{
TMOD=0x20; //设置定时器1工作方式为方式2
TH1=0xfd;
TL1=0xfd;
TR1=1; //启动定时器1
SM0=0; //串口方式1
SM1=1;
REN=1; //允许接收
PCON=0x00; //关倍频
ES=1; //开串口中断
EA=1; //开总中断
}
void SerialService() interrupt 4
{
ES=0; //发送期间关闭串口中断
sflag=0;
SBUF=rtemp;
while(!TI);
TI=0;
ES=1; //发送完成开串口中断
}
这个程序使用了中断。再次声明,这个程序不一定完全正确,仅提供一个参考思路。
来自:求助得到的回答
2013-02-22
展开全部
接收十六进制数据
再处理
再处理
追问
具体怎么弄,可以写个例子吗
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询