串口相关

区分:串口,COM口,UART,USART
https://blog.csdn.net/qq_26904271/article/details/79829363
串口通信
https://blog.csdn.net/zxh1592000/article/details/78656609

串口:传输一个字节(8个位)的数据时,将8个位排好队,逐个地在1条连接线上传输,串行接口包括:USB,I2C,SPI,RJ-45,UART,USART等。

并口:将8个位一字排开,分别在8条连接线上同时传输。 在相同的数据传输速率下,并口的确比串口更快,但由于并口的各个连接线之间容易互相干扰,高速情况下难以同步各连接线的数据,而且硬件成本也相对串口更高(线多)

COM口:电脑上的异步串行通信接口,有RS-232标准的COM口,也称DB9接口

单片机的串口
UART使用异步通信,
USART既可异步通信,也可同步通信。当USART使用异步通信时,就变成了UART。

同步通信和异步通信的区别是:时钟线的有无。
同步通信有时钟线,收发双方通过统一的时钟来确定何时进行数据的传输,如I2C和SPI。异步通信没有时钟线,只能在数据的头和尾加入标志位来区分不同的数据帧,接收数据之前也要预先知道波特率的大小,传输效率比同步通信要低。

RS-232:是一个串行通信接口标准,它规定了逻辑“1”为-3 ~ -15V,逻辑“0”为+3 ~ +15V,符合该标准的串口也叫RS-232串口,比如电脑的COM口

TTL电平:该电平的逻辑“1”为+5V,逻辑“0”为0V,称为TTL串口。

“DB9接口”之间通过串口信号线建立起连接,串口信号线使用”RS-232标准“传输数据信号,这些信号通过记过电平转换芯片转换成控制器能识别的TLL标准的电平信号,才能实现通信。
在这里插入图片描述
单片机与电脑的连接

既然单片机有串口(UART/USART),电脑也有串口(COM口),那么两者就可以通过串口进行通信。

如果电脑有实体COM口,由于COM口使用的RS-232电平跟单片机的UART/USART使用的TTL电平不一样,这时就需要使用MAX232之类的电平转换芯片,将TTL电平转换成RS-232电平,连接示意如下:

电脑COM口 <—> MAX232 <—> 单片机UART/USART

如果电脑没有COM口,就要通过CH340之类的USB转TTL串口芯片,来实现用USB模拟COM口,这样电脑的USB口就变成了一个TTL串口,可以跟单片机的UART/USART通信,连接示意如下:

电脑USB口 <—> CH340 <—> 单片机UART/USART

// 配置USART_TX
	GPIO_USART_TX_InitStructure.GPIO_Pin =  GPIO_Pin_9;
	GPIO_USART_TX_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
	GPIO_USART_TX_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	
	GPIO_Init(GPIOA, &GPIO_USART_TX_InitStructure);
	
	// 配置USART_RX
	GPIO_USART_RX_InitStructure.GPIO_Pin =  GPIO_Pin_10;
	GPIO_USART_RX_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
 
	GPIO_Init(GPIOA, &GPIO_USART_RX_InitStructure);

TX,就是输出单元,指的是单片机用来给电脑(或其他设备)发送数据的寄存器。
单片机上的TX位于Pin9,是Pin9的复用功能,然后速度设为50MHz,这个可以变更,但没有必要。速度快一点不是很好吗?
这三项配置好后,就可以调用GPIO_Init()来将其配置到单片机里面了。

RX,相应的就是输入单元。
相似的,它位于Pin10,模式是浮动输入(当然了……)。
输入单元不用配置速度,因为它是被动输入,没有速度这种说法……
同样,调用GPIO_Init()函数配置一下。

GPIO_SetBits和GPIO_ResetBits
前者将引脚置1,后者置0

在这里插入图片描述
在这里插入图片描述
对单个IO口置0或1:
GPIO_WriteBit(GPIOA,GPIO_Pin_8 , 0);

同时对多个IO口置1:
GPIO_SetBits(GPIOD,GPIO_Pin_0 | GPIO_Pin_5 | GPIO_Pin_6);

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值