文章目录
什么是串口
串口通信接口:指按位发送和接收的接口。如:RS232/RS485等
异步串行全双工通信
区分RS232电平
关于STM32F10x管脚的特质
STM32F10xx的所有标准输入管脚都是CMOS的,但与TTL兼容。
STM32F10xx的所有5V容忍输入管脚都是TTL的,但与CMOS兼容。
在输出模式下,在供电电压为2.7V~3.6V范围内,所有STM32F10xx的输出管脚都是与TTL兼容。
//目前来看 后两者不用分太清楚
RS232电平通信 与USB口与主控通信协议
数据格式
必须有1位起始位,8位数据位,停止位(电平可以保持1,2或1.5单位时间长度)
USART/UART
都可以在与外部进行全双工异步通信
串口数据接收和发送过程
注意F1、F4系列最后都是要通过DR寄存器读或写 不能直接操作RDR、TDR寄存器,而F7/H7可直接操作
波特率的计算
比特率是每秒传输的二进制位数。
波特率是每秒传送的码元数。
【如果在数字传输过程中,用0V表示数字0,5V表示数字1,那么每个码元有两种状态0和1. 每个码元代表一个二进制数字。此时的每秒码元数和每秒二进制代码数是一样的,这叫两相调制,波特率等于比特率。】
【如果在数字传输过程中,0V、2V、4V和6V分别表示00、01、10和11,那么每个码元有四种状态00、01、10和11. 每个码元代表两个二进制数字。此时的每秒码元数是每秒二进制代码数是一半的,这叫四相调制,波特率等于比特率一半。】
【引用】
原文链接:https://blog.csdn.net/aaaaaa_xiao/article/details/106367443
如果是hal库 公式里面已经封装好了 只需要将所需要的波特率写入就行
HAL库外设初始化MSP回调机制
何为复用?
1、通用:IO端口的输入或输出是由GPIO外设控制,我们称之为通用
2、复用:IO端口的输入或输出是由其他非GPIO外设控制,我们称之为复用
HAL_PPP_Init(); 用户调用该函数初始化PPP外设的工作参数(会调用MSP回调函数)
**HAL_PPP_MspInit();**配置PPP外设用到的硬件 如GPIO、NVIC等;
【在HAL库中被_weak修饰】
当多个PPP外设调用MSP函数时候,通过判断外设的基地址来区分,再设置其需要的硬件。
HAL库中断回调机制
HAL_PPP_IRQHandler(); 用户在中断服务函数中调用HAL库共有中断函数
HAL_PPP_XXXCallback();
串口配置
相关函数:
1、HAL_UART_Init
2、UART_Receive_IT
3、HAL_UART_Receive
4、 HAL_UART_Receive_IT