/************************************************************************* UART0发送 用于串口调试助手命令调试pid等参数 *************************************************************************/ void Debugmessgae() { LPLD_UART_PutCharArr(UART0,"Speed_PWM = ", 12); SendDec(Speed_PWM); LPLD_UART_PutChar(UART0,' '); LPLD_UART_PutCharArr(UART0,"Speed_Out = ", 12);//期待脉冲 SendDec(Speed_Out); LPLD_UART_PutChar(UART0,' '); LPLD_UART_PutCharArr(UART0,"Speed_temp = ", 13);//下次启动时脉冲 SendDec(Speed_temp); LPLD_UART_PutChar(UART0,' '); LPLD_UART_PutCharArr(UART0,"\r\n",2); LPLD_UART_PutCharArr(UART0,"KP = ",5); SendDec(Kp); LPLD_UART_PutChar(UART0,' '); LPLD_UART_PutCharArr(UART0,"KD = ",5); SendDec(Kd); LPLD_UART_PutChar(UART0,' '); LPLD_UART_PutCharArr(UART0,"SP = ",5); SendDec(Sp); LPLD_UART_PutChar(UART0,' '); LPLD_UART_PutCharArr(UART0,"Sd = ",5); SendDec(Sd); LPLD_UART_PutChar(UART0,' '); LPLD_UART_PutCharArr(UART0,"Si = ",5); SendDec(count); LPLD_UART_PutChar(UART0,' '); LPLD_UART_PutCharArr(UART0,"\r\n",2); }
//向服务器发送数据 uint8 SQC_ME3000_Send(uint8 * msg,uint16 len) { uint8 cmd[20]; gprs_pib.Rxflag = 0; sprintf(cmd,"AT+ZIPSEND=1,%d\r\n",len); LPLD_UART_PutCharArr(UART5,cmd,strlen(cmd)); while(1) { delay(); if(gprs_pib.Rxflag == 3) { gprs_pib.Rxflag = 0; LPLD_UART_PutCharArr(UART5,msg,len); LPLD_UART_PutChar(UART5,0x0D); LPLD_UART_PutChar(UART5,0x0A); } if(gprs_pib.Rxflag == 2) { if(strstr(gprs_pib.Rxbuf,"+ZIPSEND:OK") != 0) return TRUE; else return FALSE; } } }
//nrf24l01接收中断 void portc_handle() { printf("Nrf24L01 rev Succeed!!\r\n"); LPLD_Nrf24L01_RecvFrame(rx_buf, NRF24L01_PLOAD_LEN); LPLD_UART_PutCharArr(UART5, (char*)rx_buf, NRF24L01_PLOAD_LEN);//通过串口5打印输出值 printf("\r\n"); }
void uart4_bluetooth_init(void) { uart4_init_struct.UART_Uartx = UART4; //使用UART5 uart4_init_struct.UART_BaudRate = 115200; //设置波特率115200 uart4_init_struct.UART_RxPin = PTE25; //接收引脚为PTE25 uart4_init_struct.UART_TxPin = PTE24; //发送引脚为PTE24 uart4_init_struct.UART_RxIntEnable = TRUE; //使能接收中断 uart4_init_struct.UART_RxIsr = uart4_isr; //设置接收中断函数 //初始化UART LPLD_UART_Init(uart4_init_struct); LPLD_UART_EnableIrq(uart4_init_struct); LPLD_UART_PutCharArr(UART4, "Initial uart4 successful.\r\n", 29); }
//关闭tcp连接 uint8 SQC_ME3000_Disconnect() { uint8 cmd[20]; gprs_pib.Rxflag = 0; sprintf(cmd,"AT+ZIPCLOSE=1\r\n"); LPLD_UART_PutCharArr(UART5,cmd,strlen(cmd)); while(1) { delay(); if(gprs_pib.Rxflag == 2) { if(strstr(gprs_pib.Rxbuf,"+ZIPCLOSE:OK") != 0) return TRUE; else return FALSE; } } }
//查询tcp连接状态 uint8 SQC_ME3000_Tcpstat() { uint8 cmd[20]; gprs_pib.Rxflag = 0; sprintf(cmd,"AT+ZIPSTATUS=1\r\n"); LPLD_UART_PutCharArr(UART5,cmd,strlen(cmd)); while(1) { delay(); if(gprs_pib.Rxflag == 2) { if(strstr(gprs_pib.Rxbuf,"+ZIPSTATUS:ESTABLISHED") != 0) return TRUE; else return FALSE; } } }
//使用tcp连接服务器 uint8 SQC_ME3000_Connect(struct _in_addr addr) { uint8 cmd[50]; gprs_pib.Rxflag = 0; sprintf(cmd,"AT+ZIPSETUP=1,%d.%d.%d.%d,%d\r\n",addr.s_addr[0],addr.s_addr[1],addr.s_addr[2],addr.s_addr[3],addr.s_port); LPLD_UART_PutCharArr(UART5,cmd,strlen(cmd)); while(1) { delay(); if(gprs_pib.Rxflag == 2) { if(strstr(gprs_pib.Rxbuf,"+ZIPSETUP:CONNECTED") != 0) return TRUE; else return FALSE; } } }
//关闭gprs网络 uint8 SQC_ME3000_Close() { uint8 cmd[20]; gprs_pib.Rxflag = 0; sprintf(cmd,"AT+ZPPPCLOSE\r\n"); LPLD_UART_PutCharArr(UART5,cmd,strlen(cmd)); while(1) { delay(); if(gprs_pib.Rxflag == 2) { if(strstr(gprs_pib.Rxbuf,"+ZPPPCLOSE:OK") != 0 || strstr(gprs_pib.Rxbuf,"+ZPPPCLOSE:DISCONNECTED") != 0) return TRUE; else return FALSE; } } }
//打开gprs网络 uint8 SQC_ME3000_Open() { uint8 cmd[20]; gprs_pib.Rxflag = 0; sprintf(cmd,"AT+ZPPPOPEN\r\n"); LPLD_UART_PutCharArr(UART5,cmd,strlen(cmd)); while(1) { delay();delay(); if(gprs_pib.Rxflag == 2) { if(strstr(gprs_pib.Rxbuf,"+ZPPPOPEN:CONNECTED") != 0 || strstr(gprs_pib.Rxbuf,"+ZPPPOPEN:ESTABLISHED") != 0) return TRUE; else return FALSE; } } }
void main (void) { char i; gpio_init (); uart_init(); LPLD_UART_PutCharArr(UART0, "Input something:\r\n", 20); while(1) { if (flag) { for (i = 20; i < 25; i ++) LPLD_GPIO_Toggle_b(PTB, i); flag = 0; } } }
void pit_isr1() //100ms中断,系统板闪灯 { TIME_PASSED ++; if (__start_beep >= 0) { yesbeep(); __start_beep --; } else nobeep(); //if (!GetCmdAction()) is_enabled = 0; //unsigned char keyCode=scan_switch(); LPLD_GPIO_Toggle_b(PTA, 15); // Send cur_point and direction to other car static char __bluetooth_buf[3] = {0}; extern enum DIRECTION __actor_head_direction; extern struct Point __actor_cur_point; __bluetooth_buf[0] = 0xff; // Package header __bluetooth_buf[1] = (char) graph_get_point_number(point_map_to_standard(__actor_cur_point)); __bluetooth_buf[2] = (char) direction_map_to_standard(__actor_head_direction); LPLD_UART_PutCharArr(UART4, __bluetooth_buf, sizeof(__bluetooth_buf)); }
//查询是否入网 uint8 SQC_ME3000_Creg() { uint8 cmd[20]; gprs_pib.Rxflag = 0; sprintf(cmd,"AT+CREG?\r\n"); while(1) { LPLD_UART_PutCharArr(UART5,cmd,strlen(cmd)); delay();delay(); if(gprs_pib.Rxflag == 2) { if(strstr(gprs_pib.Rxbuf,"+CREG: 0, 1") != 0) { gprs_pib.Rxflag = 0; return TRUE; } else gprs_pib.Rxflag = 0; } } }
void uart0_recv_isr(void) { char re_data; re_data = LPLD_UART_GetChar(UART0);//接收一个字节 if(re_data=='w') { if(Speed_Out==0) { Speed_temp += 5; if(Speed_temp>=400) { Speed_temp = 400; } } else { Speed_Out += 5; if(Speed_Out>=400) { Speed_Out = 400; } } Debugmessgae(); } else if(re_data=='s') { if(Speed_Out==0) { Speed_temp -= 5; if(Speed_temp>=400) { Speed_temp = 400; } } else { Speed_Out -= 5; if(Speed_Out>=400) { Speed_Out = 400; } } Debugmessgae(); } else if(re_data == 'z') { if(Speed_Out) { Speed_temp = Speed_Out; Speed_Out = 0; Speed_PWM = 0; //delay(); } else { Speed_Out = Speed_temp; } Debugmessgae(); } else if(re_data == 'm') { if(viewflag == 0) { viewflag = 1; } else { viewflag = 0; } } else if(re_data == 'q') { if(SpeedMessageflag == 0) { SpeedMessageflag = 1; } else { SpeedMessageflag = 0; } } else if(re_data == 'u') { Kp = Kp + 1; Debugmessgae(); } else if(re_data == 'i') { Kp = Kp-1; if(Kp<0) { Kp = 0; //Kac = 0; } Debugmessgae(); } else if(re_data == 'o') { Kd++; Debugmessgae(); } else if(re_data == 'p') { Kd--; if(Kd<0) { Kd = 0; } Debugmessgae(); } else if(re_data == 'f') { Sp += 1; //Sp++; Debugmessgae(); } else if(re_data == 'g') { Sp -= 1; //Sp--; if(Sp>=200) { Sp = 0; Sp = 100; } Debugmessgae(); } else if(re_data == 'h') { Sd += 1; Debugmessgae(); } else if(re_data == 'j') { Sd -= 1; if(Sd<0) { Sd = 0; } Debugmessgae(); } else if(re_data == 'k') { Si += 0.01; count++; Debugmessgae(); } else if(re_data == 'l') { Si -= 0.01; count--; if(Si<0) { Si = 0; count = 0; } Debugmessgae(); } else if(re_data == '1') { CCDtime++; SendDec(CCDtime); //LPLD_UART_PutChar(UART0,' '); LPLD_UART_PutCharArr(UART0,"\r\n",2); } else if(re_data == '2') { CCDtime--; SendDec(CCDtime); //LPLD_UART_PutChar(UART0,' '); LPLD_UART_PutCharArr(UART0,"\r\n",2); } else if(re_data == '3') { notch_offset++; SendDec(notch_offset); //LPLD_UART_PutChar(UART0,' '); LPLD_UART_PutCharArr(UART0,"\r\n",2); } else if(re_data == '4') { notch_offset--; SendDec(notch_offset); //LPLD_UART_PutChar(UART0,' '); LPLD_UART_PutCharArr(UART0,"\r\n",2); } else if(re_data == '5') { if(counterflag==0) { counterflag = 1; } else { counterflag = 0; } } else if(re_data == '6') { if(scopeflag==0) { scopeflag = 1 ; } else { scopeflag = 0; } } }