准备:1.需要一个蓝牙从模块(在某宝上有卖,价格在20~50元之间)
如下图所示:
蓝牙从模块
2. 需要一个“蓝牙串口”的安卓应用,可以在安卓手机应用商店里找到
如下图所示:
蓝牙app
3:一款单片机(这里用TI公司的msp430g2553做示范),4根杜邦线
开工:
1.连接,蓝牙模块的VCC与GND分别与单片机标注为VCC与GND的针脚对应相连接。其次蓝牙的RXD与TXD与单片机的TXD与RXD分别连接(VCC指电源,GND指,单片机的RXD与TXD可能要看单片机的引脚功能才能知道那些引脚是TXD,RXD)
2.烧入代码,手机蓝牙与单片机蓝牙模块HC-06连接,发送消息0或1,即可看到LED灯被点亮(具体细节请自行摸索,尝试是一种很好的学习方法)
源代码如下:
- #include <msp430.h>
- int main(void)
- {
- WDTCTL = WDTPW + WDTHOLD; // Stop WDT
- if (CALBC1_1MHZ==0xFF) // If calibration constant erased
- {
- while(1); // do not load, trap CPU!!
- }
- DCOCTL = 0; // Select lowest DCOx and MODx settings
- BCSCTL1 = CALBC1_1MHZ; // Set DCO
- DCOCTL = CALDCO_1MHZ;
- P1SEL = BIT1 + BIT2 ; // P1.1 = RXD, P1.2=TXD
- P1SEL2 = BIT1 + BIT2 ; // P1.1 = RXD, P1.2=TXD
- UCA0CTL1 |= UCSSEL_2; // SMCLK
- UCA0BR0 = 104; // 1MHz 9600
- UCA0BR1 = 0; // 1MHz 9600
- UCA0MCTL = UCBRS0; // Modulation UCBRSx = 1
- UCA0CTL1 &= ~UCSWRST; // **Initialize USCI state machine**
- IE2 |= UCA0RXIE; // Enable USCI_A0 RX interrupt
- __bis_SR_register(LPM0_bits + GIE); // Enter LPM0, interrupts enabled
- }
- // Echo back RXed character, confirm TX buffer is ready first
- #if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)
- #pragma vector=USCIAB0RX_VECTOR
- __interrupt void USCI0RX_ISR(void)
- #elif defined(__GNUC__)
- void __attribute__ ((interrupt(USCIAB0RX_VECTOR))) USCI0RX_ISR (void)
- #else
- #error Compiler not supported!
- #endif
- {
- while (!(IFG2&UCA0TXIFG)); // USCI_A0 TX buffer ready?
- if(UCA0RXBUF=='0') // TX -> RXed character
- {
- P1DIR |= BIT0;
- P1OUT ^= BIT0;
- }
- }
复制代码 |