Part Number:MSP430FR2475
Dear FAE,我在使用MSP430FR2475,发现根据库demo配置的串口无法正常输出,用示波器测量无任何信息,
如果配置成普通IO翻转则可以测量到电平变化,说明引脚没坏。外部主晶振32.768K
下面是配置文件:
#include "driverlib.h" //****************************************************************************** //! //!Empty Project that includes driverlib //! //****************************************************************************** void main(void) {// stop watchdogWDT_A_hold(WDT_A_BASE);GPIO_setAsPeripheralModuleFunctionInputPin(GPIO_PORT_P2,GPIO_PIN1 + GPIO_PIN0,GPIO_PRIMARY_MODULE_FUNCTION);//Set external clock frequency to 32.768 KHzCS_setExternalClockSource(32768);//Set ACLK=XT1CS_initClockSignal(CS_ACLK,CS_XT1CLK_SELECT,CS_CLOCK_DIVIDER_1);//Start XT1 with no time outCS_turnOnXT1(CS_XT1_DRIVE_1);//Set SMCLK = DCO with frequency divider of 1CS_initClockSignal(CS_SMCLK,CS_XT1CLK_SELECT,CS_CLOCK_DIVIDER_1);//Set MCLK = DCO with frequency divider of 1CS_initClockSignal(CS_MCLK,CS_XT1CLK_SELECT,CS_CLOCK_DIVIDER_1);// Configure UART pins//Set P1.0 and P1.1 as Secondary Module Function Input./** Select Port 1* Set Pin 0, 1 to input with function, (UCA0TXD/UCA0SIMO, UCA0RXD/UCA0SOMI).*/GPIO_setAsPeripheralModuleFunctionInputPin(GPIO_PORT_P5,GPIO_PIN1 + GPIO_PIN2,GPIO_PRIMARY_MODULE_FUNCTION);/** Disable the GPIO power-on default high-impedance mode to activate* previously configured port settings*/PMM_unlockLPM5();//Configure UART//SMCLK = 1MHz, Baudrate = 115200//UCBRx = 8, UCBRFx = 0, UCBRSx = 0xD6, UCOS16 = 0EUSCI_A_UART_initParam param = {0};param.selectClockSource = EUSCI_A_UART_CLOCKSOURCE_ACLK;param.clockPrescalar = 3;param.firstModReg = 0;param.secondModReg = 146;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;if(STATUS_FAIL == EUSCI_A_UART_init(EUSCI_A0_BASE, ¶m)){return;}EUSCI_A_UART_enable(EUSCI_A0_BASE);while(1){// Load data onto bufferEUSCI_A_UART_transmitData(EUSCI_A0_BASE, 'A');__delay_cycles(32768);} }
Yale Li:
您好,我需要与资深工程师讨论一下。
,
user4959119:
是的代码配置应该没问题,如果我直接换成另一个串口P2.5 P2.6 UCA1_BASE就能正常工作,非常奇怪。
,
Yale Li:
我想跟您确认一下uart配置:
ACLK = 32.768kHz, Baudrate = 9600UCBRx = 3, UCBRFx = 0, UCBRSx = 146, UCOS16 = 0
user4959119 说:是的代码配置应该没问题,如果我直接换成另一个串口P2.5 P2.6 UCA1_BASE就能正常工作,非常奇怪。
您有换一个芯片试过吗?
,
user4959119:
串口配置没问题,重新焊了一个芯片还是不行
,
Yale Li:
您好,我们还需要讨论一下这个问题。有了结果的话会第一时间回复您。
,
Yale Li:
您好,想要将P5作为UCA0使用,需要将SYSCFG3寄存器的USCIA0RMP位置为1(详情可以参考data sheet (SLASEO7C) Table 9-11和user guide (SLAU445I) Table 1-32)。
您试着在代码中添加:
SYSCFG3 |= USCIA0RMP;// Use P5 pins for UCA0 per DStable 9-11
,
user4959119:
管事了,这是库代码没做全的原因吗?
,
Yale Li:
有可能,有机会我反映一下这个问题。