stm32 NRF24L01+USART搞定有线和无线通信
时间:11-19
来源:互联网
点击:
Fun()
1 /****************************************************************************2 * 名 称:static void _cbCallback(WM_MESSAGE * pMsg)3 * 功 能:ucgui回调函数,是作为对话框动作响应的函数4 * 入口参数:无5 * 出口参数:无6 * 说 明:7 * 调用方法:8 ****************************************************************************/ 9 static void _cbCallback(WM_MESSAGE * pMsg) {10 int NCode, Id;11 switch (pMsg->MsgId) {12 case WM_NOTIFY_PARENT: //通知父窗口有事件在窗口部件上发生13 Id = WM_GetId(pMsg->hWinSrc); //获得对话框窗口里发生事件的部件的ID14 NCode = pMsg->Data.v; //通知代码15 switch (NCode) {16 case WM_NOTIFICATION_RELEASED: //窗体部件动作被释放 17 if (Id == GUI_ID_BUTTON2) { //按键CLEAR被松开18 memcpy(status_buf, "", 20); //清空状态文本缓冲区 19 memcpy(rx_buf, "", 32); //清空接收文本缓冲区 20 TEXT_SetText(text5,(const char *)status_buf); //清空状态文本框 21 EDIT_SetText(edit2,(const char *)rx_buf); //清空接收字符编辑框22 memcpy(tx_buf, "", 32); //清空发送文本缓冲区23 NRF24L01_TXBUF(tx_buf,32); //将发送字符缓冲区的字符通过NRF24L01发送出去 24 } 25 else if (Id == GUI_ID_BUTTON0) { //按键SEND 被松开26 memcpy(tx_buf, "1234567890abcdefghij!@#$%^&*()-=", 32); //将32字节的文本拷贝到发送文本缓冲区27 memcpy(rx_buf, "", 32); //清空接收文本缓冲区 28 memcpy(status_buf, "", 20); //清空状态文本缓冲区 29 EDIT_SetText(edit2,(const char *)rx_buf); //清空接收字符编辑框 30 NRF24L01_TXBUF(tx_buf,32); //将发送字符缓冲区的字符通过NRF24L01发送出去31 memcpy(tx_buf, "", 32); //清空发送文本缓冲区32 TEXT_SetText(text5,(const char *)status_buf); //清空状态文本框 33 }34 else if (Id == GUI_ID_RADIO0) { //NRF24L01无线速率点选框点选动作完成35 nrf_baud= RADIO_GetValue(rd0); //获得速率表示值36 RX_Mode(); //进入接收模式 37 }38 else if (Id == GUI_ID_LISTBOX0){ //NRF24L01无线通道选择动作39 nrf_Pipe= LISTBOX_GetSel(list1); //获得NRF24LL01无线通道表示值 40 RX_Mode(); //进入接收模式 41 }else if(Id == GUI_ID_SLIDER1){ //slider1 的值被改变42 speed1=SLIDER_GetValue(slider1);//获得slider1的值43 if(speed1>0){44 speed_show[0]=+;45 speed_show[1]=0+speed1;46 control_data=8+speed1;47 }else if(speed1<0){48 speed_show[0]=-;49 speed_show[1]=0-speed1;50 control_data=16-speed1;51 }else{52 speed_show[0]= ;53 speed_show[1]=0;54 control_data=0;55 }56 // USART_SendChar(USART1,control_data);57 TEXT_SetText(text_speed1,speed_show);58 speed_change_flag=1; 59 }else if(Id == GUI_ID_SLIDER2){ //slider2 的值被改变60 speed2=SLIDER_GetValue(slider2);//获得slider2的值61 if(speed2>0){62 speed_show[0]=+;63 speed_show[1]=0+speed2;64 control_data=32+8+speed2;65 }else if(speed2<0){66 speed_show[0]=-;67 speed_show[1]=0-speed2;68 control_data=32+16-speed2;69 }else{70 speed_show[0]= ;71 speed_show[1]=0;72 control_data=0;73 }74 TEXT_SetText(text_speed2,speed_show);75 speed_change_flag=1; 76 }else if(Id == GUI_ID_SLIDER3){ //slider3 的值被改变77 speed3=SLIDER_GetValue(slider3);//获得slider3的值78 if(speed3>0){79 speed_show[0]=+;80 speed_show[1]=0+speed3;81 control_data=64+8+speed3;82 }else if(speed3<0){83 speed_show[0]=-;84 speed_show[1]=0-speed3;85 control_data=64+16-speed3;86 }else{87 speed_show[0]= ;88 speed_show[1]=0;89 control_data=0;90 }91 TEXT_SetText(text_speed3,speed_show);92 speed_change_flag=1; 93 }else if(Id == GUI_ID_SLIDER4){ //slider4 的值被改变94 speed4=SLIDER_GetValue(slider4);//获得slider4的值95 if(speed4>0){96 speed_show[0]=+;97 speed_show[1]=0+speed4;98 control_data=96+8+speed4;99 }else if(speed4<0){100 speed_show[0]=-; 101 speed_show[1]=0-speed4;102 control_data=96+16-speed4;103 }else{104 speed_show[0]= ;105 speed_show[1]=0;106 control_data=0;107 }108 TEXT_SetText(text_speed4,speed_show);109 speed_change_flag=1; 110 }else if(Id == GUI_ID_SLIDER5){ //slider5 的值被改变speed5=SLIDER_GetValue(slider5);//获得slider5的值112 if(speed5>0){113 speed_show[0]=+;114 speed_show[1]=0+speed5;115 control_data=128+8+speed5;116 }else if(speed5<0){117 speed_show[0]=-;118 speed_show[1]=0-speed5;119 control_data=128+16-speed5;120 }else{121 speed_show[0]= ;122 speed_show[1]=0;123 control_data=0;124 }125 TEXT_SetText(text_speed5,speed_show);126 speed_change_flag=1; 127 }128 break;129 default: break;130 } 131 default:132 WM_DefaultProc(pMsg); //默认程序来处理消息133 break;134 }135 }窗口回调函数
1 /* 定义了对话框资源列表 */2 static const GUI_WIDGET_CREATE_INFO aDialogCreate[] = {3 //建立窗体, 大小是800X480 原点在0,04 { FRAMEWIN_CreateIndirect, "http://beautifulzzzz", 0,0,0, 800, 480, FRAMEWIN_CF_ACTIVE },5 { BUTTON_CreateIndirect, "SEND", GUI_ID_BUTTON0, 0, 395, 200, 55 },6 7 { BUTTON_CreateIndirect, "CLEAR", GUI_ID_BUTTON2, 200, 395, 200, 55 },8 { EDIT_CreateIndirect, "", GUI_ID_EDIT1, 0, 190, 400, 65, EDIT_CF_LEFT, 50 },9 { EDIT_CreateIndirect, "", GUI_ID_EDIT2, 0, 290, 400, 65, EDIT_CF_LEFT, 50 },10 11 //建立TEXT控件,起点是窗体的X,X,大小XXY 文字左对齐12 { TEXT_CreateIndirect, "Send Text Area", GUI_ID_TEXT0, 1, 160, 400, 25, TEXT_CF_LEFT },13 { TEXT_CreateIndirect, "Receive Text Area ", GUI_ID_TEXT1, 1, 263, 400, 25, TEXT_CF_LEFT },14 15 { TEXT_CreateIndirect, "2M bps", GUI_ID_TEXT2, 23, 22, 140, 25, TEXT_CF_LEFT },16 { TEXT_CreateIndirect, "1M bps", GUI_ID_TEXT3, 23, 42, 140, 25, TEXT_CF_LEFT },17 { TEXT_CreateIndirect, "250K bps", GUI_ID_TEXT5, 23, 62, 140, 25, TEXT_CF_LEFT },18 19 { TEXT_CreateIndirect, "", GUI_ID_TEXT4, 0, 120, 400, 25, TEXT_CF_LEFT },20 21 { RADIO_CreateIndirect, "Receive Mode", GUI_ID_RADIO0, 3, 33, 40, 52, RADIO_TEXTPOS_LEFT,3},22 23 { LISTBOX_CreateIndirect, "", GUI_ID_LISTBOX0, 134, 13, 130, 90, 0, 0 },24 25 //建立滑块26 { SLIDER_CreateIndirect, NULL, GUI_ID_SLIDER1, 440, 60, 320, 25, 0, 0 },27 { SLIDER_CreateIndirect, NULL, GUI_ID_SLIDER2, 440, 120, 320, 25, 0, 0 },28 { SLIDER_CreateIndirect, NULL, GUI_ID_SLIDER3, 440, 180, 320, 25, 0, 0 },29 { SLIDER_CreateIndirect, NULL, GUI_ID_SLIDER4, 440, 240, 320, 25, 0, 0 },30 { SLIDER_CreateIndirect, NULL, GUI_ID_SLIDER5, 440, 300, 320, 25, 0, 0 },31 //建立滑块对应的text32 { TEXT_CreateIndirect, "0", GUI_ID_TEXT_SPEED1, 770, 60, 25, 25, TEXT_CF_LEFT },33 { TEXT_CreateIndirect, "0", GUI_ID_TEXT_SPEED2, 770, 120, 25, 25, TEXT_CF_LEFT },34 { TEXT_CreateIndirect, "0", GUI_ID_TEXT_SPEED3, 770, 180, 25, 25, TEXT_CF_LEFT },35 { TEXT_CreateIndirect, "0", GUI_ID_TEXT_SPEED4, 770, 240, 25, 25, TEXT_CF_LEFT },36 { TEXT_CreateIndirect, "0", GUI_ID_TEXT_SPEED5, 770, 300, 25, 25, TEXT_CF_LEFT },37 };
stm32NRF24L01USART无线通 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)