求助 FR4133 头文件中
#define UCSSEL__UCLK (0x0000u) /* USCI 0 Clock Source: UCLK */
#define UCSSEL__MODCLK (0x0040u) /* USCI 0 Clock Source: MODCLK */
#define UCSSEL__SMCLK (0x0080u) /* USCI 0 Clock Source: SMCLK */
这三个时钟分别对应着多少频率 SMCLK我觉得应该在系统时钟初始化时设置CSCTL4寄存器设定的,其他两个是什么
HG:
他们是不同的时钟类型。还需要选用什么样的时钟本体给这些时钟源。VLOCLK /XT1/REFOCLK/DCO等频率在datasheet中可以看出来。
#define SELMS__DCOCLKDIV (0x0000) /* MCLK and SMCLK Source Select DCOCLKDIV */#define SELMS__REFOCLK (0x0001) /* MCLK and SMCLK Source Select REFOCLK */#define SELMS__XT1CLK (0x0002) /* MCLK and SMCLK Source Select XT1CLK */#define SELMS__VLOCLK (0x0003) /* MCLK and SMCLK Source Select VLOCLK */
你可以对照msp430fr413x_euscia0_uart_01.c理解一下
海是永远流动的天:
回复 HG:
您说的这个是系统时钟吧?我的意思是在串口初始化时 BRCLK选择UCA0CTLW0 |= UCSSEL__UCLK; 这个UCSSEL__UCLK对应着是什么时钟
我知道如果UCA0CTLW0 |= UCSSEL__SMCLK就是选择SMCLK作为串口时钟,SMCLK由你说的可以配置,我不明白UCLK对应着啥?
gaoyang9992006:
回复 海是永远流动的天:
我在21ic.com的论坛找到了个一个人说的关于这个寄存器的内容。
——————————————————————————————————————————
我看了一下那个单片机的技术手册,跟楼主的教程对比了一下,发现了一个问题,就是串口UART可选的时钟有多种,那个MSP430i2xxFamilyUser'sGuide.pdf的231页的结构图上,写的是通UCSSELx寄存器可以选择,UCLK,ACLK,SMCLK,SMCLK,其中SMCLK出现两次,我觉得第四个,当寄存器位对应11时候应该是MCLK,可是我查看了头文件。如下#define UCSSEL__UCLK (0x0000) /* USCI 0 Clock Source: UCLK */#define UCSSEL__ACLK (0x0040) /* USCI 0 Clock Source: ACLK */#define UCSSEL__SMCLK (0x0080) /* USCI 0 Clock Source: SMCLK */没有找到串行收发器使用MCLK的证据,也就是只要这两位的,高一位是1,就是成立的, 可以记作1x.所以不用太纠结,这个直接用库函数操作就很OK了,经过查证那个手册也是没错的,只是没有写清楚。