谁有上位机与下位机的串口通讯代码(C语言的)

谁有上位机与下位机的串口通讯代码(C语言的),第1张

兄弟,下面是我自己写的,希望给你帮助,把数据用send_one_uart()这个函数直接发送到串口就行了!最后求采纳,哈哈!

//-----头文件

#include<reg52.h>

//-----定义全局变量

unsigned

char

temp

/***************************************************

**

函数名称:

uart_init

**

功能描述:

串口初始化函数

**

入:无

**

出:

**

明:

****************************************************/

void

uart_init(void)

{

scon

=

0x50

//-----scon:

模式

1,

8-bit

uart,

使能接收

tmod

|=

0x20

//-----tmod:

timer

1,

mode

2,

8-bit

重装

th1

=

0xfd

//-----th1:

重装值

9600

波特率

晶振

11.0592mhz

tr1

=

1

//-----tr1:

timer

1

打开

es

=

1

//-----打开串口中断

ea

=

1

//-----打开总中断

}

/***************************************************

**

函数名称:

sendbyte

**

功能描述:

发送字节函数

**

入:无

**

出:

**

明:

****************************************************/

void

sendbyte(unsigned

char

dat)

{

sbuf

=

dat

while(!ti)

ti

=

0

}

/***************************************************

**

函数名称:

sendstr

**

功能描述:

发送字符串函数

**

入:无

**

出:

**

明:

****************************************************/

void

sendstr(unsigned

char

*s)

{

while(*s!='\0')

{

sendbyte(*s)

s++

}

}

/***************************************************

**

函数名称:

main

**

功能描述:

主函数

**

入:无

**

出:

**

明:

****************************************************/

void

main

(void)

{

uart_init()

//-----串口初始化

while(1)

{

if(temp=='h'&&'i')

{

temp=0

sendstr("hello")

}

}

}

/***************************************************

**

函数名称:

uart_ser

**

功能描述:

串口中断服务子函数

**

入:无

**

出:

**

明:

****************************************************/

void

uart_ser

(void)

interrupt

4

//-----串行中断服务程序

{

if(ri)

//-----判断是接收中断产生

{

ri=0

//-----标志位清零

temp=sbuf

//-----读入缓冲区的值

}

}

通过蓝牙连接手机和Arduino

a) 接线

VCC:接Arduino的5V

GND:接Arduino的GND

TXD:发送端,一般表示为自己的发送端,接Arduino的RX

RXD:接收端,一般表示为自己的接收端,接Arduino的TX。

b) 写Arduino端程序

void setup()

{

Serial.begin(9600)

}

void loop()

{

while(Serial.available())

{

char c=Serial.read()

if(c=='A')

{

Serial.println("Hello I am amarino")

}

}

}

把程序安装到Ardunio开发板时,请先断开蓝牙模块,因为它们的数据都走串口,会引起冲突造成安装失败。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11429577.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存