void Send(uint8_t user) { uint16_t stemp; uint8_t sn = true; uint8_t cnt = 1; uint8_t Temp[17]; sprintf(Temp, "AT+CIPSEND=%c,3\r\n", user); while(usart_write_buffer_job(&usart_instance, Temp, sizeof(Temp)) != STATUS_OK){} while(sn) if(usart_read_wait(&usart_instance, &stemp) == STATUS_OK) { if(stemp == '>') { while(usart_write_buffer_wait(&usart_instance, num, sizeof(num)) != STATUS_OK){} while(true) if(usart_read_wait(&usart_instance, &stemp) == STATUS_OK) { if(stemp == 'K') { sn = false; break; } else if(cnt == 1000) { Send(user); sn = false; break; } cnt ++; } } } }
int main(void) { system_init(); //! [setup_init] configure_usart(); //! [setup_init] //! [main] //! [main_send_string] uint8_t string[] = "Hello World!\r\n"; usart_write_buffer_wait(&usart_instance, string, sizeof(string)); //! [main_send_string] //! [main_rec_var] uint16_t temp; //! [main_rec_var] //! [main_loop] while (true) { //! [main_read] if (usart_read_wait(&usart_instance, &temp) == STATUS_OK) { //! [main_read] //! [main_write] while (usart_write_wait(&usart_instance, temp) != STATUS_OK) { } //! [main_write] } } //! [main_loop] //! [main] }
uint8_t getchar_timeout(uint32_t timeout) { uint16_t temp = NULL; start_timer(timeout); while((STATUS_OK != usart_read_wait(&cdc_uart_module, &temp)) && (timer_done()>0)); return ((uint8_t)temp); }
int main(void) { //! [setup_init] system_init(); //延时、串口初始化 delay_init(); configure_usart(); configure_usart1(); //配置输入输出变量 port_get_config_defaults(&pini); port_get_config_defaults(&pinc); pinc.direction = PORT_PIN_DIR_OUTPUT; //延时20s,使MQ2、MQ7充分初始化 delay_s(20); //MQ2、MQ7初始化输出模拟电压值 mq2_init_value = mq_run(MQ2); mq7_init_value = mq_run(MQ7); //对ESP8266进行WIFI配置初始化 esp_init(); //! [setup_init] //port_group_set_output_level(LED_0_PIN, LED_0_ACTIVE); //! [main] //定义串口接收变量,用户端口号 uint16_t temp='H', user = '******'; //! [main_loop] while (true) { if(usart_read_wait(&usart_instance, &temp) == STATUS_OK) { delay_us(8); if(temp == 'D') { while(usart_write_wait(&usart_inst1, 'T')!=STATUS_OK){} if(usart_read_wait(&usart_instance, &temp) == STATUS_OK) { if(temp == ',') { while(usart_write_wait(&usart_inst1, 'E')!=STATUS_OK){} if(usart_read_wait(&usart_instance, &temp) == STATUS_OK) { user = temp; while(usart_write_wait(&usart_inst1, 'S')!=STATUS_OK){} while(true) { if(usart_read_wait(&usart_instance, &temp) == STATUS_OK) { if(islower(temp)) { while(usart_write_wait(&usart_inst1, 'T')!=STATUS_OK){} Do(temp, user); break; } } } } } } } } } //! [main] }
int main (void) { system_init(); // Initialize local variables used in main int failed = 0; uint8_t debug_string[24] = "y: x: z: c: "; uint8_t jx, jy; char z, c, lz, lc; jx = jy = z = c = lz = lc = 0; int cycle_index = 0; uint8_t cycle = 0; uint8_t light_mode = 0; int light_modes = 1; uint16_t head, brake = 0; uint8_t LIGHTS_ON = 0; uint8_t FWD = 0; uint8_t HEADLIGHTS = 0; uint8_t DEBUG_BLE = 1; uint16_t BLE_temp = '0'; //uint16_t light_sens; // Configure Devices configure_port_pins(); configure_LED_PWM(); configure_usart(); configure_i2c_slave(); initIMU(); failed = !beginIMU(); configure_i2c_slave_callbacks(); //configure_ADC(); // Set the BLE module name to "long-itude" uint8_t string[17] = "AT+NAMElong-itude"; usart_write_buffer_wait(&usart_instance, string, sizeof(string)); for(int i = 0; i < 50000; ++i); // Switch LED direction to FWD setFWD(); while(1) { //readAccel(); //readGyro(); //readMag(); //light_sens = getLightSens(); // Read data from BLE if (usart_read_wait(&usart_instance, &BLE_temp) == STATUS_OK) { switch(BLE_temp) { case '0': LIGHTS_ON = 0; break; case '1': LIGHTS_ON = 1; break; case '2': DEBUG_BLE = 0; break; case '3': DEBUG_BLE = 1; break; case '4': setFWD(); break; case '5': setREV(); break; } } if(DEBUG_BLE) { uint8_t temp = I2C_slave_read_buffer[0]; debug_string[4] = '0' + temp%10; temp = (temp - temp%10)/10; debug_string[3] = '0' + temp%10; temp = (temp - temp%10)/10; debug_string[2] = '0' + temp%10; temp = (temp - temp%10)/10; temp = I2C_slave_read_buffer[1]; debug_string[11] = '0' + temp%10; temp = (temp - temp%10)/10; debug_string[10] = '0' + temp%10; temp = (temp - temp%10)/10; debug_string[9] = '0' + temp%10; temp = (temp - temp%10)/10; debug_string[16] = '0' + I2C_slave_read_buffer[2]; debug_string[21] = '0' + I2C_slave_read_buffer[3]; debug_string[22] = '\r'; debug_string[23] = '\n'; usart_write_buffer_wait(&usart_instance, debug_string, sizeof(debug_string)); } jx = I2C_slave_read_buffer[0]; jy = I2C_slave_read_buffer[1]; z = I2C_slave_read_buffer[2]; c = I2C_slave_read_buffer[3]; if(z == 0 && lz != 0) { if(jy > 200) { setFWD(); if(HEADLIGHTS && FWD) HEADLIGHTS = 0; else if(!HEADLIGHTS && FWD) HEADLIGHTS = 1; else if(HEADLIGHTS && !FWD) { FWD = 1; } else if(!HEADLIGHTS && !FWD) { HEADLIGHTS = 1; FWD = 1; } } else if(jy < 55) { setREV(); if(HEADLIGHTS && !FWD) HEADLIGHTS = 0; else if(!HEADLIGHTS && !FWD) HEADLIGHTS = 1; else if(HEADLIGHTS && FWD) { FWD = 0; } else if(!HEADLIGHTS && FWD) { HEADLIGHTS = 1; FWD = 0; } } else if(jy > 110 && jy < 150 && jx > 110 && jx < 150) { LIGHTS_ON = !LIGHTS_ON; } else if(jx > 200) { light_mode++; if(light_mode >= light_modes) light_mode = 0; } else if(jx < 55) { light_mode--; if(light_mode <= -1) light_mode = light_modes-1; } } if(LIGHTS_ON) { if(light_mode == 0) { if(cycle == 0) { setLeftRGB(cycle_index,0,0xCFFF-cycle_index); setRightRGB(cycle_index,0,0xCFFF-cycle_index); } if(cycle == 1) { setLeftRGB(0xCFFF-cycle_index,cycle_index,0); setRightRGB(0xCFFF-cycle_index,cycle_index,0); } if(cycle == 2) { setLeftRGB(0,0xCFFF-cycle_index,cycle_index); setRightRGB(0,0xCFFF-cycle_index,cycle_index); } cycle_index += 250; if(cycle_index >= 0xCFFF) { cycle_index = 0; cycle += 1; if(cycle == 3) cycle = 0; } } if(HEADLIGHTS) { head = 0xFFFF; setWhite(head); if(jy < 120) { brake = (0xFFFF/120)*(120-jy); setRed(brake); } else setRed(0); } else { setWhite(0); setRed(0); } } else { setWhite(0); setRed(0); setLeftRGB(0,0,0); setRightRGB(0,0,0); } lc = c; lz = z; } }