完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
主程序
#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" #include "pwm.h" //显示ATK-HC05模块的主从状态 void HC05_Role_Show(void) { 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 "); //连接成功 else LCD_ShowString(120,140,120,16,16,"STAisconnect"); //未连接 } int main(void) { u8 t; // u8 key; u8 sendmask=0; u8 sendcnt=0; u8 sendbuf[20]; u8 reclen=0; SystemInit(); delay_init(72); //延时函数初始化 NVIC_Configuration(); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级 uart_init(9600); //串口初始化为9600 LED_Init(); //初始化与LED连接的硬件接口 KEY_Init(); //初始化按键 LCD_Init(); //初始化LCD WM_Init(900,0); //不分频。PWM频率=72000/900=8Khz OINT_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()) //初始化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:"); OINT_COLOR=BLUE; HC05_Role_Show(); while(1) { if(t==50) { if(sendmask) //定时发送 { sprintf((char*)sendbuf,"ALIENTEK HC05 %drn",sendcnt); LCD_ShowString(30+40,160,200,16,16,sendbuf); //显示发送数据 u2_printf("ALIENTEK HC05 %drn",sendcnt); //发送到蓝牙模块 sendcnt++; if(sendcnt>99)sendcnt=0; } HC05_Sta_Show(); t=0; } if(USART2_RX_STA&0X8000) //接收到一次数据了 { LCD_Fill(30,200,240,320,WHITE); //清除显示 reclen=USART2_RX_STA&0X7FFF; //得到数据长度 USART2_RX_BUF[reclen]=0; //加入结束符 if(reclen==9||reclen==8) //控制DS1检测 { if(strcmp((const char*)USART2_RX_BUF,"+LED1 ON")==0) TIM_SetCompare3(TIM3,400); //打开LED1 PB0连接PA6 if(strcmp((const char*)USART2_RX_BUF,"+LED1 OFF")==0) { TIM_SetCompare3(TIM3,0); LED1=1; } //关闭LED1和LED0 if(strcmp((const char*)USART2_RX_BUF,"+LED0 ON")==0) LED1=0; //打开LED1 if(strcmp((const char*)USART2_RX_BUF,"+LED0 OFF")==0) LED1=1; //关闭LED1 } LCD_ShowString(30,200,209,119,16,USART2_RX_BUF);//显示接收到的数据 USART2_RX_STA=0; } t++; } } |
|
相关推荐
5个回答
|
|
是PB干扰了液晶屏。
|
|
|
|
液晶不显示,检查初始化是否正常。
|
|
|
|
没有问题的,我之前的蓝牙串口实验室可以显示液晶屏的,加上PWM就不行了
|
|
|
|
肯定是哪里干扰了,慢慢找.
|
|
|
|
PB端口不要使用定时器,影响显示屏
|
|
|
|
只有小组成员才能发言,加入小组>>
369浏览 1评论
497浏览 1评论
614浏览 1评论
用PSOC6 BLE当外围设备,两者传输数据时,psoc6概率性出现蓝牙挂死的原因?
501浏览 1评论
是否有办法通过CYW20835板的固件发送BLE HCI命令?
475浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-27 21:59 , Processed in 1.071237 second(s), Total 85, Slave 68 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号