Exemple #1
0
uint32_t serial_getInt(uint8_t base){
    char str[33]; // Lowest base taken is 2, and we're dealing with 32 bit integers.
    char* ptr=str;
    uint32_t ret=0;

    if(base>36) return 0;
    if(!serial_initialized) serial_init(); //safety
    
    serial_gets(str, 33, '\r');
    while(*ptr){
       *ptr = toUpcase(*ptr);
       if((*ptr > 47 && *ptr < 58) || (*ptr > 64 && *ptr < 91))
            ret=toDec(*ptr, base)+ret*base;
       ptr++;
    }
    return ret;
}
Exemple #2
0
ssize_t serialchar_read(struct file *file, char *buf, size_t count, off_t offset)
{
	(void)offset;

	size_t retlen;
	struct serial_info *serial = file->f_private;

	while (serial->rx_count < count) {
		set_current_state(TASK_INTERRUPTIBLE);
		schedule();
	}
	if (count == 1)
		return serial_getc(serial, buf);
	if (serial_gets(serial, count, &retlen, buf) < 0)
		return -1;

	return retlen;
}
Exemple #3
0
int main(){
	int lineCounter=1;
	led_init();
	USART2_init(9600);
	lcd_init();
	
	serial_puts(USART2_Serial,"\nSystem ready\n");
	serial_puts(LCD_Serial,"\fSystem ready\n");

	while(1){
		serial_printf(USART2_Serial,"%d$ ",lineCounter);
		serial_gets(USART2_Serial,mybf,80);
		serial_printf(USART2_Serial,"%s\n",mybf);
		if(sscanf(mybf,"%s",wordBuffer) > 0){
			serial_printf(USART2_Serial,"word: %s\n",wordBuffer);
			serial_printf(LCD_Serial,"\fword: %s\n",wordBuffer);
			serial_printf(USART2_Serial,"characters: %d\n",strlen(wordBuffer));
		}
		lineCounter++;
	}
	return 0;
}
Exemple #4
0
int main(void)
{  
	memset(RX_BUF,0,4);
	led_init();
	nRF24L01_init();
	motor_init();			//电机初始化
	QuadCopter_init(&QuadCopter);

	Delayms(10);
	serial_init(115200);
	 
	LED_ON; 
   	serial_printf("\nhhhhhahhahahha终于可以了  \n ");
//	Delayms(100);
//    serial_flush(&tx_ringbuf);
	serial_putc('o');
	serial_gets((char*)rxbuf);
		
	while(1)
	{
	 
	}
	  	
}
Exemple #5
0
int main(int argc, char **argv) {
    char buf[256];
    int serial;
    double rawx, rawy;
    double velx = 0, vely = 0;
    double posx = 0, posy = 0;
    double accx, accy;

    enum {
        STATE_IDLE,
        STATE_MEASURING,
    } state = STATE_IDLE;

    if(argc < 2) {
        fprintf(stderr, "Usage: sensys-lab2 /dev/serial-port\n");
        return 1;
    }

    if((serial = open_serial(argv[1], BAUDRATE)) < 0) {
        fprintf(stderr, "Error: could not open serial port\n");
        return 1;
    }

    serial_puts(serial, "AT+OSX=3\r\n");
    serial_puts(serial, "AT+OSR=" STR(SAMPRATE) "\r\n"); //120 Hz sample rate


    buf[255] = 0;
    for(;;) {
        serial_gets(serial, buf, 255);
        if(sscanf(buf, "DATA AXL: %lf,%lf", &rawx, &rawy) < 2)
            continue;

        accx = ((rawx - BIASX)/SCALE)*G;
        accy = ((rawy - BIASY)/SCALE)*G;

        switch(state) {
        case STATE_IDLE:
            velx = vely = posx = posy = 0;

            if(accy < STARTTHRESHOLD) {
                printf("Starting measurement!\n");
                state = STATE_MEASURING;
            }
            break;
        case STATE_MEASURING:
            velx += accx*DT;
            vely += accy*DT;
            posx += velx*DT;
            posy += vely*DT;

            if(accy > STOPTHRESHOLD) {
                printf("Ending measurement!\n");
                printf("Distance: %lf m\n", -posy);
                state = STATE_IDLE;
            }
            break;
        }
    }

    return 0;
}