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.

[参考译文] MSP430G2553:MSP430与HC 06蓝牙通信一起使用的问题

Guru**** 2595805 points
Other Parts Discussed in Thread: MSP430G2553

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/642212/msp430g2553-problem-about-msp430-using-with-hc-06-bluetooth-communication

部件号:MSP430G2553

首先,大家好!

我在MSP430使用hc06蓝牙通信时遇到了问题,在此之前我的主要项目是气体探测器, 我使用了ADC代码样本并根据气体传感器进行了配置,之后我将我的项目添加到警报系统的蜂鸣器中,我的声音功能目前还可以,但我需要实施蓝牙hc06来提醒Android手机,例如'检测到气体'。我是 hc06有问题。 我现在正在着手进行LED开场,但我无法再次回复。 我猜Android部分还可以,当单击按钮1时,它会发送文本'1'数学值,单击按钮2发送文本'2'数学值。 请检查我的代码,如果您知道我的项目如何在ADC中写入'检测到气体',请提前通知我,谢谢。

下面是我的通过蓝牙打开LED的示例代码 :  

#include "io430-h"
unsigned char Rx_Data = 0; //通过UART接收的字节

内部主(无效)

 /***设置系统时钟***/
 WDTCTL = WDTPW + WDTHOLD;  //停止WDT
 IF (CALC1_1MHz == 0xFF)  // If校准常数已擦除
 {
 而(1); //不加载,捕获CPU!
 }
 DCOCTL = 0;  //选择最低DCOx和MODx设置
 BCSCTL1 = CALC1_1MHz; //设置DCO
 DCOCTL = CALDCO_1MHz;

 /***设置GPIO ***/
 P1SEL = BIT1 + BIT2;     // WFP 1.1 = RXD,WFP 1.2 = TXD
 P1SEL2 = BIT1 + BIT2;     // WFP 1.1 = RXD,WFP 1.2 = TXD
 P1DIR |= BIT6 + BIT0;     // WFP 1.6 和WFP 1.0 设置为输出
 P1OUT &=~(BIT6 + BIT0); // WFP 1.6 和WFP 1.0 设置为LOW
/***设置USCI ***/
 UCA0CTL1 |= UCSSEL_2;     // SMCLK
 UCA0BR0 = 104;       // 1MHz 9600
 UCA0BR1 = 0;       // 1MHz 9600
 UCA0MCTL = UCBRS0;      //调制UCBRSx = 1
 UCA0CTL1 &=~UCSWRST;     //初始化USCI状态机
         IE2 |= UCA0RXIE;      //启用USI_A0 RX中断
 __bis_sr_register(GIE);  //启用中断
       
       如果(Rx_Data='1'){
  // P1SEL &=~BIT6;     //选中WFP 1.6 作为GPIO
         P1OUT |= BIT6 + BIT0;   // WFP 1.0 和WFP 1.6 设置为HIGH
       }
       如果(Rx_Data =='0'){
 // P1SEL &=~BIT6;     //选中WFP 1.6 作为GPIO
  P1OUT &=~(BIT6 + BIT0);  // WFP 1.0 和WFP 1.6 设置为LOW
       }
}
       
       // USCI中断处理程序
#if defined(__TI_Compiler_version__)|| defined(__IAR_SYSTEMS _ICC__)
#pragma vector=USCIAB0RX_vector
__interrupt void USCI0RX_ISR(void)
#Elif已定义(__GMNU__)
void __attribute__((interrupt (USICAB0RX_vector))) USCI0RX_ISR (void)
#否则
错误
#endif

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

    我不确定我是否理解了您的问题,您是否要通过UART在MSP430G2553和HC06模块之间通信,并且代码对RX数据正常工作,但对TX数据失败? 如果这是问题所在,您是否检查了TX引脚上的波形?

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

    是的,你说得对,我想 互相沟通。 实际上,我的主要项目是上面提到的气体检测器

    我的问题很快就出在我的项目的蓝牙部分。 我想通过Android手机上的蓝牙添加警报消息(如检测到气体)。 在练习时,我尝试通过蓝牙(我编写了代码)点亮灯光,但我的代码不是很好,我提到了详细信息。 需要帮助。 感谢您的关注

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

    大家对此有什么想法吗?

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

    在代码中,RX_Data应在USCI中断句柄中设置为UCA0RXBUF,并且您需要在Main()中设置While循环或输入LPM以等待UART RX数据,请参阅MSP430G2553 UART的示例代码。

    此致
    KC