一个串口通讯c语言函数 c语言调用串口

c语言怎么实现串口通信

编程原理

为企业提供网站建设、成都网站制作、网站优化、成都全网营销推广、竞价托管、品牌运营等营销获客服务。成都创新互联公司拥有网络营销运营团队,以丰富的互联网营销经验助力企业精准获客,真正落地解决中小企业营销获客难题,做到“让获客更简单”。自创立至今,成功用技术实力解决了企业“网站建设、网络品牌塑造、网络营销”三大难题,同时降低了营销成本,提高了有效客户转化率,获得了众多企业客户的高度认可!

程序1为查询通信方式接口程序,为一典型的数据采集例程。其中bioscom()函数初始化COM1(此函数实际调用BIOS

INT

14H中断0号功能)。这样在程序中就避免了具体设置波特率因子等繁琐工作,只需直接访问发送/接收寄存器(3F8H)和线路状态寄存

c语言串口通讯过程?

分接收端和发送端。

接收端:

1·打开com1端口

fd=fopen("/dev/ttys0",方式);

2·取得当前串口值,保存到结构体变量oldtio

tcgetattr(fd,oldtio);

3·串口结构体变量newtio清0.

bzero(newtio,sizeof(newtio))

4·设置串口参数

主要设置比特率、是否忽略奇偶校验错误,启用正规模式等等。

接收端

1·打开com端口

2·取得当前串口值

3·串口结构体变量清0

4·设置串口参数。

单片机串口232通信c语言

我写的串口通信代码比较长,给几个关键函数你吧,可实现PC与单片机的双工通信

/*串口通讯 单片机晶振:11.0592MHz

T1工作于方式2 波特率=2^smod*fosc/32/12/(256-X)*/

#includecommon.h

void do_uart(void); //串口接收执字符时的操作

/*串口发送字符串 */

void sendstr(uchar *p)

{

while(*p!='\0')

{ SBUF=*p; //待发送的数据写入缓冲区

while(!TI); //等待发送完成

TI=0; //清零发送标志位

p++; //指针加1

cnt_s++; //发送计数

}

}

/*串口接收中断函数*/

void int_rec(void) interrupt 4 using 2

{

if(RI) //查询接收标志位(有数据发送过来时置为1)

{

RI = 0; //接收标志位清零

// sendchar(SBUF);//让从电脑上传到单片机的数据,传回的电脑显示

do_uart();//对接受到得字符操作

}

}

/*串口初始化*/

void com_init(uint baud)

{

SCON = 0x50; //串口工作方式为1,串行允许接受

TMOD = 0x21; //定时器1工作在方式2 定时器0工作在方式1

//PCON = 0x80; //SMOD = 1; 波特率加倍

TH1=256-fosc/32/12/baud;

TL1=TH1;

ES = 1; //开串口中断

TR1 = 1; //允许定时器1工作

EA = 1; //开总中断

}

void sendchar(uchar uart_dat) //串口发送字符函数

{

SBUF = uart_dat; //待发送的数据写入缓冲区

while(!TI); //等待发送完成

TI = 0; //清零发送标志位

cnt_s++; //发送计数

}


分享文章:一个串口通讯c语言函数 c语言调用串口
本文网址:http://cdiso.cn/article/hiepio.html

其他资讯