|
|
包含校验位时,有9位数据的情况,以下是从官方手册拷贝过来的:1 k V9 ^4 W- h/ [. y
/ o- K' y3 \; l4 Y! o7 c* \
DR[8:0]:数据值 (Data value)
+ c5 y5 B5 M2 N1 H( Y) L包含了发送或接收的数据。由于它是由两个寄存器组成的,一个给发送用(TDR),一个给接收, G3 x7 N6 P! l7 r- Y( \
用(RDR),该寄存器兼具读和写的功能。 TDR寄存器提供了内部总线和输出移位寄存器之间的* Q$ g- B* E3 s1 e& W9 c
并行接口(参见图248)。 RDR寄存器提供了输入移位寄存器和内部总线之间的并行接口。3 o z w6 Z) T6 A$ h
当使能校验位(USART_CR1中PCE位被置位)进行发送时,写到MSB的值(根据数据的长度不: u' o8 F; L3 @
同, MSB是第7位或者第8位)会被后来的校验位该取代。
1 k2 r- O, ?+ \' t0 {( a2 Z当使能校验位进行接收时,读到的MSB位是接收到的校验位$ y, ?2 k `, @" e% p* |
! P; L; H8 `% n, P
你再看一下USART_CR1的M、PCE:
m, H/ h( G2 |2 W* w/ I3 {M:字长 (Word length)
2 b0 I5 _: f2 E5 Y, g( J ~( U9 n3 _该位定义了数据字的长度,由软件对其设置和清零
( X Z& P+ [6 W# i0 G( R0:一个起始位, 8个数据位, n个停止位;$ \9 ~- X% F; P9 V! C* V H
1:一个起始位, 9个数据位, n个停止位。; A/ T6 `3 v( k' b% T9 c3 _/ [5 ?. W
注意:在数据传输过程中(发送或者接收时),不能修改这个位
# p; p, c( m: u
& R9 q a4 u7 a/ JPCE:检验控制使能 (Parity control enable): G" R$ k- j3 Z- M( Z+ x
用该位选择是否进行硬件校验控制(对于发送来说就是校验位的产生;对于接收来说就是校验位* Y9 S1 ^8 Z W5 g
的检测)。当使能了该位,在发送数据的最高位(如果M=1,最高位就是第9位;如果M=0,最高
% R e+ E0 R4 |+ n0 Y- l: T3 t位就是第8位)插入校验位;对接收到的数据检查其校验位。软件对它置’1’或清’0’。一旦设置了' [" K( E ` f8 R% R$ z+ a
该位,当前字节传输完成后,校验控制才生效。
/ [1 D: _8 d4 P/ W0 _0:禁止校验控制;, D( y3 t" y6 E
1:使能校验控制 |
|