C51学习——串口通信

8 篇文章 1 订阅
订阅专栏

串口的认知

串行接口简称串口,也称串行通信接口或串行通讯接口(通常指COM接口),是采用串行通信方式的扩展接口。串行接口(Serial Interface)是指数据一位一位地顺序传送。其特点是通信线路简单,只要一对传输线就可以实现双向通信(可以直接利用电话线作为传输线),从而大大降低了成本,特别适用于远距离通信,但传送速度较慢是设备间接线通信的一种方式数据一位一位地顺序传送双向通信,全双工传送速度相对较慢

串口编程的要素认知

  1. 输入/输出数据缓冲器都叫做SBUF, 都用99H地址码,但是是两个独立的8位寄存器
  2. 代码体现为: 想要接收数据 char data = SBUF 想要发送数据 SBUF = data

在这里插入图片描述

  1. UART是异步串行接口,通信双方使用时钟不同,因为双方硬件配置不同,但是需要约定通信 速度,叫做波特率
    对于单片机和pc之间通信,pc端用软件配置,则单片机需要用代码完成配置,也可以用波特率配置软件直接生成
    在这里插入图片描述示例1:每隔一秒往pc端发送一个字符
#include "reg51.h"
#include <intrins.h>
void Delay1000ms()		//@11.0592MHz
{
	unsigned char i, j, k;

	_nop_();
	i = 8;
	j = 1;
	k = 243;
	do
	{
		do
		{
			while (--k);
		} while (--j);
	} while (--i);
}
void UartInit(void)		//9600bps@11.0592MHz
{
	PCON &= 0x7F;		//波特率不倍速
	SCON = 0x50;		//8位数据,可变波特率,配置工作方式1,REN使能接收
	AUXR &= 0xBF;		//定时器1时钟为Fosc/12,即12T
	AUXR &= 0xFE;		//串口1选择定时器1为波特率发生器
	TMOD &= 0x0F;		//清除定时器1模式位,高四位清零
	TMOD |= 0x20;		//设定定时器1为8位自动重装方式
	TL1 = 0xFD;		//设定定时初值
	TH1 = 0xFD;		//设定定时器重装值
	ET1 = 0;		//禁止定时器1中断
	TR1 = 1;		//启动定时器1
}



int main()
{
	char data_msg = 'a';
	UartInit();//配置串口的通信方式
	while(1){
		Delay1000ms();
		SBUF = data_msg;

	}


	return 0;
}

示例2:发送字符串

#include "reg51.h"
#include <intrins.h>
void Delay1000ms()		//@11.0592MHz
{
	unsigned char i, j, k;

	_nop_();
	i = 8;
	j = 1;
	k = 243;
	do
	{
		do
		{
			while (--k);
		} while (--j);
	} while (--i);
}
void UartInit(void)		//9600bps@11.0592MHz
{
	PCON &= 0x7F;		//波特率不倍速
	SCON = 0x50;		//8位数据,可变波特率,配置工作方式1,REN使能接收
	AUXR &= 0xBF;		//定时器1时钟为Fosc/12,即12T
	AUXR &= 0xFE;		//串口1选择定时器1为波特率发生器
	TMOD &= 0x0F;		//清除定时器1模式位,高四位清零
	TMOD |= 0x20;		//设定定时器1为8位自动重装方式
	TL1 = 0xFD;		//设定定时初值
	TH1 = 0xFD;		//设定定时器重装值
	ET1 = 0;		//禁止定时器1中断
	TR1 = 1;		//启动定时器1
}
void Delay5ms()		//@11.0592MHz
{
	unsigned char i, j;

	i = 9;
	j = 244;
	do
	{
		while (--j);
	} while (--i);
}

void sendByte(char data_byte)
{
	SBUF = data_byte;
	Delay5ms();
	while(!TI);
	TI = 0;

}

void sendString(char *str)
{
	while(*str != '\0'){
		 sendByte(*str);
		 str++; //指针每发送一个字符就往后走,遇到\0的跳出循环
	}


}

int main()
{
	char *data_msg = "hello wrold\r\n";
	UartInit();//配置串口的通信方式
	while(1){
		Delay1000ms();
		sendString(data_msg);

	}


	return 0;
}

示例3:pc发送字符点灯

#include "reg51.h"
#include <intrins.h>

