void BSP_Init(void) { Key_Init(); LED_Init(); //MyLCD_Init(); Touch_Init(); SysTick_Init(); }
void PF_init() { LED_Init(); _channel = 1; _toggle = 0; IR_DDR |= (1<<IR_PIN_DD); IR_PORT &= ~(1<<IR_PIN); }
/*---------------------------------------------------------------------------- Main: Initialize and start RTX Kernel *---------------------------------------------------------------------------*/ int main (void) { LED_Init(); /* Initialize LEDs */ t_ledOn = osThreadCreate(osThread(ledOn), NULL); /* start task 'ledOn' */ t_ledOff = osThreadCreate(osThread(ledOff), NULL); /* start task 'ledOff' */ osDelay(osWaitForever); }
/*初始化*/ void SYSTEM_Init(void) { NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);//中断优先组 GetDeviceSerialID(); LED_Init(); // BEEP_Init(); SysTick_Config(SystemCoreClock / 1000); }
int main(void) { u16 i,rxlen; u16 lenx; u8 key=0XFF; u8 upload=0; delay_init(); //延时函数初始化 uart_init(38400); //串口初始化为9600 USART2_Init(38400); //初始化串口2 LED_Init(); //初始化与LED连接的硬件接口 KEY_Init(); //初始化与LED连接的硬件接口 LCD_Init(); //初始化LCD POINT_COLOR=RED; LCD_ShowString(30,20,200,16,16,"ALIENTEK STM32 ^_^"); LCD_ShowString(30,40,200,16,16,"NE0-6M GPS TEST"); LCD_ShowString(30,60,200,16,16,"ATOM@ALIENTEK"); LCD_ShowString(30,80,200,16,16,"KEY0:Upload NMEA Data SW"); LCD_ShowString(30,100,200,16,16,"NMEA Data Upload:OFF"); if(Ublox_Cfg_Rate(1000,1)!=0) //设置定位信息更新速度为1000ms,顺便判断GPS模块是否在位. { LCD_ShowString(30,120,200,16,16,"NEO-6M Setting..."); while((Ublox_Cfg_Rate(1000,1)!=0)&&key) //持续判断,直到可以检查到NEO-6M,且数据保存成功 { USART2_Init(9600); //初始化串口2波特率为9600(EEPROM没有保存数据的时候,波特率为9600.) Ublox_Cfg_Prt(38400); //重新设置模块的波特率为38400 USART2_Init(38400); //初始化串口2波特率为38400 Ublox_Cfg_Tp(1000000,100000,1); //设置PPS为1秒钟输出1次,脉冲宽度为100ms key=Ublox_Cfg_Cfg_Save(); //保存配置 } LCD_ShowString(30,120,200,16,16,"NEO-6M Set Done!!"); delay_ms(500); LCD_Fill(30,120,30+200,120+16,WHITE);//清除显示 } while(1) { delay_ms(1); if(USART2_RX_STA&0X8000) //接收到一次数据了 { rxlen=USART2_RX_STA&0X7FFF; //得到数据长度 for(i=0;i<rxlen;i++)USART1_TX_BUF[i]=USART2_RX_BUF[i]; USART2_RX_STA=0; //启动下一次接收 USART1_TX_BUF[i]=0; //自动添加结束符 GPS_Analysis(&gpsx,(u8*)USART1_TX_BUF);//分析字符串 Gps_Msg_Show(); //显示信息 if(upload)printf("\r\n%s\r\n",USART1_TX_BUF);//发送接收到的数据到串口1 } key=KEY_Scan(0); if(key==KEY0_PRES) { upload=!upload; POINT_COLOR=RED; if(upload)LCD_ShowString(30,100,200,16,16,"NMEA Data Upload:ON "); else LCD_ShowString(30,100,200,16,16,"NMEA Data Upload:OFF"); } if((lenx%500)==0)LED0=!LED0; lenx++; } }
void GPIO_LED(void) { SystemInit(); LED_Init(); while (1) { demo(); } }
static void rt_thread_entry_led2(void* parameter) { LED_Init(); while (1) { LEDTog(LED2); rt_thread_delay(RT_TICK_PER_SECOND/3); } }
int main(void) { u8 key; u16 i=0; u8 datatemp[SIZE]; SystemInit(); delay_init(72); //延时初始化 NVIC_Configuration(); uart_init(9600); LED_Init(); KEY_Init(); LCD_Init(); AT24CXX_Init(); //IIC初始化 POINT_COLOR=RED;//设置字体为蓝色 LCD_ShowString(60,50,"Mini STM32"); LCD_ShowString(60,70,"IIC TEST"); LCD_ShowString(60,90,"ATOM@ALIENTEK"); LCD_ShowString(60,110,"2011/1/1"); while(AT24CXX_Check())//检测不到24c02 { LCD_ShowString(60,130,"24C02 Check Failed!"); delay_ms(500); LCD_ShowString(60,130,"Please Check! "); delay_ms(500); LED0=!LED0;//DS0闪烁 } LCD_ShowString(60,130,"24C02 Ready!"); //显示提示信息 LCD_ShowString(60,150,"KEY0:Write KEY2(WK_UP):Read"); POINT_COLOR=BLUE;//设置字体为蓝色 while(1) { key=KEY_Scan(); if(key==1)//KEY0按下,写入24C02 { LCD_Fill(0,170,239,319,WHITE);//清除半屏 LCD_ShowString(60,170,"Start Write 24C02...."); AT24CXX_Write(0,(u8*)TEXT_Buffer,SIZE); LCD_ShowString(60,170,"24C02 Write Finished!");//提示传送完成 } if(key==3)//KEY_UP按下,读取字符串并显示 { LCD_ShowString(60,170,"Start Read 24C02.... "); AT24CXX_Read(0,datatemp,SIZE); LCD_ShowString(60,170,"The Data Readed Is: ");//提示传送完成 LCD_ShowString(60,190,datatemp);//显示读到的字符串 } i++; delay_ms(10); if(i==20) { LED0=!LED0;//提示系统正在运行 i=0; } } }
void start_task(void *pdata) { OS_CPU_SR cpu_sr = 0; pdata = pdata; u8 err; delay_init(168); USART1_Init();//初始化 LED_Init(); BEEP_Init(); pringf("Hello world\n"); OS_ENTER_CRITICLE(); //进入临界区 无法被中断打断 //创建系统定时器 pTmrLed = OSTmrCreate( 0,//dly 计时前的延迟 OS_TMR_CFG_TICKS_PER_SEC/2,//周期 宏本身表示1s OS_TMR_OPT_PERIODIC,//周期模式 (OS_TMR_CALLBACK)LedTmrCallback, NULL, NULL, &err );//定时器时间到了 自动调用回调函数 pTmrBeep = OSTmrCreate( 0, OS_TMR_CFG_TICKS_PER_SEC/2, OS_TMR_OPT_PERIODIC, (OS_TMR_CALLBACK)BeepTmrCallback, NULL, NULL, &err ); //启动定时器 if( OSTmrStart(pTmrLED,&err) == OS_TRUE ) { printf("LED TMR Start.\n"); } else printf("LED TMR Fail.\n"); if( OSTmrStart(pTmrBeep,&err) == OS_TRUE ) { printf("BEEP TMR Start.\n"); } else printf("BEEP TMR Fail.\n"); OS_EXIT_CRITICLE(); //退出临界区 可以被中断打断 while(1)//一直延时 等待程序运行 OSTimeDlyHMSM(0,0,0,500); }
int main(void) { delay_init(); //延时函数初始化 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// 设置中断优先级分组2 LED_Init(); //初始化与LED连接的硬件接口 OSInit(); OSTaskCreate(start_task,(void *)0,(OS_STK *)&START_TASK_STK[START_STK_SIZE-1],START_TASK_PRIO );//创建起始任务 OSStart(); }
//外部中断初始化程序 //初始化PE2~4,PA0为中断输入. void EXTIX_Init(void) { NVIC_InitTypeDef NVIC_InitStructure; EXTI_InitTypeDef EXTI_InitStructure; LED_Init(); RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);//使能SYSCFG时钟 SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOC, EXTI_PinSource2);//PE2 连接到中断线2 SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOC, EXTI_PinSource3);//PE3 连接到中断线3 SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOE, EXTI_PinSource4);//PE4 连接到中断线4 SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOA, EXTI_PinSource0);//PA0 连接到中断线0 /* 配置EXTI_Line0 */ EXTI_InitStructure.EXTI_Line = EXTI_Line0;//LINE0 EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;//中断事件 EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising; //上升沿触发 EXTI_InitStructure.EXTI_LineCmd = ENABLE;//使能LINE0 EXTI_Init(&EXTI_InitStructure);//配置 /* 配置EXTI_Line2,3,4 */ EXTI_InitStructure.EXTI_Line = EXTI_Line2 | EXTI_Line3 | EXTI_Line4; EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;//中断事件 EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising; //下降沿触发 EXTI_InitStructure.EXTI_LineCmd = ENABLE;//中断线使能 EXTI_Init(&EXTI_InitStructure);//配置 NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn;//外部中断0 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x00;//抢占优先级0 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x02;//子优先级2 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;//使能外部中断通道 NVIC_Init(&NVIC_InitStructure);//配置 NVIC_InitStructure.NVIC_IRQChannel = EXTI2_IRQn;//外部中断2 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x03;//抢占优先级3 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x02;//子优先级2 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;//使能外部中断通道 NVIC_Init(&NVIC_InitStructure);//配置 NVIC_InitStructure.NVIC_IRQChannel = EXTI3_IRQn;//外部中断3 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x02;//抢占优先级2 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x02;//子优先级2 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;//使能外部中断通道 NVIC_Init(&NVIC_InitStructure);//配置 NVIC_InitStructure.NVIC_IRQChannel = EXTI4_IRQn;//外部中断4 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x01;//抢占优先级1 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x02;//子优先级2 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;//使能外部中断通道 NVIC_Init(&NVIC_InitStructure);//配置 }
int main(void) { LED_Init(LED_2 | LED_3); Beep_Init(); SysTick_Init(1, SYSTICK_MS); LED_On(LED_2 | LED_3); Usart_Init(); //Beep_On(); SysTick_Delay(200, SYSTICK_MS); //Beep_Off(); LED_Off(LED_2 | LED_3); Key_Init(KEY_S1 | KEY_S2 | KEY_S3 | KEY_S4); Keyboard_Init(); //LCD_Init(); ADS1118_Init(); while(1) { printf("准备完毕 开始转换!\n"); ADS1118_CS_Reset(); while(!GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_6)); ConversionValue = ADS1118_Read(count);//8283 ADS1118_CS_Set(); printf(" The Value is 0X%08x ,%08d\n",ConversionValue,ConversionValue); ad= ConversionValue*4.096/32768; printf("AD=%fV\n",ad); SysTick_Delay(1000, SYSTICK_MS); // Keyboard_Loop(); // //LCD_Clear(Color_White); // //LCD_Set_ForeColor(Color_Red); // //if(Keyboard_Scan() == KEYBOARD_S1) { LCD_Show_String(30,50,200,16,16, "Key Board Test"); } // if(Keyboard_Detect(KEYBOARD_S1, KEYBOARD_DOWN)) { printf("S1\r\n"); } // if(Keyboard_Detect(KEYBOARD_S2, KEYBOARD_DOWN)) { printf("S2\r\n"); } // if(Keyboard_Detect(KEYBOARD_S3, KEYBOARD_DOWN)) { printf("S3\r\n"); } // if(Keyboard_Detect(KEYBOARD_S4, KEYBOARD_DOWN)) { printf("S4\r\n"); } // if(Keyboard_Detect(KEYBOARD_S5, KEYBOARD_DOWN)) { printf("S5\r\n"); } // if(Keyboard_Detect(KEYBOARD_S6, KEYBOARD_DOWN)) { printf("S6\r\n"); } // if(Keyboard_Detect(KEYBOARD_S7, KEYBOARD_DOWN)) { printf("S7\r\n"); } // if(Keyboard_Detect(KEYBOARD_S8, KEYBOARD_DOWN)) { printf("S8\r\n"); } // if(Keyboard_Detect(KEYBOARD_S9, KEYBOARD_DOWN)) { printf("S9\r\n"); } // if(Keyboard_Detect(KEYBOARD_S10, KEYBOARD_DOWN)) { printf("S10\r\n"); } // if(Keyboard_Detect(KEYBOARD_S11, KEYBOARD_DOWN)) { printf("S11\r\n"); } // if(Keyboard_Detect(KEYBOARD_S12, KEYBOARD_DOWN)) { printf("S12\r\n"); } // if(Keyboard_Detect(KEYBOARD_S13, KEYBOARD_DOWN)) { printf("S13\r\n"); } // if(Keyboard_Detect(KEYBOARD_S14, KEYBOARD_DOWN)) { printf("S14\r\n"); } // if(Keyboard_Detect(KEYBOARD_S15, KEYBOARD_DOWN)) { printf("S15\r\n"); } // if(Keyboard_Detect(KEYBOARD_S16, KEYBOARD_DOWN)) { printf("S16\r\n"); } // //LCD_Set_ForeColor(Color_Green); // //LCD_Show_String(30,70,200,16,16, "TFT-LCD test"); // //LCD_Set_ForeColor(Color_Blue); // //LCD_Show_String(30,90,200,16,16, "www.doflye.net"); // //LCD_Draw_Circle(100,180,20); // //SysTick_Delay(1000, SYSTICK_MS); } }
int main(void) { LED_Init(); //KEY_Init(); Create_Page_Table(); Start_mmu(); EINT0_2_11_init(); while(1); return 1; }
/** * @brief USBD_USR_Init * Displays the message on LCD for host lib initialization * @param None * @retval None */ void USBD_USR_Init(void) { /* Initialize LEDs */ LED_Init(); LLIO_Init(115200); printf("\r\n\r\nUSB Device Library v1.1.0\r\n"); }
int main(void) { LED_Init(); SysTick_Config(SystemCoreClock/1000); while(1) {} return 0; }
int main(void) { u8 key; u8 i=0; SystemInit(); delay_init(72); //延时初始化 NVIC_Configuration(); uart_init(9600); LED_Init(); KEY_Init(); LCD_Init(); POINT_COLOR=RED;//设置字体为蓝色 LCD_ShowString(60,50,"Mini STM32"); LCD_ShowString(60,70,"TOUCH TEST"); LCD_ShowString(60,90,"ATOM@ALIENTEK"); LCD_ShowString(60,110,"2011/1/1"); LCD_ShowString(60,130,"Press KEY0 to Adjust"); Touch_Init(); delay_ms(1500); Load_Drow_Dialog(); while(1) { key=KEY_Scan(); if(Pen_Point.Key_Sta==Key_Down)//触摸屏被按下 { Pen_Int_Set(0);//关闭中断 do { Convert_Pos(); Pen_Point.Key_Sta=Key_Up; if(Pen_Point.X0>216&&Pen_Point.Y0<16)Load_Drow_Dialog();//清除 else { Draw_Big_Point(Pen_Point.X0,Pen_Point.Y0);//画图 GPIOC->ODR|=1<<1; //PC1 上拉 } }while(PEN==0);//如果PEN一直有效,则一直执行 Pen_Int_Set(1);//开启中断 }else delay_ms(10); if(key==1)//KEY0按下,则执行校准程序 { LCD_Clear(WHITE);//清屏 Touch_Adjust(); //屏幕校准 Save_Adjdata(); Load_Drow_Dialog(); } i++; if(i==20) { i=0; LED0=!LED0; } }; }
void GPIO_LED(void) { TSB_WD_MOD_WDTE = 0U; TSB_WD->CR = 0x000000B1; SystemInit(); LED_Init(); while (1) { demo(); } }
void led0Task(void *pdata) { LED_Init(); while(1) { OPEN_LED0(); Delay(100000); CLOSE_LED0(); Delay(100000); } }
int main() { LED_Init(); SW_INT_INIT(); while(1) { __WFI(); } }
int app_main(void) #endif { HAL_Init(); LED_Init(); while (1) { HAL_GPIO_TogglePin(LED_GPIO_PORT, LED_PIN); HAL_Delay(1000); } }
void BlinkLEDExample() { LED_Init(); LED_Off(LED0|LED1|LED2|LED3); while (1) { LED_Toggle(LED0|LED1|LED2|LED3); cpu_delay_ms(1000, FOSCRC); } }
static void init_io () { /* Configure LEDs */ LED_Init(); /* Configure buttons */ KBD_Init(); /* Configure serial output */ SER_Init(); }
int main(void) { uint8_t i; uint32_t cnt = 0; CAN_InitTypeDef CAN_InitStruct1; //使用CAN时 CoreClock 必须是96M SystemClockSetup(ClockSource_EX50M,CoreClock_96M); DelayInit(); LED_Init(LED_PinLookup_CHK60EVB, kNumOfLED); UART_DebugPortInit(UART4_RX_C14_TX_C15, 115200); DisplayCPUInfo(); //配置CAN初始化信息 CAN_InitStruct1.CANxMap = CAN1_TX_PE24_RX_PE25; //PE24 PE25引脚 CAN_InitStruct1.CAN_BaudRateSelect = CAN_SPEED_125K; //125K 波特率 CAN_InitStruct1.FilterEnable = ENABLE; //不使用过滤ID功能 CAN_Init(&CAN_InitStruct1); //配置接收信息 CAN_RxMsg1.MBIndex = CAN_MB1; //接收邮箱使用CAN_MB1 CAN_RxMsg1.DLC = 8; //最多接收8个字节 一帧 CAN_RxMsg1.Id = 7; //接收ID CAN_EnableReceiveMB(CAN1, &CAN_RxMsg1); //使能接收邮箱 //配置发送数据 CAN_TxMsg1.Id = 10; //发送ID 10 CAN_TxMsg1.DLC = 8; //每帧8字节 CAN_TxMsg1.IDE = CAN_IDE_Standard; //标准数据帧 CAN_TxMsg1.RTR = CAN_RTR_Data; //数据帧 CAN_TxMsg1.MBIndex = CAN_MB2; //使用邮箱0 //写入测试数据 memcpy(CAN_TxMsg1.Data, "12345678", CAN_TxMsg1.DLC); while(1) { if (CAN_Receive(CAN1, &CAN_RxMsg1) == TRUE) { //如果接收成功 打印接收数据 UART_printf("ID:0x%x\r\n",CAN_RxMsg1.Id); UART_printf("Data: "); for(i = 0; i < CAN_RxMsg1.DLC; i++) { UART_printf("0x%x ", CAN_RxMsg1.Data[i]); } UART_printf("\r\n"); } cnt++; //发送 if(cnt == 1000000) { CAN_Transmit(CAN1, &CAN_TxMsg1); cnt = 0; } } }
int main(void) { u8 key,fontok=0; Stm32_Clock_Init(9); //系统时钟设置 delay_init(72); //延时初始化 uart_init(72,115200); //串口1初始化 LCD_Init(); //初始化液晶 LED_Init(); //LED初始化 KEY_Init(); //按键初始化 usmart_dev.init(72); //usmart初始化 USART2_Init(36,115200); //初始化串口2 TP_Init(); //初始化触摸屏 mem_init(SRAMIN); //初始化内部内存池 exfuns_init(); //为fatfs相关变量申请内存 f_mount(0,fs[0]); //挂载SD卡 key=KEY_Scan(0); if(key==KEY_RIGHT) //强制校准 { LCD_Clear(WHITE); //清屏 TP_Adjust(); //屏幕校准 TP_Save_Adjdata(); LCD_Clear(WHITE); //清屏 } fontok=font_init(); //检查字库是否OK if(fontok||key==KEY_DOWN)//需要更新字库 { LCD_Clear(WHITE); //清屏 POINT_COLOR=RED; //设置字体为红色 LCD_ShowString(60,50,200,16,16,"ALIENTEK STM32"); while(SD_Initialize()) //检测SD卡 { LCD_ShowString(60,70,200,16,16,"SD Card Failed!"); delay_ms(200); LCD_Fill(60,70,200+60,70+16,WHITE); delay_ms(200); } LCD_ShowString(60,70,200,16,16,"SD Card OK"); LCD_ShowString(60,90,200,16,16,"Font Updating..."); key=update_font(20,110,16,0);//从SD卡更新 while(key)//更新失败 { LCD_ShowString(60,110,200,16,16,"Font Update Failed!"); delay_ms(200); LCD_Fill(20,110,200+20,110+16,WHITE); delay_ms(200); } LCD_ShowString(60,110,200,16,16,"Font Update Success!"); delay_ms(1500); LCD_Clear(WHITE);//清屏 } sim900a_test(); }
int main(void) { u32 i = 0, j = 0; float distance = 0.0; float light = 0.0; //SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK); //SysTick_Config(72); delay_init(); //延时函数初始化 NVIC_Configuration(); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级 TIM_Config(); uart_init(115200); //串口初始化为115200 KEY_Init(); LED_Init(); //LED端口初始化 SW_I2C_Init(); // HW_I2C2_Init(); Single_WriteI2C(SlaveAddress1, 0x02, 0x72); while(1) { distance = 0.0; light = 0.0; delay_ms(400); // ks103测距 if (distance_flag) { distance = Read_KS10X_Data(SlaveAddress1, 0xb0); printf("-%04d- distance: %04.3f cm\r\n", i++, distance); } // ks103测光强 if (light_flag) { light = Read_KS10X_Data(SlaveAddress1, 0xa0); printf("-%04d- light: %04.3f cd\r\n", j++, light); } if (distance_flag | distance_flag) LED0 = !LED0; /* t1 = tick; delay2x(1000); // 延时167us t2 = tick; printf("time: %d us\r\n", t2 - t1); */ } }
int main(void) { //DEVCFG1bits.FCKSM = 0; int c = 0; // for (c = 0; c < 100000; c++) { // Nop(); // } BOARD_Init(); //INTEnableSystemMultiVectoredInt(); //SERIAL_Init(); //DEVCFG1bits.FCKSM //TIMERS_Init(); // SYSKEY = 0; // SYSKEY = 0xAA996655; // SYSKEY = 0x556699AA; // OSCCONbits.FRCDIV = 0b111; // OSCConfig(OSC_FRC_PLL, OSC_PLL_MULT_20, OSC_PLL_POST_1, OSC_PB_DIV_1); LED_Init(LED_BANK1); LED_SetBank(LED_BANK1,~2); //while(1); //SERIAL_Init(); //LATBbits.LATB7 = 1; TIMERS_Init(); unsigned char count=0; //while (1) { // LATCbits.LATC3 ^= 1; //} printf("Hello World\r\n"); while (1) { if (!IsTimerActive(0)) { // LATCbits.LATC5 ^= 1; //LATBbits.LATB9 ^= 1; InitTimer(0, 500); printf("TOP: %X\r\n",count); LED_SetBank(LED_BANK1,count); count++; } if (!IsReceiveEmpty()) { //LATBbits.LATB8 ^= 1; printf("%c", GetChar()); } } while (1); }
void init() { delay_init(); NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级 LED_Init(); //LED端口初始化 TIM3_Int_Init(719,4999); //主中断0.03 uart_init(9600); //串口初始化为115200,读上位机数据 uart2_init(9600); //读陀螺仪数据 uart3_init(9600); ENCODE_Init(); //编码器初始化 queue_init(&rx_queue); basketballbot.Control_ID = Global; }
void Config_Init() { //初始化LED LED_Init(); //初始化串口引脚 USART2_Init(); USART6_Init(); //初始化屏幕引脚 LCD_GPIOInit(); //配置uart USART_Config(); }
// *************** SetupHardware *************** // Configures the necessary hardware for the board // Inputs: none // Outputs: none void SetupHardware( void ) { /* If running on Rev A2 silicon, turn the LDO voltage up to 2.75V. This is a workaround to allow the PLL to operate reliably. */ if( DEVICE_IS_REVA2 ) { SysCtlLDOSet( SYSCTL_LDO_2_75V ); } /* Set the clocking to run from the PLL at 50 MHz */ SysCtlClockSet( SYSCTL_SYSDIV_4 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN | SYSCTL_XTAL_8MHZ ); // Initialize GPIO driver GPIO_InitTasks(); // Initialize uartstdio for UART0, which is used for communicating over USB and // debugging. UART0 uses port A pins 0-1. #if ENABLE_UART_PRINTF UART_Init(); #endif // Initialize SPI0 for sensor ports // SPI1 is initialized by transceiver code // XXX What does EEPROM_Init() do besides SPI_Init(0)? EEPROM_Init(); // Enable Buttons and/or LEDs depending on target board #if EVAL_BOARD == 1 GPIO_Init( BUTTON_PORT, UP_BUTTON|DOWN_BUTTON|LEFT_BUTTON|RIGHT_BUTTON|SEL_BUTTON, GPIO_DIR_MODE_IN, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD_WPU ); LED_Init(DEBUG_LED); #else LED_Init(LED1); LED_Init(LED2); LED_Init(LED3); LED_Init(LED4); #endif }
int main(void) { delay_init(); //延时函数初始化 LED_Init(); //初始化与LED连接的硬件接口 TIM2_Int_Init(9,2); //DMA 触发时钟 Dac1_Init(); uart_init(115200); while(1) { delay_ms(500); LED1=!LED1; } }