#include "led.h"
#include "delay.h"
#include "sys.h"
#include "usart.h"
#include "lcd.h"
#include "hc05.h"
#include "usart2.h"
#include "string.h"
#include "key.h"
//ALIENTEKminiSTM32¿a·¢°åà©Õ1êμÑé
//ATK-HC05à¶Ñà′®¿úÄ£¿éêμÑé-¿aoˉêy°æ±¾
//¼¼êõÖ§3Ö£owww.openedv.com
//1ãÖYêDDÇòíμç×ó¿Æ¼¼óDÏT1«Ë¾
//ALIENTEKÕ½½¢STM32¿a·¢°åêμÑé13
//TFTLCDÏÔê¾êμÑé
//¼¼êõÖ§3Ö£owww.openedv.com
//1ãÖYêDDÇòíμç×ó¿Æ¼¼óDÏT1«Ë¾
//ÏÔê¾ATK-HC05Ä£¿éμÄÖ÷′ó×′ì¬
void HC05_Role_Show(void)
{
if(HC05_Get_Role()==1)LCD_ShowString(30,140,200,16,16,"ROLE:Master"); //Ö÷»ú
else LCD_ShowString(30,140,200,16,16,"ROLE:Slave "); //′ó»ú
}
//ÏÔê¾ATK-HC05Ä£¿éμÄᬽó×′ì¬
void HC05_Sta_Show(void)
{
if(HC05_LED)LCD_ShowString(120,140,120,16,16,"STA:Connected "); //ᬽó3é1|
else LCD_ShowString(120,140,120,16,16,"STA:Disconnect"); //Î′ᬽó
}
int main(void)
{
u8 t;
u8 key;
u8 sendmask=0;
u8 sendcnt=0;
u8 sendbuf[20];
u8 reclen=0;
delay_init(); //Ñóê±oˉêy3õê¼»ˉ
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //éèÖÃNVICÖD¶Ï·Ö×é2:2λÇàÕ¼óÅÏè¼¶£¬2λÏìó|óÅÏè¼¶
uart_init(9600); //′®¿ú3õê¼»ˉÎa9600
LED_Init(); //3õê¼»ˉóëLEDᬽóμÄó2¼t½ó¿ú
KEY_Init(); //3õê¼»ˉ°′¼ü
LCD_Init(); //3õê¼»ˉLCD
POINT_COLOR=RED;
LCD_ShowString(30,30,200,16,16,"ALIENTEK STM32 ^_^");
LCD_ShowString(30,50,200,16,16,"HC05 BLUETOOTH COM TEST");
LCD_ShowString(30,70,200,16,16,"ATOM@ALIENTEK");
while(HC05_Init()) //3õê¼»ˉATK-HC05Ä£¿é
{
LCD_ShowString(30,90,200,16,16,"ATK-HC05 Error!");
delay_ms(500);
LCD_ShowString(30,90,200,16,16,"Please Check!!!");
delay_ms(100);
}
LCD_ShowString(30,90,200,16,16,"WK_UP:ROLE KEY0:SEND/STOP");
LCD_ShowString(30,110,200,16,16,"ATK-HC05 Standby!");
LCD_ShowString(30,160,200,16,16,"Send:");
LCD_ShowString(30,180,200,16,16,"Receive:");
POINT_COLOR=BLUE;
HC05_Role_Show();
while(1)
{
key=KEY_Scan(0);
if(key==WKUP_PRES) //ÇD»»Ä£¿éÖ÷′óéèÖÃ
{
key=HC05_Get_Role();
if(key!=0XFF)
{
key=!key; //×′ì¬è¡·′
if(key==0)HC05_Set_Cmd("AT+ROLE=0");
else HC05_Set_Cmd("AT+ROLE=1");
HC05_Role_Show();
HC05_Set_Cmd("AT+RESET"); //¸′λATK-HC05Ä£¿é
}
}else if(key==KEY0_PRES)
{
sendmask=!sendmask; //·¢Ëí/í£Ö1·¢Ëí
if(sendmask==0)LCD_Fill(30+40,160,240,160+16,WHITE);//Çå3yÏÔê¾
}else delay_ms(10);
if(t==50)
{
if(sendmask) //¶¨ê±·¢Ëí
{
sprintf((char*)sendbuf,"ALIENTEK HC05 %d\r\n",sendcnt);
LCD_ShowString(30+40,160,200,16,16,sendbuf); //ÏÔê¾·¢Ëíêy¾Y
u2_printf("ALIENTEK HC05 %d\r\n",sendcnt); //·¢Ëíμ½à¶ÑàÄ£¿é
sendcnt++;
if(sendcnt>99)sendcnt=0;
}
HC05_Sta_Show();
t=0;
LED0=!LED0;
}
if(USART2_RX_STA&0X8000) //½óêÕμ½ò»′Îêy¾YáË
{
LCD_Fill(30,200,240,320,WHITE); //Çå3yÏÔê¾
reclen=USART2_RX_STA&0X7FFF; //μÃμ½êy¾Y3¤¶è
USART2_RX_BUF[reclen]=0; //¼óèë½áêø·û
if(reclen==9||reclen==8) //¿ØÖÆDS1¼ì2a
{
if(strcmp((const char*)USART2_RX_BUF,"+LED1 ON")==0)LED1=0; //′ò¿aLED1
if(strcmp((const char*)USART2_RX_BUF,"+LED1 OFF")==0)LED1=1;//1رÕLED1
}
LCD_ShowString(30,200,209,119,16,USART2_RX_BUF);//ÏÔê¾½óêÕμ½μÄêy¾Y
USART2_RX_STA=0;
}
t++;
}
}
|