sbit led = P3^7; 
char cmd;
void Delay1000ms()		//@11.0592MHz
{
	unsigned char i, j, k;

	_nop_();
	i = 8;
	j = 1;
	k = 243;
	do
	{
		do
		{
			while (--k);
		} while (--j);
	} while (--i);
}
void UartInit(void)		//9600bps@11.0592MHz
{
	PCON &= 0x7F;		//波特率不倍速
	SCON = 0x50;		//8位数据,可变波特率,配置工作方式1,REN使能接收
	AUXR &= 0xBF;		//定时器1时钟为Fosc/12,即12T
	AUXR &= 0xFE;		//串口1选择定时器1为波特率发生器
	TMOD &= 0x0F;		//清除定时器1模式位,高四位清零
	TMOD |= 0x20;		//设定定时器1为8位自动重装方式
	TL1 = 0xFD;		//设定定时初值
	TH1 = 0xFD;		//设定定时器重装值
	ET1 = 0;		//禁止定时器1中断
	TR1 = 1;		//启动定时器1

	EA = 1; //开启总中断
	ES = 1; //开启串口中断
}
void Delay5ms()		//@11.0592MHz
{
	unsigned char i, j;

	i = 9;
	j = 244;
	do
	{
		while (--j);
	} while (--i);
}

void sendByte(char data_byte)
{
	SBUF = data_byte;
	Delay5ms();
	while(!TI);
	TI = 0;

}

void sendString(char *str)
{
	while(*str != '\0'){
		 sendByte(*str);
		 str++; //指针每发送一个字符就往后走,遇到\0的跳出循环
	}


}

int main()
{

	UartInit();//配置串口的通信方式
	

	while(1){
	 Delay1000ms();
	 sendString("hello world\r\n");
	}
	return 0;
}


void Uart_Handler() interrupt 4
{
 	if(RI == 1){
				RI = 0;
				cmd = SBUF;
			 if(cmd == 'o'){
				   led = 0;//亮
			 }else if(cmd == 'c'){
				   led = 1;	 //灭
			 }
	}
	if(TI);	 //啥也不做
}
#include "reg51.h"
#include <intrins.h>
#include "string.h"

#define SIZE 12
int i = 0;
sbit led = P3^7; 
char cmd[12];
void Delay1000ms()		//@11.0592MHz
{
	unsigned char i, j, k;

	_nop_();
	i = 8;
	j = 1;
	k = 243;
	do
	{
		do
		{
			while (--k);
		} while (--j);
	} while (--i);
}
void UartInit(void)		//9600bps@11.0592MHz
{
	PCON &= 0x7F;		//波特率不倍速
	SCON = 0x50;		//8位数据,可变波特率,配置工作方式1,REN使能接收
	AUXR &= 0xBF;		//定时器1时钟为Fosc/12,即12T
	AUXR &= 0xFE;		//串口1选择定时器1为波特率发生器
	TMOD &= 0x0F;		//清除定时器1模式位,高四位清零
	TMOD |= 0x20;		//设定定时器1为8位自动重装方式
	TL1 = 0xFD;		//设定定时初值
	TH1 = 0xFD;		//设定定时器重装值
	ET1 = 0;		//禁止定时器1中断
	TR1 = 1;		//启动定时器1

	EA = 1; //开启总中断
	ES = 1; //开启串口中断
}
void Delay5ms()		//@11.0592MHz
{
	unsigned char i, j;

	i = 9;
	j = 244;
	do
	{
		while (--j);
	} while (--i);
}

void sendByte(char data_byte)
{
	SBUF = data_byte;
	Delay5ms();
	while(!TI);
	TI = 0;

}

void sendString(char *str)
{
	while(*str != '\0'){
		 sendByte(*str);
		 str++; //指针每发送一个字符就往后走,遇到\0的跳出循环
	}


}

int main()
{

	UartInit();//配置串口的通信方式
	

	while(1){
	 Delay1000ms();
	 sendString("hello world\r\n");
	}
	return 0;
}


