This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CCS/MSP430FR5739:MSP430FR5739中的 eUSCI_A -UART

Guru**** 2540190 points
Other Parts Discussed in Thread: MSP430FR5739

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/567377/ccs-msp430fr5739-eusci_a--uart-in-msp430fr5739

器件型号:MSP430FR5739

工具/软件:Code Composer Studio

我正在尝试使用 HC-06和 MSP430FR5739微控制器开发与 Android 软件通信的模块。 HC-06连接到 GND、VCC、p2.0 (TXD)、p2.1 (RXD)、我已经尝试了一周、但仍然不知道接收和读取从 Android 应用程序发送的数据。 我尝试了许多示例代码、阅读了许多论坛的文档。 我正在尝试了解和修改 e2e 论坛中的示例代码和代码、以测试如何获取 Android app.im 使用 CSS 版本 :6.1.3.00033发送的值  

我尝试实现的目标是,当我从 Android 应用程序发送值、读取该值并使 LED 闪烁时,

目前我正在尝试使用此代码示例(这来自之前有人在本站点上发布的2个问题,很抱歉我没有链接)

#include 

/*
* main.c
*/
unsigned int i;
unsigned char RXData = 0;
unsigned char TXData = 0;
unsigned char check = 0;
int main (void)
{
WDTCTL = WDTPW + WDTHOLD;//停止看门狗


//定义时钟(DCO)********

CSCTL0_H = 0xA5;//解锁 CS 寄存器(8位)

CSCTL1 |= DCOFSEL0 + DCOFSEL1;//设置最大值 DCO 设置- 8MHz DCORSEL = 0

CSCTL2 = SELA_3 + SELM_3;//设置 ACLK = DCO;MCLK = DCO;SMCLK = DCO

CSCTL3 = DIVA_8 + DIVS_3 + DIVM_3;//设置所有分频

器/XTIV1| DRCSCTL4; //将 XT1的驱动强度设置为最低1 (模式0)

CSCTL4 |= XT1OFF;//XT1禁用(高频率)

//UCSSELx *

//配置 UART 引脚*********

P2SEL1 |= BIT0 + BIT1;//P 2.1 RXD
P2SEL0 &=~(BIT0 + BIT1);//P 2.0 TXD

//配置 UART 0
UCA0CTL1 |= UCSWRST;//第一,复位软件 UCA0CTLW0 (寄存器)
UCA0CTL1 = UCA0CTL1
= UCABR0、UCABR1、UCA0/ UCABR1、UCA0 = UCA0、UCABR1、UCA0 = UCA0、UCABR1、UCA0 = UCA0、UCABR1、UCA0 = UCA0、UCA0 = UCA0、UCA0


BRS???

// 9600 1 6 8 0x20 -来自用户指南的表18-5

// UCA0MCTLW = 15-8:BRS,7-4:BRF,3-1:RES,0:UCOS16

UCA0MCTLW |= 0x2081;//调制
UCA0CTL1 &=~UCSWRST;//从 UCARX_REST= 0x2081;//启用

中断

while (1){

if (UCA0IFG & UCRXIFG)
{
RXData=UCA0RXBUF;
UCA0IFG &=~UCRXIFG;
P1OUT ^= BIT1 + BIT2;
}

// if (UCA0RXBUF |='t')){//
//PJPI_1








= 1;/BIT_PM1 = 1;/BITR/PM1 = 1;/BIT_PM1;/PM1 = 1;/= 1 + PBIT_BITRF/= 1


//打开 LED 指示完成

。}
}

//回显 RXed 字符,确认 TX 缓冲区已准备就绪#if
defined (__TI_Compiler_version__)|| Defined (__IAR_systems_ICC__)
#pragma vector=USCI_A0_Vector
__interrupt void USCI_A0_ISR (void)
#Elif defined (__GISR__)
__= USCI_A0_AURATIC_(void

)(void)(void USCI_IF_A0_IFT_IFICR_)(void)(void)(void UCI_IFT_UART_IFECISR_)(
#endif
{
switch (__even_in_range (UCA0IV、0x08))
{
case 0:break;//向量0 -无中断
情况2://向量2 - RXIFG
while (!(UCA0IFG&UCTXIFG)));// USCI_A0 TX 缓冲器准备就绪?
UCA0TXBUF = UCA0RXBUF;// TX -> RXED 字符
PJOUT |= PJOUT + 1;
break;
case 4:break;//向量4 - TXIFG
默认值:break;
}
} 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Lakshitha、
    您是否能够找到数据失败的位置? IE:您能看到应用程序发送的数据、还是 HC-06接收的数据、还是 UART 线路上的数据?

    要检查/尝试的事项:
    -确保您已将设备与 Android 配对。
    -检查您的引脚以确保 RX 和 TX 不会反向。 使用逻辑分析仪确认这一点。
    -尝试在 PC 终端中打开串行端口、并与 HC-06配对、以排除 Android 部分。

    请告诉我这是否有帮助。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Lakshitha、
    这有什么帮助吗?
    你还有其他问题吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Lakshitha、
    由于不活动、我将关闭此线程。 请告诉我此回答是否对您有所帮助、或者我们是否应该重新打开此回答以获得进一步帮助。 :-)