///////////////////////////////////////////////////////////////////////////// // Parser ///////////////////////////////////////////////////////////////////////////// s32 CONSOLE_Parse(mios32_midi_port_t port, u8 byte) { // temporary change debug port (will be restored at the end of this function) mios32_midi_port_t prev_debug_port = MIOS32_MIDI_DebugPortGet(); MIOS32_MIDI_DebugPortSet(port); if( byte == '\r' ) { // ignore } else if( byte == '\n' ) { // example for parsing the command: char *separators = " \t"; char *brkt; char *parameter; if( (parameter = strtok_r(line_buffer, separators, &brkt)) ) { if( strcmp(parameter, "help") == 0 ) { MIOS32_MIDI_SendDebugMessage("Welcome to " MIOS32_LCD_BOOT_MSG_LINE1 "!"); MIOS32_MIDI_SendDebugMessage("Following commands are available:"); MIOS32_MIDI_SendDebugMessage(" reset: clears the current measurements\n"); MIOS32_MIDI_SendDebugMessage(" help: this page\n"); } else if( strcmp(parameter, "reset") == 0 ) { MIOS32_IRQ_Disable(); u8 including_min_max = 1; DelayInit(&d_tick, including_min_max); DelayInit(&d_measure, including_min_max); DelayInit(&d_beat, including_min_max); midi_clock_ctr = 0; total_delay = 0; MIOS32_IRQ_Enable(); MIOS32_MIDI_SendDebugMessage("Measurements have been cleared!\n"); } else { MIOS32_MIDI_SendDebugMessage("Unknown command - type 'help' to list available commands!\n"); } } line_ix = 0; } else if( line_ix < (STRING_MAX-1) ) { line_buffer[line_ix++] = byte; line_buffer[line_ix] = 0; } // restore debug port MIOS32_MIDI_DebugPortSet(prev_debug_port); return 0; // no error }
int main(void) { uint8_t last_sec; RTC_CalanderTypeDef RTC_Calander1; //初始化系统时钟 使用外部50M晶振 PLL倍频到100M SystemClockSetup(ClockSource_EX50M,CoreClock_100M); DelayInit(); LED_Init(LED_PinLookup_CHK60EVB, kNumOfLED); UART_DebugPortInit(UART4_RX_C14_TX_C15, 115200); UART_printf("RTC TEST\r\n"); RTC_Init(); //可以设置时间 RTC_Calander1.Hour = 10; RTC_Calander1.Minute = 57; RTC_Calander1.Second = 58; RTC_Calander1.Month = 10; RTC_Calander1.Date = 10; RTC_Calander1.Year = 2013; //RTC_SetCalander(&RTC_Calander1); NVIC_EnableIRQ(RTC_IRQn); while(1) { RTC_GetCalander(&RTC_Calander1); //读取时间 if(last_sec != RTC_Calander1.Second) { UART_printf("%d-%d-%d %d:%d:%d\r\n", RTC_Calander1.Year, RTC_Calander1.Month, RTC_Calander1.Date, RTC_Calander1.Hour, RTC_Calander1.Minute, RTC_Calander1.Second); last_sec = RTC_Calander1.Second; } } }
int main(void) { //使用USB 必须CoreClock = 96M uint8_t usb_hid_send_buf[8] ={0,0,0,0,0,0}; uint8_t usb_hid_rec_buf[8]; uint8_t usb_hid_rec_cnt = 0; //接收帧计数 SystemClockSetup(ClockSource_EX50M,CoreClock_96M); DelayInit(); LED_Init(LED_PinLookup_CHK60EVB, kNumOfLED); KBI_Init(KBI_PinLookup_CHK60EVB, kNumOfKEY); UART_DebugPortInit(UART4_RX_C14_TX_C15, 115200); DisplayCPUInfo(); UART_printf("Waitting for USB connect ...\r\n"); USB_Init(); //初始化USB设备 USB_WaitDeviceEnumed(); //等待USB枚举成功 UART_printf("USB connected!\r\n"); while(1) { KBI_Scan(); usb_hid_send_buf[0] = KBI_GetKeyValue(kKEY1); usb_hid_send_buf[1] = KBI_GetKeyValue(kKEY2); USB_HID_SendData(usb_hid_send_buf,8); //发送数据 if(USB_HID_RecData(usb_hid_rec_buf) != 0) //接收到了数据 { LED_Ctrl(kLED1, (usb_hid_rec_buf[0]&0x01)>>0); LED_Ctrl(kLED2, (usb_hid_rec_buf[0]&0x02)>>1); usb_hid_rec_cnt++; UART_printf("USB HID Data Received\r\n"); } HID_Proc(); //执行HID进程 DelayMs(KBI_SCAN_PERIOD_IN_US/1000); //延时 }
int main(void) { //定义串口初始化结构 UART_InitTypeDef UART_InitStruct1; //初始化系统时钟 使用外部50M晶振 PLL倍频到100M SystemClockSetup(ClockSource_EX50M,CoreClock_100M); DelayInit(); //初始化LED LED_Init(LED_PinLookup_CHKATOM, kNumOfLED); //KBI 初始化 KBI_Init(KBI_PinLookup_CHKATOM, kNumOfKEY); UART_InitStruct1.UARTxMAP = UART4_RX_C14_TX_C15; //UART4模块 映射引脚:PTC14 PTC15 UART_InitStruct1.UART_BaudRate = 115200; //波特率 115200 UART_Init(&UART_InitStruct1); //初始化串口 //开启发送中断功能 UART_ITConfig(UART4,UART_IT_TDRE,ENABLE); //接通NVIC上对应串口中断线 NVIC_EnableIRQ(UART4_RX_TX_IRQn); //开始中断发送 UART_SendDataInt(UART4,gTestBuffer,sizeof(gTestBuffer)); //等待中断发送完成 while(UART_TxIntStruct1.IsComplete == FALSE); while(1) { LED_Toggle(kLED1); DelayMs(500); } }
int main(void) { uint8_t ch; //定义串口初始化结构 UART_InitTypeDef UART_InitStruct1; //初始化系统时钟 使用外部50M晶振 PLL倍频到100M SystemClockSetup(ClockSource_EX50M,CoreClock_100M); DelayInit(); //初始化LED LED_Init(LED_PinLookup_CHKATOM, kNumOfLED); //KBI 初始化 KBI_Init(KBI_PinLookup_CHKATOM, kNumOfKEY); UART_InitStruct1.UARTxMAP = UART4_RX_C14_TX_C15; //UART4模块 映射引脚:PTC14 PTC15 UART_InitStruct1.UART_BaudRate = 115200; //波特率 115200 UART_Init(&UART_InitStruct1); //初始化串口 while(1) { //接收成功 if(UART_ReceiveData(UART4, &ch) == TRUE) { //echo UART_SendData(UART4, ch); } } }
int main(void) { uint32_t LPTM_Value = 0; LPTM_InitTypeDef LPTM_InitStruct1; FTM_InitTypeDef FTM_InitStruct1; SystemClockSetup(ClockSource_EX50M,CoreClock_100M); DelayInit(); LED_Init(LED_PinLookup_CHK60EVB, kNumOfLED); UART_DebugPortInit(UART4_RX_C14_TX_C15, 115200); DisplayCPUInfo(); //在PC3上产生 1KHz 占空比50%的 方波 FTM_InitStruct1.Frequency = 1000; FTM_InitStruct1.FTMxMAP = FTM0_CH3_PC4; FTM_InitStruct1.FTM_Mode = FTM_Mode_EdgeAligned; FTM_InitStruct1.InitalDuty = 5000; FTM_Init(&FTM_InitStruct1); //开启PTC5上的脉冲计数引脚 LPTM_InitStruct1.LPTMxMap = LPTM_CH2_PC5; LPTM_InitStruct1.LPTM_InitCompareValue = 200; //在脉冲计数模式下无意义 LPTM_InitStruct1.LPTM_Mode = LPTM_Mode_PC_FALLING; //下降沿触发计数 LPTM_Init(&LPTM_InitStruct1); while(1) { //读取脉冲技术值 LPTM_Value = LPTM_GetTimerCounterValue(LPTMR0); //清空技术值 LPTM_ResetTimeCounter(LPTMR0); UART_printf("LPTMR:%dHz\r\n", LPTM_Value); DelayMs(1000); } }
int main() { //Set LD1 through LD4 as digital output DeviceInit(); //initialize timer for delay DelayInit(); /* Perform the main application loop. */ while (1) { //drive LD1 high PORTWrite (IOPORT_B, BIT_10); DelayMs(1); //drive LD2 high PORTWrite (IOPORT_B, BIT_11); DelayMs(1); //drive LD3 high PORTWrite (IOPORT_B, BIT_12); DelayMs(1); //drive LD4 high PORTWrite (IOPORT_B, BIT_13); DelayMs(1); } }
int main(void) { uint32_t i; DelayInit(); GPIO_QuickInit(HW_GPIOE, 6, kGPIO_Mode_OPP); UART_QuickInit(UART0_RX_PD06_TX_PD07, 115200); printf("SD test\r\n"); printf("please insert SD card...\r\n"); //SD卡模块快速初始化,设置速度为20000000 SD_QuickInit(20000000); //获取SD卡的容量 printf("SD size:%dMB\r\n", SD_GetSizeInMB()); /* 读取0扇区数据,每一个扇区512字节 */ SD_ReadSingleBlock(0, sd_buffer); /* 打印0扇区数据 */ printf("sectoer 0 data:\r\n"); for(i = 0; i < 512; i++) { printf("0x%02X ", sd_buffer[i]); } while(1) { //小灯闪烁 GPIO_ToggleBit(HW_GPIOE, 6); DelayMs(500); } }
int main(void) { DelayInit(); GPIO_QuickInit(HW_GPIOE, 6, kGPIO_Mode_OPP); /* LED */ GPIO_QuickInit(HW_GPIOE, 26, kGPIO_Mode_IPU); /* KEY */ UART_QuickInit(UART0_RX_PD06_TX_PD07, 115200); /* 初始化看门狗 */ WDOG_InitTypeDef WDOG_InitStruct1; WDOG_InitStruct1.windowInMs = 0; WDOG_InitStruct1.mode = kWDOG_Mode_Normal; //设置看门狗处于正常工作模式 WDOG_InitStruct1.timeOutInMs = 2000; /* 时限 2000MS : 2000MS 内没有喂狗则复位 */ WDOG_Init(&WDOG_InitStruct1); printf("WDOG test start!\r\n"); printf("press KEY1 to feed dog within 2S or system with reset!\r\n"); /* 点亮LED 然后熄灭 指示系统运行从新上电运行 */ GPIO_WriteBit(HW_GPIOE, 6, 0); DelayMs(200); GPIO_WriteBit(HW_GPIOE, 6, 1); while(1) { if(GPIO_ReadBit(HW_GPIOE, 26) == 0) /* 按键被按下 */ { /* 喂狗 防止复位 */ printf("wdog feed! we have 2s\r\n"); WDOG_Refresh(); //喂狗 DelayMs(100); } DelayMs(10); } }
int main(void) { DelayInit(); // Initialize timer interrupt TIM2_INT_Init(); // Initialize LED matrix GPIO pin LedMatrixInit(); while (1) { // Display heart symbol for (row = 0; row <= 7; row++) { buffer[row] = heart_symbol[row]; } DelayMs(1000); // Clear display for (row = 0; row <= 7; row++) { buffer[row] = 0x00; } DelayMs(1000); } }
int main(void) { uint8_t i; //初始化系统时钟 使用外部50M晶振 PLL倍频到100M SystemClockSetup(ClockSource_EX50M,CoreClock_100M); DelayInit(); //初始化LED LED_Init(LED_PinLookup_CHKATOM, kNumOfLED); //KBI 初始化 KBI_Init(KBI_PinLookup_CHKATOM, kNumOfKEY); //闪灯 制造复位效果 for(i = 0; i < 10; i++) { LED_Toggle(kLED1); DelayMs(50); } //初始化看门狗 如果1000MS 内没有喂狗则 复位 WDOG_Init(1000); while(1) { KBI_Scan(); if((KBI_GetKeyState(kKEY1) == kKBI_SINGLE)) { //如果案件按下 喂狗: WDOG_Feed(); } //扫描间隔延时 DelayMs(KBI_SCAN_PERIOD_IN_US/1000); } }
int main(void) { uint32_t instance; /*存放 UART 的模块号 */ DelayInit(); DelayMs(10); GPIO_QuickInit(HW_GPIOE, 6, kGPIO_Mode_OPP); /* 初始化UART 使用快速初始化方式 波特率 115200 其他配置默认 返回初始化后 UART的模块号 */ instance = UART_QuickInit(UART0_RX_PD06_TX_PD07, 115200); /* 当使用串口初始化后 printf 被默认连接到第一个被初始化的串口上*/ printf("UART%d OK! Hello Kinetis\r\n", instance); while(1) { /* 串口 按字节发送 数据 注意 HW_UART0必须是已经初始化过的模块 否则 将产生错误*/ UART_WriteByte(instance, 'h'); UART_WriteByte(instance, 'e'); UART_WriteByte(instance, 'l'); UART_WriteByte(instance, 'l'); UART_WriteByte(instance, 'o'); UART_WriteByte(instance, '\r'); UART_WriteByte(instance, '\n'); /* 闪烁小灯 */ GPIO_ToggleBit(HW_GPIOE, 6); DelayMs(500); } }
int main(void) { SystemClockSetup(ClockSource_EX50M,CoreClock_100M); DelayInit(); LED_Init(LED_PinLookup_CHK60EVB, kNumOfLED); UART_DebugPortInit(UART4_RX_C14_TX_C15, 115200); DisplayCPUInfo(); GUI_Init(&CHGUI_InitStruct1); GUI_SetFontFormName("FONT_CourierNew"); while(1) { GUI_GotoXY(0, 0); GUI_TOUCH_GetState(&State); //打印物理AD坐标 GUI_printf("Phy:X:%04d Y:%04d\r\n", GUI_TOUCH_GetxPhys(), GUI_TOUCH_GetyPhys()); //打印逻辑AD坐标 GUI_printf("Log:X:%04d Y:%04d\r\n", State.x, State.y); GUI_printf("State:%01d\r\n", State.Pressed); //LCD 画笔跟踪 GUI_DrawPoint(State.x, State.y); DelayMs(10); //GUI 触摸屏处理函数 每10MS调用一次 GUI_TOUCH_Exec(); } }
int main(void) { //初始化系统时钟 使用外部50M晶振 PLL倍频到100M SystemClockSetup(ClockSource_EX50M,CoreClock_100M); DelayInit(); //初始化LED LED_Init(LED_PinLookup_CHK60EVB, kNumOfLED); //KBI 初始化 KBI_Init(KBI_PinLookup_CHK60EVB, kNumOfKEY); while(1) { //扫描按键 KBI_Scan(); if(KBI_GetKeyState(kKEY1) == kKBI_SINGLE) { LED_Toggle(kLED1); } if(KBI_GetKeyState(kKEY1) == kKBI_LONG) { LED_Toggle(kLED2); } //扫描间隔延时 DelayMs(KBI_SCAN_PERIOD_IN_US/1000); } }
/* 实验名称:WDOG窗口看门狗 实验平台:渡鸦开发板 板载芯片:MK60DN512ZVQ10 实验效果:开启看门狗的窗口模式,必须在规定的时间范围内喂狗,否则芯片复位 */ int main(void) { DelayInit(); GPIO_QuickInit(HW_GPIOE, 6, kGPIO_Mode_OPP); /* LED */ UART_QuickInit(UART0_RX_PD06_TX_PD07, 115200); /* 初始化看门狗 */ WDOG_InitTypeDef WDOG_InitStruct1 = {0}; WDOG_InitStruct1.mode = kWDOG_Mode_Window; //设置看门狗为窗口模式 WDOG_InitStruct1.windowInMs = 1000; /* 开窗时间 设置为窗体模式后 喂狗必须在 看门狗开始计时后 1000 - 2000 MS内完成 多了少了都复位 比普通看门狗严格*/ WDOG_InitStruct1.timeOutInMs = 2000; /* 时限 2000MS : 2000MS 内没有喂狗则复位 */ WDOG_Init(&WDOG_InitStruct1); printf("\r\nSYSTEM RESET!!!!!!!%d\r\n", WDOG_GetResetCounter()); printf("press any character to feed dog feed, must be in windows time\r\n"); static uint32_t i; uint16_t ch; while(1) { if(UART_ReadByte(HW_UART0, &ch) == 0) { printf("wdog feed succ!\r\n"); WDOG_Refresh(); //喂狗 i = 0; } printf("cnt:i:%d\r", i++); DelayMs(100); GPIO_ToggleBit(HW_GPIOE, 6); } }
int main(void) { //使用USB 必须CoreClock = 96M uint8_t FnKey = 0; uint8_t Keybuf[6] = {0,0,0,0,0,0}; SystemClockSetup(ClockSource_EX50M,CoreClock_96M); DelayInit(); LED_Init(LED_PinLookup_CHK60EVB, kNumOfLED); KBI_Init(KBI_PinLookup_CHK60EVB, kNumOfKEY); UART_DebugPortInit(UART4_RX_C14_TX_C15, 115200); DisplayCPUInfo(); UART_printf("Waitting for USB connect ...\r\n"); USB_Init(); //初始化USB设备 USB_WaitDeviceEnumed(); //等待USB枚举成功 UART_printf("USB connected!\r\n"); while(1) { KBI_Scan(); if(KBI_GetKeyState(kKEY1) == kKBI_SINGLE) { Keybuf[0] = 4; //A 的USBHIDKeyCode USB_HID_SetKeyBoard(FnKey,Keybuf); } if(KBI_GetKeyState(kKEY2) == kKBI_SINGLE) { Keybuf[0] = 5; //A 的USBHIDKeyCode USB_HID_SetKeyBoard(FnKey,Keybuf); } HID_Proc(); //执行HID进程 DelayMs(KBI_SCAN_PERIOD_IN_US/1000); //延时 } }
int main(void) { //Clock Setup Internal Clock , CoreClock = 24M SystemClockSetup(ClockSource_IRC,CoreClock_24M); //DelayInit DelayInit(); //LED Init LED_Init(); //Init a debug UART prot // UART_DebugPortInit(UART1_RX_PC03_TX_PC04,115200); UART_DebugPortInit(UART0_RX_PB16_TX_PB17,115200); DisplayCPUInfo(); GPIO_Test(); MAG3110_Test(); AT24Cxx_Test(); SPIFLASH_Test(); ADC_Test(); WDOG_Init(); while(1); }
int main(void) { DelayInit(); UART_QuickInit(UART0_RX_PD06_TX_PD07, 115200); printf("CHBootloader\r\n"); UART_CallbackRxInstall(HW_UART0, UART_ISR); FLASH_Init(); Boot.name = "MK6xDN1M(512)VLQ12"; Boot.AppStartAddr = 0x5000; Boot.TimeOut = 2000; Boot.FlashPageSize = FLASH_GetSectorSize(); Boot.send = send; Boot.flash_erase = flash_erase; Boot.flash_write = flash_write; BootloaderInit(&Boot); UART_ITDMAConfig(HW_UART0, kUART_IT_Rx, true); while(1) { BootloaderProc(); } }
int main(void) { DelayInit(); // Initialize exernal interrupt EXTI15_10_Init(); // Initialize PB13 as push-pull output for LED RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); GPIO_InitStruct.GPIO_Pin = GPIO_Pin_13; GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStruct.GPIO_Speed = GPIO_Speed_2MHz; GPIO_Init(GPIOB, &GPIO_InitStruct); // Initialize PC13 as push-pull output for LED RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); GPIO_InitStruct.GPIO_Pin = GPIO_Pin_13; GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStruct.GPIO_Speed = GPIO_Speed_2MHz; GPIO_Init(GPIOC, &GPIO_InitStruct); while (1) { // Blink LED on PC13 GPIOC->BRR = GPIO_Pin_13; DelayMs(1000); GPIOC->BSRR = GPIO_Pin_13; DelayMs(1000); } }
int main(void) { DelayInit(); GPIO_QuickInit(HW_GPIOE, 6, kGPIO_Mode_OPP); UART_QuickInit(UART0_RX_PD06_TX_PD07, 115200); /* 设置PORTE PORTA 中断 */ GPIO_QuickInit(HW_GPIOE,26, kGPIO_Mode_IPU); GPIO_QuickInit(HW_GPIOA, 4, kGPIO_Mode_IPU); GPIO_CallbackInstall(HW_GPIOE, PORTE_ISR); GPIO_CallbackInstall(HW_GPIOA, PORTA_ISR); GPIO_ITDMAConfig(HW_GPIOE, 26, kGPIO_IT_RisingEdge, true); GPIO_ITDMAConfig(HW_GPIOA, 4, kGPIO_IT_RisingEdge, true); printf("NVIC test connect E26&A04\r\n"); /* 将系统 中断优先级分组 可以配置 16个 抢占优先级 和16个 子优先级 */ NVIC_SetPriorityGrouping(NVIC_PriorityGroup_2); //中断优先级分成2组 NVIC_SetPriority(PORTE_IRQn, NVIC_EncodePriority(NVIC_PriorityGroup_2, 2, 2)); //设置PTE端口的抢占优先级的子优先级 NVIC_SetPriority(PORTA_IRQn, NVIC_EncodePriority(NVIC_PriorityGroup_2, 2, 2)); while(1) { GPIO_ToggleBit(HW_GPIOE, 6); DelayMs(500); } }
int main(void) { //初始化系统时钟 使用外部50M晶振 PLL倍频到100M SystemClockSetup(ClockSource_EX50M,CoreClock_100M); DelayInit(); LED_Init(LED_PinLookup_CHK60EVB, kNumOfLED); UART_DebugPortInit(UART4_RX_C14_TX_C15, 115200); DisplayCPUInfo(); //初始化GUI GUI_Init(&CHGUI_InitStruct1); //设置背景色为黑色 GUI_SetBkColor(BLACK); //普通字符显示模式 GUI_SetTextMode(GUI_TEXTMODE_NORMAL); //设置前景色为红色 GUI_SetColor(LGRAY); //将当前字体设置为CourierNew GUI_SetFontFormName("FONT_CourierNew"); //打印字符 GUI_printf("HelloWorld\r\n"); //打印CHGUI版本号 GUI_printf("CHGUI_Version:%0.2f\r\n", (float)(GUI_VERSION/100)); //打印LCDID GUI_printf("ID:%X\r\n", GUI_GetDeivceID()); while(1) { } }
int main(void) { DelayInit(); SYSTICK_Init((1000*1000)/OS_TICKS_PER_SEC); SYSTICK_ITConfig(true); UART_QuickInit(UART0_RX_PD06_TX_PD07, 115200); printf("uCOSII test\r\n"); OSInit(); //OS初始化 OSTaskCreate(AppLED1Task,(void *)0, &APP_LED1_STK[TASK_STK_SIZE-1], APP_LED1_TASK_PRIO); //建立LED1 任务 OSTaskCreate(AppLED0Task,(void *)0, &APP_LED0_STK[TASK_STK_SIZE-1], APP_LED0_TASK_PRIO); //建立LED0 任务 SYSTICK_Cmd(true); /* 控制权交给操作系统 */ OSStart(); /* 程序永远不会运行到这 */ while(1); }
int main(void) { DelayInit(); UART_QuickInit(UART0_RX_PD06_TX_PD07, 115200); GPIO_QuickInit(HW_GPIOE, 6, kGPIO_Mode_OPP); /* LED */ printf("calc the PWM duty, pwm will be generated on PA08 and input pin: PC01 and PC02\r\n"); FTM_PWM_QuickInit(FTM1_CH0_PA08, kPWM_EdgeAligned, 200); FTM_PWM_ChangeDuty(HW_FTM1, HW_FTM_CH0, 2500);/* 25% */ /* 配置IC 功能 设置中断 */ FTM_IC_QuickInit(FTM0_CH0_PC01, kFTM_ClockDiv128); FTM_IC_SetTriggerMode(HW_FTM0, HW_FTM_CH0, kFTM_IC_RisingEdge); FTM_CallbackInstall(HW_FTM0, FTM0_ISR); FTM_ITDMAConfig(HW_FTM0, kFTM_IT_CH0, true); FTM_IC_QuickInit(FTM0_CH1_PC02, kFTM_ClockDiv128); FTM_IC_SetTriggerMode(HW_FTM0, HW_FTM_CH1, kFTM_IC_FallingEdge); /* FTM_CallbackInstall(HW_FTM1, FTM1_ISR); */ FTM_ITDMAConfig(HW_FTM0, kFTM_IT_CH1, true); while(1) { /* printf("Frequency:%6dHz", InputCaptureValue); printf(" Frequency1:%6dHz\r\n", InputCaptureValue1); */ printf("Duty = %3f%% \n",((double)InputCaptureValue)/((double)InputCaptureValue1)*100.0); GPIO_ToggleBit(HW_GPIOE, 6); //控制小灯闪烁 DelayMs(500); } }
int main(void) { // Initialize delay function DelayInit(); // Initialize ADC, PWM, and GPIO ADC_Setup(); PWM_Setup(); GPIO_Setup(); while (1) { // Read input switch (active low) effect = GPIO_ReadInputData(GPIOB); // Invert and mask input switch bits effect = ~effect & 0x7000; // If any audio effect is active, then turn on LED if (effect) { // Turn on LED (active low) GPIO_ResetBits(GPIOC, GPIO_Pin_13); } else { GPIO_SetBits(GPIOC, GPIO_Pin_13); } DelayMs(50); } }
int main(void) { //定义串口初始化结构 UART_InitTypeDef UART_InitStruct1; //初始化系统时钟 使用外部50M晶振 PLL倍频到100M SystemClockSetup(ClockSource_EX50M,CoreClock_100M); DelayInit(); //初始化LED LED_Init(LED_PinLookup_CHKATOM, kNumOfLED); //KBI 初始化 KBI_Init(KBI_PinLookup_CHKATOM, kNumOfKEY); UART_InitStruct1.UARTxMAP = UART4_RX_C14_TX_C15; //UART4模块 映射引脚:PTC14 PTC15 UART_InitStruct1.UART_BaudRate = 115200; //波特率 115200 UART_Init(&UART_InitStruct1); //初始化串口 //开启接收中断 UART_ITConfig(UART4, UART_IT_RDRF, ENABLE); //接通NVIC上对应串口中断线 NVIC_EnableIRQ(UART4_RX_TX_IRQn); //等待串口信息 while(1) { } }
int main(void) { int value; DelayInit(); GPIO_QuickInit(HW_GPIOD, 7, kGPIO_Mode_OPP); GPIO_QuickInit(HW_GPIOE, 6, kGPIO_Mode_OPP); UART_QuickInit(UART0_RX_PA01_TX_PA02, 115200); printf("LPTMR test\r\n"); printf("PWM will generated from PC04, LPTMR will measure pulse on PC05\r\n"); printf("please connect PC04&PC05\r\n"); /* 边沿对其方式产生PWM波 */ TPM_PWM_QuickInit(TPM0_CH3_PC04, kPWM_EdgeAligned, 50); /* 占空比 50% */ TPM_PWM_ChangeDuty(HW_TPM0, kTPM_IT_CH3, 5000); LPTMR_PC_QuickInit(LPTMR_ALT2_PC05); while(1) { value = LPTMR_PC_ReadCounter(); printf("lptmr:%dHz\r\n", value); LPTMR_ClearCounter(); DelayMs(1000); } }
int main(void) { //定义串口初始化结构 UART_InitTypeDef UART_InitStruct1; //初始化系统时钟 使用外部50M晶振 PLL倍频到100M SystemClockSetup(ClockSource_EX50M,CoreClock_100M); DelayInit(); //初始化LED LED_Init(LED_PinLookup_CHKATOM, kNumOfLED); //KBI 初始化 KBI_Init(KBI_PinLookup_CHKATOM, kNumOfKEY); UART_InitStruct1.UARTxMAP = UART4_RX_C14_TX_C15; //UART4模块 映射引脚:PTC14 PTC15 UART_InitStruct1.UART_BaudRate = 115200; //波特率 115200 UART_Init(&UART_InitStruct1); //初始化串口 UART_SendData(UART4, 'H'); UART_SendData(UART4, 'e'); UART_SendData(UART4, 'l'); UART_SendData(UART4, 'l'); UART_SendData(UART4, 'o'); //一次发送多个字符串 UART_SendBytes(UART4, "12345678", 8); while(1) { } }
/* 实验名称:Flexbus驱动ARAM 实验平台:渡鸦开发板 板载芯片:MK60DN512ZVQ10 实验效果:测试外挂的SRAM工作情况 具体的SRAM应用请参见sram.c文件 */ int main(void) { DelayInit(); DelayMs(10); GPIO_QuickInit(HW_GPIOE, 6, kGPIO_Mode_OPP); UART_QuickInit(UART0_RX_PD06_TX_PD07, 115200); printf("Flexbus SRAM test\r\n"); /* 初始化外部SRAM */ SRAM_Init(); /* SRAM 自测 */ if(!SRAM_SelfTest()) { printf("sram test ok!\r\n"); } else { printf("sram test failed!\r\n"); } while(1) { GPIO_ToggleBit(HW_GPIOE, 6); DelayMs(500); } }
/* Initializes the OLED for debugging purposes */ void beginMyOled(){ DelayInit(); OledInit(); OledSetCursor(0, 0); OledClearBuffer(); OledUpdate(); }
/** ****************************************************************************** * @brief Initialize GPIO pins for keypad. * @param None * @retval None ****************************************************************************** */ void KeypadInit() { DelayInit(); // GPIO clock for keypad columns and rows RCC_APB2PeriphClockCmd(KEYPAD_RCC_GPIO_COL, ENABLE); RCC_APB2PeriphClockCmd(KEYPAD_RCC_GPIO_ROW, ENABLE); }