void Uart_Handler() interrupt 4
{
	

 	if(RI == 1){
				RI = 0;
				cmd[i] = SBUF;
				i++;
				if(i == SIZE){
					  i = 0;
				}
			 if(strstr(cmd,"open")){
				   led = 0;//亮
				   i = 0;
				   memset(cmd,'\0',SIZE);
			 }else if(strstr(cmd,"close")){
				   led = 1;	 //灭
				   i = 0;
				   memset(cmd,'\0',SIZE);
			 }
	}
	if(TI);	 //啥也不做
}
C51 串口通信
04-22
C51 串口通信 RS232,学生时代课程设计。主从是一对,发送和接收是一对。本资源免费,欢迎下载
C51单片机————串行接口
Alvin_hcf的Blog
07-15 6338
C51单片机————串行接口 定时(定时控制、测量、延时。。。)和计数(对外部事件统计数目)。 Created with Raphaël 2.1.2张三张三李四李四嘿,四哥, 定时器和计数器有哪几种实现哦?想了想主要有三种方法那三种呢?软件定时|数字电路定时|可编程定时/计数器它们都是怎么实现的呢?望天思索状额! 你猜。。。 软件定时 机器执行一个程序,这个程序没有其他用处,...
Visual C++_Turbo C 串口通信编程实践.(电子工业.龚建伟.熊光明) 第二版 电子版
02-08
书名:《Visual C++/Turbo C串口通信编程实践》(电子工业出版社.龚建伟.熊光明)。 内容简介 本书从编程实践的角度详细介绍了Windows环境下和DOS环境下的串口通信的基本方法,并根据当前串口与网络结合发展的趋势,介绍了串口与网络TCP/IP、远程控制与监测相结合的一些解决方案和编程要点。由于编程步骤详尽,初学Visual C++/C(甚至是以前完全没有接触过Visual C++)的读者也能很快编写出Visual C++的串口通信程序。本书配光盘,书中实例源程序和相关资料可在对应章节的文件夹中找到。 本书是从事串口及网络通信的技术人员和学习者的极佳参考资料,也可以作为数据通信课程的辅助教材。 作者简介 龚建伟,工学博士,目前在北京理工大学从事科研究与教学工作。主要从事计算机控制技术、顺人和智慧能车辆技术、数据通信技术的研究。 目录 第1章 轻松体验串口通信编程与调试 1 1.1 使用串口调试助手来体验串口通信 1 1.2 体验Windows环境下的Visual C++串口通信编程 4 1.3 体验DOS环境下Turbo C串口通信编程 12 第2章 多线程串口编程工具CSerialPort类 16 2.1 CSerialPort类的功能及成员函数介绍 16 2.2 应用CSerialPort类编制基于对话框的应用程序 30 2.3 应用CSerialPort类编制基于单文档的应用程序 35 2.4 对CSerialPort类的改进 40 2.4.1 改进一:ASCII文本和二进制数据发送方式兼容 40 2.4.2 改进二:也许能解决内存泄漏 43 2.4.3 改进三:彻底关闭串口,释放串口资源 44 第3章 控件MSComm串口编程 46 3.1 MSComm控件介绍 46 3.1.1 VC中应用MSComm控件编程步骤 46 3.1.2 MSComm控件串行通信处理方式 47 3.1.3 MSComm 控件的属性说明 48 3.1.4 MSComm控件错误信息 55 3.2 使用MSComm控件的几个疑难问题 56 3.2.1 使用VARIANT 和SAFEARRAY 数据类型从串口读写数据 56 3.2.2 MSComm控件能离开对话框独立存在吗 59 3.2.3 如何发送接收ASCII值为0和大于128的字符 60 3.2.4 在同一程序中用MSComm控件控制多个串口的具体操作方法 62 3.2.5 解决使用控件编程时程序占用的内存会不断增大的问题 62 3.2.6 在MSComm控件串口编程时遇到的其他问题 63 3.3 在基于单文档(SDI)程序中应用MSComm控件 63 3.4 应用MSComm控件控制多个串口实例 69 3.5 串口与MODEM拨号应用简例 76 3.5.1 创建工程 76 3.5.2 代码分析 78 3.5.3 应用 85 第4章 Windows API串口编程 87 4.1 Windows API串口编程概述 87 4.2 API串口编程中用到的结构及相关概念说明 89 4.2.1 DCB(Device Control Block)结构 89 4.2.2 超时设置COMMTIMEOUTS结构 92 4.2.3 OVERLAPPED异步I/O重叠结构 94 4.2.4 通信错误与通信设备状态 95 4.2.5 串行通信事件 96 4.3 Windows API串行通信函数 97 4.4 Win32 API串口通信编程的一般流程和特殊实例 116 4.4.1 Win32 API串口通信编程的一般流程 116 4.4.2 用查询方式读串口 116 4.4.3 同步I/O读写数据 117 4.4.4 关于流控制的设置问题 118 4.5 CSerialPort类中的API函数编程应用剖析 119 4.6 Win32 API串口编程TTY(虚拟终端)实例 128 4.6.1 建立程序工程 128 4.6.2 建立串口设置对话框 129 4.6.3 编写CTermDoc类的相关代码 132 4.6.4 小结 141 4.6.5 在CTermView类中字添加符键入处理代码与串口接收处理代码 142 第5章 串口调试助手V2.2编程 147 5.1 建立SCOMM程序工程实现界面功能 147 5.2 串口的初始化及关闭 150 5.3 串口数据的发送与接收及十六进制数据的处理 151 5.3.1 十六进数据发送处理 152 5.3.2 手动发送处理 152 5.3.3 自动发送处理 153 5.3.4 接收处理及十六进制显示 154 5.4 其他辅助功能的实现 156 5.4.1 接收数据的文件保存 156 5.4.2 实现小文件发送 158 5.4.3 图钉按钮功能使程序能浮在最上层 161 5.4.4 对话框动画图标的实现 162 5.4.5 超链接功能的实现 164 5.4.6 如何打开帮助网页文件 164 第6章 DOS环境下的Turbo C串口编程及通用实例GSerial类 168 6.1 PC机异步通信适配器8250及其编程操作 169 6.1.1 INS8250内部寄存器及其选择方式 169 6.1.2 波特率设置 169 6.1.3 数据位、奇偶校验、停止位等数据格式设置 170 6.1.4 查询I/O方式相关设置 171 6.1.5 中断I/O通信方式相关设置 171 6.1.6 MODEM寄存器 172 6.2 COMRXTX程序实例 173 6.3 通用实例程序GSerial类 175 6.4 用GSerial类控制多串口 186 6.5 多串口编程PC机高号中断8259A可编程中断控制器的控制 195 第7章 串口通信用户层协议的编制与数据处理方法 197 7.1 通信协议的编制 197 7.1.1 为什么要编制用户通信协议 197 7.1.2 串口通信中用户层协议编制原则 199 7.1.3 在串口通信中几种常用的用户层协议 200 7.2 串口通信数据包处理方法编程实例 202 7.2.1 编程任务 203 7.2.2 编程步骤 203 7.2.3 程序测试 216 第8章 单片机串口通信 218 8.1 单片机串口硬件系统及C51程序开发 218 8.1.1 较典型的单片机硬件系统实例 218 8.1.2 C51语言及程序简介 220 8.1.3 开发C51程序的利器Keil C51 uVision2及串口程序仿真 221 8.2 C51单片机串口通信程序实例 226 8.2.1 实例一 226 8.2.2 实例二 227 第9章 串口与网络结合的解决方案及编程 230 9.1 串口与网络结合的硬件解决方案 230 9.2典型串口与联网的设备 231 9.2.1 NPort5400系列产品的特点 231 9.2.2 NPort 5400系列产品的典型应用介绍 233 9.2.3 NPort5400系列产品的设置与编程测试 235 9.3 与Access数据库结合的串口通信实例 237 9.3.1 微机网络检测系统说明 237 9.3.2 创建ODBC数据源 238 9.3.3 创建工程 239 9.3.4 程序简介 244 9.4 与WinSock结合的串口通信实例 246 9.4.1 客户端应用程序 247 9.4.2 服务器应用程序 252 9.5 在已经编好的串口通信程序中加入网络通信功能 260 9.5.1参照MFC AppWizard创建WinSockets程序 261 9.5.2 利用Windows Sockets API和第三方提供的类进行编程 262 9.6 串口通信用于遥控操作简例 262 第10章 计算机串口与其他设备通信编程实例 266 10.1通过串口收发短消息 266 10.1.1 SMS编码规范及编码与解码例程 266 10.1.2 AT命令收发短消息实例 273 10.1.3 “实时”接收短消息的方法 281 10.1.4 用串口收发SMS短信编程的一些讨论 283 10.2 计算机与Rabbit 2000嵌入式系统通信编程实例 286 10.2.1 Rabbit 2000微处理器介绍 286 10.2.2 动态C(Dynamic C)语言介绍 287 10.2.3 某车载无线调度系统实例介绍 288 10.3 计算机与PLC通信程序实例 294 10.4 MATLAB环境串口编程通信实例 295 10.4.1 MATLAB串口类Serial应用 295 10.4.2 通过串口使MATLAB Simulink与下位机通讯进行控制 299 10.4.3 xPC目标环境下串口通信实现 299 第11章 串口通信基本概念及标准 302 11.1 串口通信基本概念 302 11.1.1 串行通信概述 302 11.1.2 单工、半双工和全双工的定义 305 11.1.3 同步传送与异步传送 306 11.1.4 串行通信协议 306 11.2 RS-232-C串口标准 309 11.2.1 RS-232-C标准 309 11.2.2 RS-232-C串行通信接线实例 312 11.3 RS-422/485串口标准 314 11.3.1 概述 314 11.3.2 RS-422与RS-485串行接口标准 315 11.3.3 RS-422与RS-485的网络安装注意要点 317 11.3.4 RS-232、RS422、RS485电气参数对比 318 11.4 串口调试注意事项 318 11.5 常用数据校验法 318 11.5.1 奇偶校验 318 11.5.2 循环冗余码校验 319 11.6 串口连接和TCP/IP连接对比 320 11.7 现场总线与RS-232、RS-485的本质区别 320 11.8 MODEM通信技术 320 11.8.1 MODEM的基本工作原理 320 11.8.2 MODEM的功能 322 11.8.3 MODEM的分类 322 11.8.4 MODEM的安装 324 11.8.5 MODEM V.92标准介绍 326 11.8.6 MODEM的速度 327 11.8.7 MODEM优化方法 328 11.8.8 MODEM命令/AT命令 329 第12章 不占用串口串口数据捕捉 338 12.1 驱动程序的基本概念:VxD与WDM 338 12.1.1 虚拟设备驱动程序VxD 338 12.1.2 Win32驱动程序模型WDM 340 12.1.3 在不同操作系统下选用哪种驱动程序模式 341 12.2 VxD示例程序介绍——VToolsD中的CommHook 341 12.3 串口数据捕捉实例程序 351 12.3.1 编程任务 351 12.3.2 编程步骤 351 12.4 虚拟串口简介 364 附录A Turbo C说明 366 附录B ASCII码表 376 源码链接:http://download.csdn.net/download/nihuichao/10244970
usart.zip_c51串口通信_串口通讯
09-24
串口通信可以和电脑通讯,简单的串口程序适合初学者可以好好研究。
C51 串行通信头文件
12-02
自己编的头文件,很好用的,包括接受函数,发送函数,串行通信初始化函数
单片机C51串口中断接收和发送范例
10-20
用中断来实现串口通信//这是一个单片机C51串口接收(中断)和发送例程,可以用来测试51单片机的中断接收 //和查询发送,另外我觉得发送没有必要用中断,因为程序的开销是一样
51单片机——串口通信(发送和接受数据)
热门推荐
ssssshhbh的博客
02-21 4万+
51单片机串口通信(发送和接受数据)
51单片机--串口通信(详细教程)
最新发布
2302_78149298的博客
11-13 7457
希望对大家能有所帮助,欢迎大家指教。51单片机串口通信是指通过单片机内部硬件自带的串口模块实现的通信方式。串口通信是一种全双工,异步通信方式,它通过发送和接收数据来使单片机与单片机、单片机与电脑、单片机与各式各样的模块互相通信,单片机不仅可以使用串口来实现通信,还可以通过IO口模拟实现多种其他通信,比如SPI,IIC等。USB转串口模块1.注意硬件,连接发送端TXD和接收端RXD要交叉连接,通信波特率配置要相同;
C51之串口通信
m0_63084911的博客
07-03 845
【代码】C51之串口通信
C51单片机实现串口通信
u014034716的博客
09-20 3872
使用的单片机型号STC8A8K64S4A12,实现字符串的发送与接收,向单片机发送一串字符,单片机就原样返回到PC。本来以为很简单,写完程序调试发现无法实现通信,查看该芯片的官方代码,发现需要加上。这算是学习单片机的一个记录吧,惭愧毕业几年才开始捡起单片机。外设端口切换寄存器1( P_SW1 / AUXR1 )3)设置SCON寄存器采用哪一种的工作模式;原来用这个芯片需要RX、TX引脚设置。1)打开CPU的总中断EA;2)打开串口通信的中断ES;5)选择定时器的工作方式。
C51单片机和电脑串口通信电路图.pdf
07-14
C51单片机和电脑串口通信电路图.pdf
串口通信c51
09-28
串口通讯基础代码,51单片机基础类资料,学习测试用 基于51系列单片机
Visual C++_Turbo C 串口通信编程实践.(电子工业.龚建伟.熊光明) 源码光盘
02-08
11.3.2 RS-422与RS-485串行接口标准 315 11.3.3 RS-422与RS-485的网络安装注意要点 317 11.3.4 RS-232、RS422、RS485电气参数对比 318 11.4 串口调试注意事项 318 11.5 常用数据校验法 318 11.5.1 奇偶校验 318 ...
C语言实战——基于51单片机的RFID射频卡的读写程序
12-07
以51单片机为CPU实现的RFID射频卡读写器完整代码
单片机课程设计——定时闹钟的设计.doc
02-27
1.2系统设计方框图 1.3硬件设计 1.3.1芯片:80c51 80c51芯片内不包含一个8位中央处理器cpu,4kb程序存储器ROM,128B随机存取存储器 ,RAM,4个8位并行I/O接口,1个全双工串行通信接口,2个16 位定时器、计数器级及21...
51单片机驱动——WiFi模块ESP8266模块(代码文件)-电路方案
04-21
这两个可以和5V单片机的RXD、TXD连接,经测试通信正常,无需5V转3,3V GPIO2、GPIO0:悬空 CH_PD:看一些教程说可以直接接VCC,但经测试不行,电流太大了,所以要经电阻连接到VCC,也就是串联个电阻然后电阻再接到VCC,...
C51_day6:串口通信(Wifi模块-ESP-01s)
qq_41962968的博客
03-23 1934
蓝牙,ESP-01s,Zigbee, NB-Iot等通信模块都是基于AT指令的设计3.5.1 AT指令 3.5.1 AT指令 AT指令集是从终端设备(Terminal Equipment,TE)或数据终端设备(Data Terminal Equipment,DTE)向终端适配器(Terminal Adapter,TA)或数据电路终端设备(Data Circuit Terminal Equipment,DCE)发送的。其对所传输的数据包大小有定义:即对于AT指令的发送,除AT两个字符外,最多可以接收10
新手篇:C51单片机的串口通信小程序
weixin_51068135的博客
06-27 1237
C51单片机的串口通信小程序
51单片机 - 串口UART_发送
Enjoy
12-17 1737
uart
两台C51单片机串口通信
05-25
C51单片机串口通信需要使用两个串口口,一个作为发送端,一个作为接收端。以下是一个简单的例子,其中P1.0口为发送端,P1.1口为接收端。 发送端程序: ```c #include <reg52.h> void UART_SendByte(unsigned char dat); void main() { TMOD = 0x20; // 设置计数器1为模式2 TH1 = 0xfd; // 波特率9600,时钟频率12MHz TL1 = 0xfd; TR1 = 1; // 启动计数器1 SCON = 0x50; // 串口工作在模式1,允许接收和发送 P1 = 0xff; // 初始化P1口为高电平 while(1) { UART_SendByte(0x55); // 发送0x55 } } void UART_SendByte(unsigned char dat) { SBUF = dat; // 将要发送的数据放入发送缓冲区 while(!TI); // 等待发送完成 TI = 0; // 发送完成标志位清零 } ``` 接收端程序: ```c #include <reg52.h> void UART_ReceiveByte(unsigned char *dat); void main() { TMOD = 0x20; // 设置计数器1为模式2 TH1 = 0xfd; // 波特率9600,时钟频率12MHz TL1 = 0xfd; TR1 = 1; // 启动计数器1 SCON = 0x50; // 串口工作在模式1,允许接收和发送 P1 = 0xff; // 初始化P1口为高电平 while(1) { unsigned char dat; UART_ReceiveByte(&dat); // 接收数据 P1 = dat; // 将接收到的数据输出到P1口 } } void UART_ReceiveByte(unsigned char *dat) { while(!RI); // 等待接收完成 *dat = SBUF; // 将接收到的数据放入dat指向的内存空间 RI = 0; // 接收完成标志位清零 } ``` 需要注意的是,两个单片机之间的波特率、数据位数、停止位数、校验位等参数必须一致。同时,两个单片机的接收和发送引脚也需要正确连接。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • C51学习———定时器中断 7952
  • STM32—超声波测距 7312
  • STM32—LCD1602 3957
  • C51学习——串口通信 3212
  • STM32—串口 2510

