首先,大家好!
我在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
;