|
|
包含校验位时,有9位数据的情况,以下是从官方手册拷贝过来的:! f# u+ ?1 f3 \. G- U( j8 Z9 t" w3 N
2 U1 `( e. J6 U; z- f
DR[8:0]:数据值 (Data value)
" G* B% @5 i( ?/ m, }包含了发送或接收的数据。由于它是由两个寄存器组成的,一个给发送用(TDR),一个给接收% A; A& y6 K" d6 ^# q6 H& i/ K
用(RDR),该寄存器兼具读和写的功能。 TDR寄存器提供了内部总线和输出移位寄存器之间的4 @' Q$ R8 K4 n' ?1 h" o& A
并行接口(参见图248)。 RDR寄存器提供了输入移位寄存器和内部总线之间的并行接口。
0 I9 c& G! P$ E; U8 n5 I. z当使能校验位(USART_CR1中PCE位被置位)进行发送时,写到MSB的值(根据数据的长度不
/ {+ i- S* B- ]8 b1 [7 |5 V同, MSB是第7位或者第8位)会被后来的校验位该取代。. _* l8 @4 h/ A2 A1 R- G) X4 S
当使能校验位进行接收时,读到的MSB位是接收到的校验位
' Y) N2 s8 I, x9 \, ] I% [2 A- ?" }- W% ?: k
你再看一下USART_CR1的M、PCE:0 C: T! D2 Q$ W7 i1 J# O/ b& b
M:字长 (Word length)! o( N9 K8 e' ]3 }
该位定义了数据字的长度,由软件对其设置和清零
h4 h7 A% |& B, Q3 P0:一个起始位, 8个数据位, n个停止位;
% N& ^4 B1 ]. g! m( U1:一个起始位, 9个数据位, n个停止位。9 C3 D$ D) K; O" Q- r+ c4 z5 c) Q/ x
注意:在数据传输过程中(发送或者接收时),不能修改这个位7 @/ c ]8 |' D1 e: k4 f; g0 ^: i+ \. [
% F) G# {/ {( ePCE:检验控制使能 (Parity control enable)
" R/ O5 |, R" t7 }用该位选择是否进行硬件校验控制(对于发送来说就是校验位的产生;对于接收来说就是校验位+ I: j( f+ g% w1 |) `: ^% _& f
的检测)。当使能了该位,在发送数据的最高位(如果M=1,最高位就是第9位;如果M=0,最高
( @1 c* X& y7 U& G& w位就是第8位)插入校验位;对接收到的数据检查其校验位。软件对它置’1’或清’0’。一旦设置了, d9 B" x& q- P$ m- S+ b1 v
该位,当前字节传输完成后,校验控制才生效。
# P# U4 L3 u ]% X, A8 _) W# j0:禁止校验控制;! A5 e- v( A+ B
1:使能校验控制 |
|