分类专栏

  • 江科大学习STM32记录 9篇
  • C语言 7篇
  • C51 8篇
  • Linux 28篇
  • STM32学习 17篇

最新评论

  • STM32—DTH11

    qq_58192015: 你好,请问DTH11,在开始接收数据后的50us后电平一直是高,怎么回事?

  • C51学习———定时器中断

    Yang463363: 这个文章写的太好了

  • STM32入门——定时器

    m0_72498685: 大佬以后还会搬运更多的江科大32的内容吗

  • STM32入门——定时器

    m0_72498685: 写得很好!感谢大佬的分享

  • STM32—LCD1602

    和风_zhh: 对,已经试过了

您愿意向朋友推荐“博客详情页”吗?

  • 强烈不推荐
  • 不推荐
  • 一般般
  • 推荐
  • 强烈推荐
提交

最新文章

  • Unix时间戳
  • STM32入门——SPI通讯
  • STM32入门——IIC通讯
2023年31篇
2022年19篇
2021年16篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

聚圣源韩姓女孩起名大全大全双子座起个蔬菜配送中心公司名字中国公安网鲋鱼0571是哪里的区号起微信名字 一个女孩女老板招司机警察锅哥第二季在线林姓起名女孩姓莫女孩起名大全猪宝宝起名适合用哪个字银监会全称老表你好hea微信起名字大全2021降临无限之唯美片翼谷姓起名女孩azubutv车队名字10月7日梦见螃蟹寻找前世之旅流年转品尊国际二期美国人平均身高山海无限镜花缘起名字女孩常用字操作系统是活期存款利率计算英雄无敌大军在异界flightradar24淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻让美丽中国“从细节出发”清明节放假3天调休1天男孩疑遭霸凌 家长讨说法被踢出群国产伟哥去年销售近13亿网友建议重庆地铁不准乘客携带菜筐雅江山火三名扑火人员牺牲系谣言代拍被何赛飞拿着魔杖追着打月嫂回应掌掴婴儿是在赶虫子山西高速一大巴发生事故 已致13死高中生被打伤下体休学 邯郸通报李梦为奥运任务婉拒WNBA邀请19岁小伙救下5人后溺亡 多方发声王树国3次鞠躬告别西交大师生单亲妈妈陷入热恋 14岁儿子报警315晚会后胖东来又人满为患了倪萍分享减重40斤方法王楚钦登顶三项第一今日春分两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?周杰伦一审败诉网易房客欠租失踪 房东直发愁男子持台球杆殴打2名女店员被抓男子被猫抓伤后确诊“猫抓病”“重生之我在北大当嫡校长”槽头肉企业被曝光前生意红火男孩8年未见母亲被告知被遗忘恒大被罚41.75亿到底怎么缴网友洛杉矶偶遇贾玲杨倩无缘巴黎奥运张立群任西安交通大学校长黑马情侣提车了西双版纳热带植物园回应蜉蝣大爆发妈妈回应孩子在校撞护栏坠楼考生莫言也上北大硕士复试名单了韩国首次吊销离岗医生执照奥巴马现身唐宁街 黑色着装引猜测沈阳一轿车冲入人行道致3死2伤阿根廷将发行1万与2万面值的纸币外国人感慨凌晨的中国很安全男子被流浪猫绊倒 投喂者赔24万手机成瘾是影响睡眠质量重要因素春分“立蛋”成功率更高?胖东来员工每周单休无小长假“开封王婆”爆火:促成四五十对专家建议不必谈骨泥色变浙江一高校内汽车冲撞行人 多人受伤许家印被限制高消费

聚圣源 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化