总线就是不同机器之间或者机器内部进行信息交互的媒介
总线可以分为内部总线和外部总线
外部总线根据各自特性的不同,有三种不同的划分标准:
常用的外部总线有uart、IIC\SPI\can\RS485







一帧数据的组成:
一般校验位设置为奇偶校验
奇校验:设置了奇校验之后一帧数据传输完成,数据位中的1的个数+校验位1的个数应该为奇数
0XFE->1111 1110 此时这个数据传输完毕校验位应该为0
0XFF->1111 1111 此时这个数据传输完毕校验位应该为1
偶校验:设置了偶校验之后一帧数据传输完成,数据位中的1的个数+校验位1的个数应该为偶数
0XFE->1111 1110 此时这个数据传输完毕校验位应该为1
0XFF->1111 1111 此时这个数据传输完毕校验位应该为0
8N1概念 :8位数据位,没有校验位,1位停止位

波特率代表进行数据传输时双方的数据传输速率
波特率 单位 是 bps(bit/s)
常用的波特率 有 4800、9600、115200










管脚复用功能寄存器1

管脚复用功能寄存器2


通过查询寄存器发现一个管脚的复用功能需要寄存器的四位来设置,一个寄存器是32位,只能设置8个管脚的复用功能,而一个GPIO控制器管理了16个管脚,所以需要两个管脚复用功能选择寄存器来进行管脚复用设置
每一个管脚的复用功能可以设置为AF0-AF15总共16个复用功能,想要直到PG11和PB2管脚到底哪一个功能是UART4功能,需要查询stm32mp157a.pdf文件的第4章节的table8和table9


通过查询两个表,知道:
PB2的UART4复用功能是AF8,所以想要将PB2管脚复用为UART4功能,只需要将GPIOB_AFRL第[11:8]->1000
PG11的UART4复用功能是AF6,所以想要将PG11管脚复用为UART4功能,只需要将GPIOG_AFRH第[15:12]->0110











16倍采样,时钟频率64M,115200波特率
USARTDIV=64000000/115200 =0X22B
BRR=0X22B
8倍采样
USARTDIV=2*64000000/115200=0X456 0100 0101 0110
BRR[2:0]=011
BRR[3]=0
BRR[15:4]= 0000 0100 0101
USART_CR1[28]->0
USART_CR1[12]->0
USART_CR1[15]->0
不设置奇偶校验,USART_CR1[10]->0
USART_CR1[3]->1
USART_CR1[2]->1
USART_CR1[0]->1
USART_CR2[13:12]->00表示设置1位停止位
16倍采样下
USART_BRR=0X22B
