void main() { P0M0 = 0x00; P0M1 = 0x00; P1M0 = 0x00; P1M1 = 0x00; P2M0 = 0x00; P2M1 = 0x00; P3M0 = 0x00; P3M1 = 0x00; P4M0 = 0x00; P4M1 = 0x00; P5M0 = 0x00; P5M1 = 0x00; P6M0 = 0x00; P6M1 = 0x00; P7M0 = 0x00; P7M1 = 0x00; InitUart(); //初始化串口 InitADC(); //初始化ADC IE = 0xa0; //使能ADC中断 //开始AD转换 while (1); }
void InitSystem(void) { InitLed(); InitUart(); BluetoothInit(); InitAdc(); InitSensor(); InitFan(); InitRtc(); InitSecondTimer(); }
static void InitCom( MB_PORT *pPort ) { INT32U nBaud = 0; UART_MODE uart; UART_PARAM UartParam; if (pPort == NULL) return; else { poeUart0ReviceSem = NULL; poeUart3ReviceSem = NULL; UartParam.bps=9600; //波特率 UartParam.datab=8; // 字长度,5/6/7/8 UartParam.stopb=1; // 停止位,1/2 UartParam.parity=0; // 奇偶校验位,0为无校验,1奇数校验,2为偶数校验 //串口初始化 // UART0_Init(9600,&uart); InitUart( UART0, &UartParam,NULL); SetVICIRQ(VIC_UART0, 9, (INT32U)IRQASMUart0); // DisableVICIRQ(VIC_UART0); UartParam.bps = pPort->Baud; //波特率 UartParam.datab = pPort->DataBit; // 字长度,5/6/7/8 UartParam.stopb = 1;//pPort->StopBit; // 停止位,1/2 UartParam.parity = pPort->ParityBit; // 奇偶校验位,0为无校验,1奇数校验,2为偶数校验 InitUart( UART3, &UartParam,NULL); SetVICIRQ(VIC_UART3, 8, (INT32U)IRQASMUart3); // DisableVICIRQ(VIC_UART3); // nBaud = pPort->Baud; // uart.datab = pPort->DataBit; // uart.stopb = pPort->StopBit + 1; // uart.parity = pPort->ParityBit; // UART3_Init(nBaud ,&uart); return; } }
/************ 虚拟示波器使用方法 使用前配置:应该选择破解之后的VisualScope_Crack程序,兼容性选择win95或者98 然后在Setup->Communication protocol->CRC16设置。同时在Tools->Scom Assistant中点击 Open,查看是否有数据发过来。要是有,则关闭后叉掉。再点击 优势:操作比较人性化,可以显示当前状态值。可以不需要延时处理。 ***************/ #include"stm32f10x.h" #include"delay.h" #include"usart.h" /* printf函数定向输出到串口,所以必须包含这个文件 */ #include"ocsctl.h" #include<stdio.h> /* 因为用到了printf函数,所以必须包含这个文件 */ int main(void) { SystemInit(); delay_init(72); InitUart(); while(1) { OCS_displayData(10.0,100.0,255.0,1000.9); delay_us(1); } }
int main (void) { InitUart(); //Init uart initInput(); //Init interrupt to start button, stop button and speed sensor initMotorPWM(); //Init Fast PWM on Timer 0 (Pin PE1) initSpeedTimer(); //Init Timer 1 (16bit normal mode) initCurrentADC(); //Init ADC on PC5 //Init speed array for (int i = 0; i<(SPEED_ARRAY_SIZE); i++) { speedArray[i]=65535; } while (1) { //Switch to stop state if something is rotten Protection(&Sm_State, &speed); switch (Sm_State) { case STATE_STOP: Stop(&motor); break; case STATE_RAMP_INIT: RampInit(&Sm_State, &motor); break; case STATE_RAMP_SEARCH: RampSearch(&Sm_State, &motor, &speed, &lastSpeed); break; case STATE_ACC: Acc(&Sm_State,&motor, speedArray); break; case STATE_COAST: Coast(&Sm_State, &motor, &speed); break; default: Sm_State = STATE_STOP; break; } } }
void main() { InitUart(); //initial UART InitSPI(); //initial SPI IE2 |= ESPI; EA = 1; while (1) { #ifdef MASTER //for master (receive UART data from PC and send it to slave, in the meantime // receive SPI data from slave and send it to PC) ACC = RecvUart(); SPISS = 0; //pull low slave SS SPDAT = ACC; //trigger SPI send #endif } }
void main(void) { u16 id; InitUart(); InitKeyBoard(); //*********************************** // Prints("adfasdfadsfasf"); // LightUpLed(LED1); // TurnOffLed(LED2); Prints("\nGetting chip ID..."); D12ReadID(&id); PrintShortIntHex(id); Prints(",over\n"); USBConnect(); //************************************ while(1); }
int main() { char cmd, data; char config[8]; // char state = 0; // State: 0=failure, 1=success int i; InitUart(); //Error: while(1) { if(!EmptyUart1()) { cmd = GetUart1(); switch(cmd) { // 'test' command case 't': if (start_test()) PutUart1('s'); else PutUart1('f'); break; // 'ready' inquiry case 'r': PutUart1('a'); // Acknowledge break; // 'memory' command case 'm': PutUart1('a'); // Acknowledge // flush_rx_buffer(); if(dump_memory()) PutUart1('s'); else PutUart1('f'); break; // 'configuration' command case 'c': #if REMOTE_CONFIG == 0 PutUart1('f'); #else PutUart1('a'); // Acknowledge for(i=0; i<8; i++) { if(!wait_for_answer(&data)) break; config[i] = data; } if(i<8) PutUart1('f'); else { INT_A_PERIOD = config[0]; INT_B_PERIOD = config[1]; INT_C_PERIOD = config[2]; INT_D_PERIOD = config[3]; BURST_WRITE = config[4]>0 ? 1 : 0; TIME_SCALER = config[5]>0 ? config[5] : 1; HOLD_TIME = config[6]; TEST_DURATION = config[7]; PutUart1('s'); } #endif break; default: break; } } } return( 0 ); }
void main() { u8 time_counter_for_cycle = 4; disable_all_interrupt(); //设置输出口、中断 require_delay_init(); InitUart(); init_system_component(); //初始化端口 P33 = 0; enable_all_interrupt(); //检测当前状态 detect_current_state(); while(1) { // Feed dog reset_watch_dog(); // 驱动灯光开关 // toggle_once(); // 5ms system tick-tock if (INT_PROC & TICK_DUTY) { cycle_based_adjust(counter_for_cycle); INT_PROC &= ~TICK_DUTY; // continue; } if (INT_PROC & EXINT_PROC) { EX0 = 0; // SendData(time_counter>>8); // SendData(time_counter); if(time_counter <= 80) { if(display_mode_set == combination) { -- time_counter_for_cycle; } // 循环四次跳至下一个功能 if(!time_counter_for_cycle) { display_mode_logic++; time_counter_for_cycle = 4; } if(display_mode_logic == 13) display_mode_logic = 1; // SendData(display_mode_logic); display_mode_set_changed(); } if(display_mode_set == bi_directional_storbing) { if(time_counter >= 4000 && time_counter < 20000){ display_mode_logic ++; if(display_mode_logic == 13) display_mode_logic = 1; } if(time_counter >= 40000) display_mode_logic = 2; EEPROM_SectorErase(IAP_ADDRESS); EEPROM_write(IAP_ADDRESS, display_mode_logic); // SendData(display_mode_logic); display_mode_set_changed(); } time_counter = 0; INT_PROC &= ~EXINT_PROC; EX0 = 1; continue; } } }
void main( void ) { // Stop watchdog timer to prevent time out reset WDTCTL = WDTPW + WDTHOLD; TA1CCTL0 = CCIE; // CCR0 interrupt enabled TA1CCR0 = 50000; TA1CTL = TASSEL_2 + MC_1 + TACLR; // SMCLK, upmode, clear TAR __bis_SR_register(GIE); //WDTCTL = WDT_ARST_250; //SFRIE1 |= WDTIE; // Enable WDT interrupt // Increase PMMCOREV level to 2 for proper radio operation SetVCore(2); ResetRadioCore(); InitRadio(); InitButtonLeds(); InitUart(); ReceiveOn(); receiving = 1; _EINT(); while (1) { //WDTCTL = WDT_ARST_250; // __bis_SR_register( LPM3_bits + GIE ); __no_operation(); if((!(BUTTON_IN & (1<<BUTTON_BIT)))) { _NOP(); delayms(30); if(!(BUTTON_IN & (1<<BUTTON_BIT))) { _NOP(); buttonPressed = 1; LEDR_ON(); ReceiveOff(); receiving = 0; Transmit( (unsigned char*)TxBuffer,sizeof TxBuffer); transmitting = 1; while(!(BUTTON_IN & (1<<BUTTON_BIT))); } } if(!transmitting) { ReceiveOn(); receiving = 1; } if(buttonPressed && transmit == 1) { LEDR_ON(); ReceiveOff(); receiving = 0; Transmit( (unsigned char*)TxBuffer,sizeof TxBuffer); transmitting = 1; transmit = 0; receive = 1; delayms(500); buttonPressed = 0; } if(count == 20 && buttonPressed == 0 && receive == 1) { buttonPressed = 1; count = 0; transmit = 1; receive = 0; } } }