This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

FR4133串口时钟



求助 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寄存器设定的,其他两个是什么

  • 他们是不同的时钟类型。还需要选用什么样的时钟本体给这些时钟源。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理解一下

  • 您说的这个是系统时钟吧?我的意思是在串口初始化时 BRCLK选择UCA0CTLW0 |= UCSSEL__UCLK; 这个UCSSEL__UCLK对应着是什么时钟

    我知道如果UCA0CTLW0 |= UCSSEL__SMCLK就是选择SMCLK作为串口时钟,SMCLK由你说的可以配置,我不明白UCLK对应着啥?

  • 我在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了,经过查证那个手册也是没错的,只是没有写清楚。