Ma
tissa110USARTDIV的整数部分,这12位定义了USART
分频器除法因子USARTDIV的整数部分;30位:DIV_Fractio
30USARTDIV的小数部分,
这4位定义了USART分频器除法因子USARTDIV的小数部分。关于波特率设置在函数
voiduart_i
itu32pclk2u32bou
d里已经设置好,并且封装在usartc文件里面可以直接调用。
(4)串口控制
STM32的每个串口都有3个控制寄存器(USART_CR13)控制,例如USART_CR1如下:
15
14
13
12
11
10
9
8
保留
UE
M
WAKE
PCE
PS
PEIE
7
6
5
4
3
2
1
0
TXEIETCIE
RXNEIEIDLEIETE
RE
RWU
SBK
USART_CR1控制寄存器1该寄存器3214位保留,第13位使能串口(任何串口在应用的时候都必需将其置“1”)第12位设置字长,当这位为“0”的时候设置串口位8个字长外加
个停止位,这
个停止位在寄存器USART_CR2中第1312位来决定。PCE为奇偶校验使能位设置为“0”则禁止校验,否则使能校验。PS是交验选择位,设置为“0”则为偶校验,否则为奇校验。PEIE:PE(校验错误)中断使能,该位由软件设置或清除,定义:0(禁止产生中断),1(当USART_SR中的PE为’1’时,产生USART中断)。TXEIE发送缓冲区空中断使能,(手动),定义:0(禁止产生中断),1(当USART_SR中的TXE为’1’时,产生USART中断)。TCIE发送完成中断使能,(手动),定义:0(禁止产生中断)1(当USART_SR中的TC为’1’时,产生USART中断)。RXNEIE接收缓冲区非空中断使能,(手动),定义:0(禁止产生中断),1(当USART_SR中的ORE或者RXNE为’1’时,产生USART中断)。TE为发送使能位,设置为“1”将开启串口的发送功能。RE为接收使能位,用法同TE。
f15保留7保留
14LINEN6LBDIE
13
12
STOP10
5
4
LBDL
保留
11CLKEN3
10
9
CPOL
CPHA
2
1
ADD30
8LBCL0
USART_CR2(控制寄存器2)
如:USART1CR10X200C1位停止无校验位0X200C0010000000001100B
设置成使能串口8个字长1个停止位(USART_CR2中1312默认为“0”)禁止校验,禁止
校验所有中断,使能发送和接收。
(5)数据发送和接收
15
14
13
12
11
10
9
8
保留
DR8
7
6
5
4
3
2
1
0
DR70
USART_DR数据寄存器
发送数据缓存寄存器(向它写数据它会自动发送数据),当接收到数据时则存放接收的数据
(6)串口控制
15
14
13
12
11
10
9
8
保留
CTS
LBD
7
6
5
4
3
2
1
0
TXE
TC
RXNE
LDLE
ORE
NE
FE
PE
参考程序:
USART_SR
voiduart_i
itu32pclk2u32bou
d
floattemp
u16ma
tissa
u16fractio
tempfloatpclk21000000bou
d16得到USARTDIV
ma
tissatemp
得到整数部分
fractio
tempma
tissa16得到小数部分
ma
tissa4
ma
tissar