使用的是MSP430FR2355TRHA
我想在2355上做一個 clock16M 雙UART通訊
使用的範例是含有driverlib的eusci_a_uart_ex1_loopbackAdvanced
但這個範例是1M的
我要怎麼設定且確定我的clock是16M的
目前設定是eusci_a_uart_ex1_loopbackAdvanced預設的:
//! SMCLK = MCLK = BRCLK = DCOCLKDIV = ~1MHz, ACLK = 32.768kHz
//Set ACLK = REFOCLK with clock divider of 1
CS_initClockSignal(CS_ACLK,CS_REFOCLK_SELECT,CS_CLOCK_DIVIDER_1);
//Set SMCLK = DCO with frequency divider of 1
CS_initClockSignal(CS_SMCLK,CS_DCOCLKDIV_SELECT,CS_CLOCK_DIVIDER_1);
//Set MCLK = DCO with frequency divider of 1
CS_initClockSignal(CS_MCLK,CS_DCOCLKDIV_SELECT,CS_CLOCK_DIVIDER_1);
UART設定為
param.clockPrescalar = 104;
param.firstModReg = 2;
param.secondModReg = 0xD6;
param.parity = EUSCI_A_UART_NO_PARITY;
param.msborLsbFirst = EUSCI_A_UART_LSB_FIRST;
param.numberofStopBits = EUSCI_A_UART_ONE_STOP_BIT;
param.uartMode = EUSCI_A_UART_MODE;
param.overSampling = EUSCI_A_UART_LOW_FREQUENCY_BAUDRATE_GENERATION;
在9600時可以正常回覆
但改baud rate就無法通訊了
而且設定的值和 software-dl.ti.com/.../index.html
計算出來的也不同