波特率=(2^smod /32)*(定时器T1溢出率)
溢出率=溢出周期的倒数
溢出周期=(256-X)*12/Fosc
波特率=(2^smod * Fsoc)/(32 *12*(256-X))
-------------------
2430的波特率公式:
值得注意的是,CC2430串口波特率的设置与一般8051不同,由于其内部集成了一个波特率发生器,因而,不需要运用定时器而只需设置相关的SFR 寄存器UxBAUD.BAUD_M[7:0]和UxGCR.BAUD[4:0],便可得到体系要求的波特率,其关系式如下:
其间,F为体系时钟频率。若F为32 MHz,履行下列句子.得到9600 b/s的串口波特率:
MOV U0GCR,#08H
MOV U0BAUD,#3BH ;设置波特率为9600 b/s
实际上对USART的操作还包括对其所衔接的I/O口的设置。设置I/O应与硬件亲近结合,如:
MOV P1SEL,#30H ;挑选P1.5,P1.4为外部功用口
MOV P1DIR,#20H ;挑选P1.5为输出口,P1.4为输进口
CLR P1FG ;清空P1口的中止标志
MOV P2SEL,#00H ;设置USART0为优先
相同.对DMA和Radio的操作也有这样功用全面的SFR寄存器。对CC2430进行程序设计,其实便是对其SRF寄存器的知道和运用进程,篇幅所限这儿不逐个赘述。
其间U0GCR对应BAUD_E的值,U0BAUD对应BUAD_M的值