Quantcast
Channel: MSP 低功耗微控制器论坛 - 最近的话题
Viewing all articles
Browse latest Browse all 3634

MSP430FR2633串口波特率的计算问题

$
0
0

你好,我最近在学习CapTIvateDesignCenter 的例程,想用串口将里面BSWP 例程中的数据导出来,在上位机使用的是IIC方式生成的程序,这样串口应该是空出来可以使用的,  但是有如下问题:

1.程序里

.pbReceiveCallback = CAPT_UARTReceiveHandler,
.pbErrorCallback = 0,
.peripheralParameters.selectClockSource = EUSCI_A_UART_CLOCKSOURCE_SMCLK,
.peripheralParameters.clockPrescalar = UART__PRESCALER,//0x08
.peripheralParameters.firstModReg = UART__FIRST_STAGE_MOD,
.peripheralParameters.secondModReg = UART__SECOND_STAGE_MOD,
.peripheralParameters.parity = EUSCI_A_UART_NO_PARITY,
.peripheralParameters.msborLsbFirst = EUSCI_A_UART_LSB_FIRST,
.peripheralParameters.numberofStopBits = EUSCI_A_UART_ONE_STOP_BIT,
.peripheralParameters.uartMode = EUSCI_A_UART_MODE,
.peripheralParameters.overSampling = UART__SAMPLING_MODE

EUSCI_A_UART_CLOCKSOURCE_SMCLK时钟是CS_initClockSignal(CS_SMCLK, CS_DCOCLKDIV_SELECT, CS_CLOCK_DIVIDER_4);是8M主时钟经过4分频之后得到的2M?然后我根据http://software-dl.ti.com/msp430/msp430_public_sw/mcu/msp430/MSP430BaudRateConverter/index.html网页计算出来的相关参数和程序中的参数不一样,实际的SMCLK和波特率是多少?

2.   在CapTIvate Technology Guide user guide中,推荐了9600BN8N1的配置方式如下

// g_myUartPort specifies the UART port configuration that is passed
// to the UART port driver during init.
// The UART configuration is 9600B8N1, sourced by SMCLK.
//
const tUARTPort g_myUartPort =
{
.pbReceiveCallback = &receiveHandler,
.pbErrorCallback = &errorHandler,
.peripheralParameters.selectClockSource = EUSCI_A_UART_CLOCKSOURCE_SMCLK,
.peripheralParameters.clockPrescalar = 26,
.peripheralParameters.firstModReg = 0,
.peripheralParameters.secondModReg = 0xB6,
.peripheralParameters.parity = EUSCI_A_UART_NO_PARITY,
.peripheralParameters.msborLsbFirst = EUSCI_A_UART_LSB_FIRST,
.peripheralParameters.numberofStopBits = EUSCI_A_UART_ONE_STOP_BIT,
.peripheralParameters.uartMode = EUSCI_A_UART_MODE,
.peripheralParameters.overSampling = EUSCI_A_UART_OVERSAMPLING_BAUDRATE_GENERATION
};
//而根据上述的网址算出来的应该是0xD6。这个地方是不是写错了?但是0xB6,0Xd6都能使用,这是为啥。。。我根据那个网页配置出来的115200是可以用的;

3.根据上面两个例程,我配置了一个CS_initClockSignal(CS_SMCLK, CS_DCOCLKDIV_SELECT, CS_CLOCK_DIVIDER_4),我理解的是SMCLK是2M的EUSCI的115200 波特率的串口,对应参数为:

USCI/EUSCI: USCI EUSCI
Clock:                     32.768K                     1M                     1.048M                     4M                     4.194M                     8M                     8.388M                     12M                     16M                     16.777M                     20M                     Custom                  HzHz
Baud rate:                     1200                     2400                     4800                     9600                     19200                     38400                     57600                     115200                     230400                     460800                     Custom                  bps
calculate

The recommended parameters for DriverLib are:

clockPrescalar:

firstModReg:

secondModReg:

overSampling:

但是不能使用,这是为什么?


Viewing all articles
Browse latest Browse all 3634

Trending Articles