设置MSP430FR6989的P2.0和P2.1口作为uart的串行输入输出口,应怎么与电脑连接, 是用RX232模块来连接吗?顺便看一下这个程序有没有问题
#include <msp430.h>
#include <driverlib.h>
/*
* main.c
*/
uint8_t ReceiveData = 0; //定义接收数据变量
int main(void) {
WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer
PM5CTL0 &= ~LOCKLPM5; //Unlock LPM5
//设置内部DCO频率为1MHz
CS_setDCOFreq(CS_DCORSEL_0,CS_DCOFSEL_0);
//设置我们的SMCLK时钟源为来自DCO,其他的时钟我们都默认不改变
CS_initClockSignal(CS_SMCLK,CS_DCOCLK_SELECT,CS_CLOCK_DIVIDER_1);
//设置GPIO口作为复用输出端口
GPIO_setAsPeripheralModuleFunctionInputPin(GPIO_PORT_P2,GPIO_PIN1,GPIO_SECONDARY_MODULE_FUNCTION);
GPIO_setAsPeripheralModuleFunctionOutputPin(GPIO_PORT_P2,GPIO_PIN0,GPIO_SECONDARY_MODULE_FUNCTION);
EUSCI_A_UART_initParam EUSCI_A_UART_initStucture = {0};
//选择时钟源,这里我们选择的是SMCLK
EUSCI_A_UART_initStucture.selectClockSource = EUSCI_A_UART_CLOCKSOURCE_SMCLK;
//同样这里可以设置时钟的分频值,设置的为是UCBRx这个的值,对应表格就是6,直接写数字6也是可以的
EUSCI_A_UART_initStucture.clockPrescalar = 6;
//选择模式,是低频率模式,还是过采样模式,在这里就是设置UCOS16这个位,假设我们这里使用的过采样模式,即设置为1
EUSCI_A_UART_initStucture.overSampling = EUSCI_A_UART_OVERSAMPLING_BAUDRATE_GENERATION;
//这里就是设置我们UCBRFx这几个标志位,查表得这个值为8
EUSCI_A_UART_initStucture.firstModReg = 8;
// 这里设置的是我们的UCBRSx这几个标志位,查表得这个值为0x20
EUSCI_A_UART_initStucture.secondModReg = 0x20;
//这里设置的是校验位,分为奇校验和偶校验或者没有校验位,这里我们配置的没有校验位
EUSCI_A_UART_initStucture.parity = EUSCI_A_UART_NO_PARITY;
//这里配置的最低位有效还是最高位有效,具体解释看下面
//EUSCI_A_UART_initStucture.msborLsbFirst = EUSCI_A_UART_LSB_FIRST;
//设置停止位的个数,这里我们设置为1位停止位
EUSCI_A_UART_initStucture.numberofStopBits = EUSCI_A_UART_ONE_STOP_BIT;
//这里选择的我们手工的配置的UART模式,它还有很多其他的模式,自动波特率检测等等。
EUSCI_A_UART_initStucture.uartMode = EUSCI_A_UART_MODE;
EUSCI_A_UART_init(EUSCI_A0_BASE,&EUSCI_A_UART_initStucture);
EUSCI_A_UART_enable(EUSCI_A0_BASE);
//这里我们开启UART的中断,在中断中进行相关的数据接收
EUSCI_A_UART_enableInterrupt(EUSCI_A0_BASE,EUSCI_A_UART_RECEIVE_INTERRUPT);
__enable_interrupt();
while(1);
}
#pragma vector = USCI_A0_VECTOR;
__interrupt void UART_ISR(void)
{
ReceiveData = EUSCI_A_UART_receiveData(EUSCI_A0_BASE);
EUSCI_A_UART_transmitData(EUSCI_A0_BASE,ReceiveData);
}
Kevin Shi:
您好!
感谢使用TI的MSP430产品。
有关MSP430的问题,推荐到MSP430论坛提问,链接如下:
https://e2echina.ti.com/question_answer/microcontrollers/msp430/
谢谢