你好,我最近在学习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 Hz | Hz |
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: |
但是不能使用,这是为什么?