java向单片机发送,下位机单片机c语言发送数据到串口,上位机pc机java语言获取端口...

总是有些人在质疑,说pc机用java无法直接进行串口通信。这篇文章通过完成的实例代码,完美的宣告了一些!!!!

#include

#include

#define INBUF_LEN 7   //数据长度

unsigned char inbuf1[INBUF_LEN];

unsigned char checksum,count3,count=0;

bit           read_flag=0;

unsigned char com[]="hello\n";

void init_serialcomm(void)

{

TMOD=0x20;//设置定时器1为模式2

TH1=0xfd;//装初值设定波特率

TL1=0xfd;

TR1=1;//启动定时器

SM0=0;//串口通信模式设置

SM1=1;

}

void delay_1s()     //1s

{

unsigned int i;

for(i=0;i<45000;i++)

{

}

}

void delay_1us()     //1s

{

unsigned int i;

for(i=0;i<45;i++)

{

}

}

//向串口发送一个字符

void send_char_com(char ch)

{

SBUF=ch;

while(TI==0);

TI=0;

delay_1us();

}

//向串口发送一个字符串,strlen为该字符串长度

void send_string_com(char *str,int strlen)

{

int k=0;

do

{

send_char_com(*(str + k));

k++;

} while(k < strlen);

}

//串口接收中断函数

void serial () interrupt 4 using 3

{

if(RI)

{

unsigned char ch1;

RI = 0;

ch1=SBUF;

inbuf1[count++]=ch1;

if(count==INBUF_LEN)

{

read_flag=1;  //如果串口接收的数据达到INBUF_LEN个,,且校验没错,

count=0;      //就置位取数标志

}

}

}

main()

{

init_serialcomm();  //初始化串口

delay_1s();

send_string_com("10.7",4);

return 1;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值