目录
1、了解一些基础知识
1、什么是串口
串行接口简称串口,也称串行通信接口或串行通讯接口(通常指COM接口),是采用串行通信方式的扩展接口。串行接口 (SerialInterface)是指数据一位一位地顺序传送。其特点是通信线路简单,只要一对传输线就可以实现双向通信(可以直接利用电话线作为传输线),从而大大降低了成本,特别适用于远距离通信,但传送速度较慢。
2、串口通信协议
串口通信指串口按位(bit)发送和接收字节。尽管比特字节(byte)的串行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。串口通信协议是指规定了数据包的内容,内容包含了起始位、主体数据、校验位及停止位,双方需要约定一致的数据包格式才能正常收发数据的有关规范。串口通信协议是基于串口使得通信双方能够相互沟通信息的一种约定,其定义了双方遵循的协议数据帧格式和其传输方式。在串口通信中,常用的协议包括RS-232、RS-422和RS-485。
3、RS-232和RS-485标准
RS-232标准接口(又称EIA RS-232)是常用的串行通信接口标准之一,它是由美国电子工业协会(Electronic Industry Association,EIA)联合贝尔系统公司、调制解调器厂家及计算机终端生产厂家于1970年共同制定,其全名是“数据终端设备( DTE)和数据通信设备(DCE)之间串行二进制数据交换接口技术标准”。
RS-485总线标准规定了总线接口的电气特性标准即对于2个逻辑状态的定义:正电平在+2V~+6V之间,表示一个逻辑状态;负电平在-2V~-6V之间,则表示另一个逻辑状态;数字信号采用差分传输方式,能够有效减少噪声信号的干扰。
4、RS-232,RS-485与TTL电平的区别
RS-232
1、 在RS-232-C中任何一条信号线的电压均为负逻辑关系。 即:逻辑“1”为-3到-15V;逻辑“0”为+3到+15V。
2、 RS-232-C接口连接器一般使用型号为DB-9插头座,通常插头在DCE端,插座在DTE端。PC机的RS-232口为9芯针插座。一些设备与PC机连接的RS-232接口,因为不使用对方的传送控制信号,只需要三条接口线,即“发送数据TXD”、“接收数据RXD”和“信号地GND”。RS-232传输线采用屏蔽双绞线。
RS-485
RS485采用差分信号负逻辑.
逻辑"1"以两线间的电压差为-(2-6)V表示,逻辑"0"以两线间的电压差为+(2-6)V表示。
接口信号电平比RS-232-C降低了,就不易损坏接口电路的芯片, 且该电平与TTL电平兼容,可方便与TTL电路连接。RS-485的数据最高传输速率为10Mbps。
TTL
TTL电平信号被利用的最多是因为通常数据表示采用二进制规定,+5V等价于逻辑“1”,0V等价于逻辑“0”,
这被称做TTL(晶体管-晶体管逻辑电平Transistor-Transistor Logic)信号系统,这是计算机处理器控制的设备内部各部分之间通信的标准技术。
5、"USB/TTL转232"模块(以CH340芯片模块为例)的工作原理
点击了解更多:USB转串口芯片:CH340 - 南京沁恒微电子股份有限公司
1、CH340简介
CH340 是一个USB 总线的转接芯片,实现USB 转串口、USB 转IrDA 红外或者USB 转打印口。
在串口方式下,CH340 提供常用的MODEM联络信号,用于为计算机扩展异步串口,或者将普通的串口设备直接升级到USB 总线。
在红外方式下,CH340 外加红外收发器即可构成USB 红外线适配器,实现SIR 红外线通讯。
2、串口通信试验
1、创建项目
1、打开电脑上的CubeMX,并点击按钮,开始创建项目:
2、
3、配置参数:
最后点击右上角的GENERATE CODE即可创建项目,然后点击“Open Project”,继续参数的设置
接着将参数改成如图所示:
4、修改代码:
将下列代码块插入main函数的while循环中:
char data[]="hello windows!\n";
HAL_UART_Transmit(&huart2, (uint8_t *)data, 15, 0xffff);
//?????A12
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_12,GPIO_PIN_SET);
HAL_Delay(100);
//?????A12
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_12,GPIO_PIN_RESET);
HAL_Delay(900);
如图所示:
2、开始调试
快捷键:Ctrl + F5,或者也可以点击按钮进行调试
之后进入调试界面,点击红色框里面的按钮即可开始运行,右边的按钮是结束运行:
3、运行的结果
我们可以看到在右下角那里输出了“hello windows!”这样的字样,并以每隔1秒的速度进行输出
将代码烧录到芯片中之后,运行野火之后的结果
串口调试(此处RXD连接引脚A2,TXD连接引脚A3,BOOT0置0,BOOT1置1),如图所示