//前面初始化和例程相同
EUSCI_A_UART_ initParam uartConfig = {
EUSCI_A_UART_ CLOCKSOURCE SMCLK, // SMCLK Clock Source
8, // BRDIV = 8
14, // UCxBRF = 14
34, // UCxBRS = 34
EUSCI_A_UART_ NO PARITY, // No Parity
EUSCI_A_UART_ MSB FIRST, // MSB First
EUSCI_A_UART_ ONE STOP BIT, // One stop bit
EUSCI_A_UART_ MODE, // UART mode
EUSCI_A_UART_ OVERSAMPLING_BAUDRATE_GENERATION // Oversampling Baudrate
};
WDT_hold(WDT_BASE);
// 设置DCO使用内部电阻,DCO将被配置在16.384MHz.
CS_setupDCO(CS_INTERNAL RESISTOR);
// SMCLK设置与DCO相同的速度。SMCLK = 16.384MHz
CS_initClockSignal(CS_SMCLK, CS_CLOCK DIVIDER_1);
// 设置P1.2和P1.3管脚作为UART管脚。P1.4 管脚作为LED输出
GPIO_setAsPeripheralModuleFunctionInputPin(GPIO_PORT_P1, GPIO_PIN2 | GPIO_PIN3, GPIO_PRIMARY_MODULE_FUNCTION);
GPIO_setAsOutputPin(GPIO_PORT_P1, GPIO_PIN4);
//GPIO_setOutputLowOnPin(GPIO_PORT_P1, GPIO_PIN4);
// 配置和使能UART外设
EUSCI_A_UART_ init(EUSCI_A0_BASE, &uartConfig);
EUSCI_A_UART_ enable(EUSCI_A0_BASE);
EUSCI_A_UART_ enableInterrupt(EUSCI_A0_BASE, EUSCI_A_UART_ RECEIVE_INTERRUPT);
/////////////////////////////////////////////////////////
//原谅我的渣渣C语言,LED默认低电平亮
while(1) {
if(EUSCI_A_UART_receiveData (EUSCI_A0_BASE)=="LED_OFF")
{
GPIO_setOutputLowOnPin(GPIO_PORT_P1, GPIO_PIN4);
}
else if(EUSCI_A_UART_receiveData (EUSCI_A0_BASE)=="LED_ON")
{
GPIO_setOutputLowOnPin(GPIO_PORT_P1, GPIO_PIN4);
}
else if(EUSCI_A_UART_receiveData (EUSCI_A0_BASE)=="LED_TEST")
{
GPIO_getInputPinValue (GPIO_PORT_P1, GPIO_PIN4);
EUSCI_A_UART_ transmitData(EUSCI_A0_BASE, GPIO_getInputPinValue (GPIO_PORT_P1, GPIO_PIN4));
}
} |