void vParTestInitialise( void ) { /* Configure the bits used to flash LED's on port 1 as output. */ GPIO_Config(GPIO1, partstALL_LEDs, GPIO_OUT_OD); }
int main(void) { FRESULT fresult; NVIC_InitTypeDef nvicStructure; SystemInit(); GPIO_Config(); SPI_Config(); /* for(i1=0;i1<TABLE_SIZE;i1++){ buffer[0][i1] = 4*i1; } for(i1=0;i1<TABLE_SIZE;i1++){ buffer[1][i1] = 2047*sin(currentPhase)+2047; currentPhase += phaseIncrement; } */ /* Configure LED3 and LED4 on STM32L100C-Discovery */ STM_EVAL_LEDInit(LED3); STM_EVAL_LEDInit(LED4); /* SysTick end of count event each 1ms */ //RCC_GetClocksFreq(&RCC_Clocks); // SysTick_Config(RCC_Clocks.HCLK_Frequency / 1000); //delay_init(72);// delay_init(16); Lcd_Init2(); Lcd_Clear2(BLACK); /* RTC configuration */ //RTC_Config(); RTC_Config32768Internal(); /* Configure RTC alarm A register to generate 8 interrupts per 1 Second */ RTC_AlarmConfig(); tft_puts(45, 20, "12:00", white, black); RCC_ClocksTypeDef RCC_Clocks; /* Initialize User_Button on STM32L100C-Discovery */ STM_EVAL_PBInit(BUTTON_MODE, BUTTON_MODE_GPIO); STM_EVAL_PBInit(BUTTON_UP, BUTTON_MODE_GPIO); STM_EVAL_PBInit(BUTTON_DOWN, BUTTON_MODE_GPIO); //STM_EVAL_PBInit(BUTTON_MODE, BUTTON_MODE_EXTI); /* SysTick end of count event each 1ms */ // RCC_GetClocksFreq(&RCC_Clocks); // SysTick_Config(RCC_Clocks.HCLK_Frequency / 1000); /*************************/ //TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); nvicStructure.NVIC_IRQChannel = TIM2_IRQn; nvicStructure.NVIC_IRQChannelPreemptionPriority = 0; nvicStructure.NVIC_IRQChannelSubPriority = 1; nvicStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&nvicStructure); TIM_TimeBaseInitTypeDef timerInitStructure; timerInitStructure.TIM_Prescaler = 3200; //32 MHz/3200 = 10000 timerInitStructure.TIM_CounterMode = TIM_CounterMode_Up; //timerInitStructure.TIM_Period = 3332; timerInitStructure.TIM_Period = 100; //10 000/100 = 100 Hz - sampling frequency of buttons timerInitStructure.TIM_ClockDivision = TIM_CKD_DIV1; //timerInitStructure.TIM_RepetitionCounter = 0; TIM_TimeBaseInit(TIM2, &timerInitStructure); TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE); TIM_Cmd(TIM2, ENABLE); /*************************/ //GPIO_PinAFConfig(GPIOA, GPIO_PinSource4, GPIO_AF_SPI1); GPIO_PinAFConfig(GPIOA, GPIO_PinSource5, GPIO_AF_SPI1); GPIO_PinAFConfig(GPIOA, GPIO_PinSource6, GPIO_AF_SPI1); GPIO_PinAFConfig(GPIOA, GPIO_PinSource7, GPIO_AF_SPI1); fresult = f_mount(&g_sFatFs, "0:0", 1); //LCD_BMP("kasia.bmp"); //Gui_DrawFont_GBK24_bk(20,120, BLUE, WHITE, "1234 abcd"); //playWav("rct3.wav"); // fsamp 22050 Hz, 8bit /* tests */ //playWav("m8m.wav"); // fsamp 44100 Hz, 8 bit //playWav("bj8.wav"); // fsamp 44100 Hz, 8 bit //playWav("im16.wav"); // fsamp 44100 Hz, 16 bit //playWavFromIntMemory(rooster3); displayDate(); while (1) { if (updated) { displayTime(); updated = false; if(updateDate){ updateAndDisplayDate(); updateDate = false; } } } }
/** * @brief Main program. * @param None * @retval None */ int main(void) { /* STM32F4xx HAL library initialization: - Configure the Flash prefetch, instruction and Data caches - Configure the Systick to generate an interrupt each 1 msec - Set NVIC Group Priority to 4 - Global MSP (MCU Support Package) initialization */ HAL_Init(); /* Configure the system clock to have a system clock = 180 Mhz */ SystemClock_Config(); /* Init the STemWin GUI Library */ BSP_SDRAM_Init(); /* Initializes the SDRAM device */ __CRC_CLK_ENABLE(); /* Enable the CRC Module */ // __PWR_CLK_ENABLE(); // HAL_PWR_EnableBkUpAccess(); // __HAL_RCC_LSE_CONFIG(RCC_LSE_BYPASS); // __HAL_RCC_RTC_ENABLE(); /*##-1- Configure the RTC peripheral #######################################*/ RtcHandle.Instance = RTC; /* Configure RTC prescaler and RTC data registers */ /* RTC configured as follow: - Hour Format = Format 24 - Asynch Prediv = Value according to source clock - Synch Prediv = Value according to source clock - OutPut = Output Disable - OutPutPolarity = High Polarity - OutPutType = Open Drain */ RtcHandle.Init.HourFormat = RTC_HOURFORMAT_24; RtcHandle.Init.AsynchPrediv = RTC_ASYNCH_PREDIV; RtcHandle.Init.SynchPrediv = RTC_SYNCH_PREDIV; RtcHandle.Init.OutPut = RTC_OUTPUT_DISABLE; RtcHandle.Init.OutPutPolarity = RTC_OUTPUT_POLARITY_HIGH; RtcHandle.Init.OutPutType = RTC_OUTPUT_TYPE_OPENDRAIN; if(HAL_RTC_Init(&RtcHandle) != HAL_OK) { /* Initialization Error */ Error_Handler(); } /*##-2- Check if Data stored in BackUp register0: No Need to reconfigure RTC#*/ /* Read the BackUp Register 0 Data */ if(HAL_RTCEx_BKUPRead(&RtcHandle, RTC_BKP_DR0) != 0x32F2) { /* Configure RTC Calendar */ RTC_CalendarConfig(); } else { /* Check if the Power On Reset flag is set */ if(__HAL_RCC_GET_FLAG(RCC_FLAG_PORRST) != RESET) { } /* Check if Pin Reset flag is set */ if(__HAL_RCC_GET_FLAG(RCC_FLAG_PINRST) != RESET) { } /* Clear Reset Flag */ __HAL_RCC_CLEAR_RESET_FLAGS(); } GUI_Init(); //GUI_Initialized = 1; GPIO_Config(); if(HAL_RTCEx_BKUPRead(&RtcHandle, RTC_BKP_DR1) ==0) { HAL_RTCEx_BKUPWrite(&RtcHandle,RTC_BKP_DR1,600); } Time3Enable(HAL_RTCEx_BKUPRead(&RtcHandle, RTC_BKP_DR1)); /* Activate the use of memory device feature */ WM_SetCreateFlags(WM_CF_MEMDEV); os_sys_init (init); }
BOOL xMBPortSerialInit( UCHAR ucPort, ULONG ulBaudRate, UCHAR ucDataBits, eMBParity eParity ) { BOOL xResult = TRUE; UARTParity_TypeDef eUARTParity; UARTMode_TypeDef eUARTMode; (void)ucPort; switch ( eParity ) { case MB_PAR_EVEN: eUARTParity = UART_EVEN_PARITY; break; case MB_PAR_ODD: eUARTParity = UART_ODD_PARITY; break; case MB_PAR_NONE: eUARTParity = UART_NO_PARITY; break; } switch ( ucDataBits ) { case 7: if( eParity == MB_PAR_NONE ) { /* not supported by our hardware. */ xResult = FALSE; } else { eUARTMode = UARTM_7D_P; } break; case 8: if( eParity == MB_PAR_NONE ) { eUARTMode = UARTM_8D; } else { eUARTMode = UARTM_8D_P; } break; default: xResult = FALSE; } if( xResult != FALSE ) { /* Setup the UART port pins. */ GPIO_Config( MB_UART_TX_PORT, 1 << MB_UART_TX_PIN, GPIO_AF_PP ); GPIO_Config( MB_UART_RX_PORT, 1 << MB_UART_RX_PIN, GPIO_IN_TRI_CMOS ); /* Configure the UART. */ UART_OnOffConfig( MB_UART_DEV, ENABLE ); UART_FifoConfig( MB_UART_DEV, DISABLE ); UART_FifoReset( MB_UART_DEV, UART_RxFIFO ); UART_FifoReset( MB_UART_DEV, UART_TxFIFO ); UART_LoopBackConfig( MB_UART_DEV, DISABLE ); UART_Config( MB_UART_DEV, ulBaudRate, eUARTParity, UART_1_StopBits, eUARTMode ); UART_RxConfig( UART0, ENABLE ); vMBPortSerialEnable( FALSE, FALSE ); /* Configure the IEC for the UART interrupts. */ EIC_IRQChannelPriorityConfig( MB_UART_IRQ_CH, MB_IRQ_PRIORITY ); EIC_IRQChannelConfig( MB_UART_IRQ_CH, ENABLE ); } return xResult; }
int main( void ) { u32 i = 0; u8 ReadBuf[128] = {0}; u8 TrData[8][32] = {0}; u8 WriteData[50] = "ABCDEFG"; SystemInit(); GPIO_Config(); RS232_Config(); LED_R = 1; LED_G = 1; // SD Card Init Info RS232_SendStr(USART3, (u8*)" \r\n"); RS232_SendStr(USART3, (u8*)"----------------------\r\n"); RS232_SendStr(USART3, (u8*)"----------------------\r\n"); RS232_SendStr(USART3, (u8*)" SDIO SD FatFs demo\r\n"); RS232_SendStr(USART3, (u8*)"----------------------\r\n"); RS232_SendStr(USART3, (u8*)"----------------------\r\n\r\n"); RS232_SendStr(USART3, (u8*)" SD Init ... "); while(SD_Init() != SD_OK) { RS232_SendStr(USART3, (u8*)"Failed!!\r\n"); while(1) { LED_R = ~LED_R; Delay_100ms(2); } } RS232_SendStr(USART3, (u8*)"OK!!\r\n\r\n"); RS232_SendStr(USART3, (u8*)"-----SD Init Info-----\r\n"); RS232_SendStr(USART3, (u8*)" Capacity : "); NumToChar(Type_D, 5, TrData[0], SDCardInfo.CardCapacity>>20); RS232_SendStr(USART3, TrData[0]); RS232_SendStr(USART3, (u8*)" MB\r\n"); RS232_SendStr(USART3, (u8*)" CardBlockSize : "); NumToChar(Type_D, 5, TrData[1], SDCardInfo.CardBlockSize); RS232_SendStr(USART3, TrData[1]); RS232_SendStr(USART3, (u8*)"\r\n"); RS232_SendStr(USART3, (u8*)" CardType : "); NumToChar(Type_D, 5, TrData[2], SDCardInfo.CardType); RS232_SendStr(USART3, TrData[2]); RS232_SendStr(USART3, (u8*)"\r\n"); RS232_SendStr(USART3, (u8*)" RCA : "); NumToChar(Type_D, 5, TrData[3], SDCardInfo.RCA); RS232_SendStr(USART3, TrData[3]); RS232_SendStr(USART3, (u8*)"\r\n"); RS232_SendStr(USART3, (u8*)"----------------------\r\n"); RS232_SendStr(USART3, (u8*)"\r\n"); // Wait while(KEY != 1){ LED_G = ~LED_G; Delay_100ms(2); } // Read Directory File RS232_SendStr(USART3, (u8*)"----------------------\r\n"); RS232_SendStr(USART3, (u8*)" SD_Card Read Directory File\r\n"); RS232_SendStr(USART3, (u8*)"----------------------\r\n\r\n"); res = f_mount(&FatFs, "", 1); res = f_opendir(&dirs, "0:/"); res = f_readdir(&dirs, &finfo); while(res!= FR_OK) { RS232_SendStr(USART3, (u8*)" FatFs failed!!\r\n"); while(1) { LED_R = ~LED_R; Delay_100ms(2); } } RS232_SendStr(USART3, (u8*)" File name : \r\n"); while(finfo.fname[0]) { f_readdir(&dirs, &finfo); if(!finfo.fname[0]) break; RS232_SendStr(USART3, (u8*)" ... "); RS232_SendStr(USART3, (u8*)finfo.fname); RS232_SendStr(USART3, (u8*)"\r\n"); } // Wait while(KEY != 1){ LED_G = ~LED_G; Delay_100ms(2); } // Write File RS232_SendStr(USART3, (u8*)" f_open ... "); res = f_open(&file,"SDCard_K.txt", FA_OPEN_ALWAYS | FA_READ | FA_WRITE); if(res==FR_OK) RS232_SendStr(USART3, (u8*)"OK!!\r\n"); else RS232_SendStr(USART3, (u8*)"failed!!\r\n"); RS232_SendStr(USART3, (u8*)" f_write ... "); res = f_write(&file, WriteData, 20, (UINT *)&i); if(res==FR_OK) RS232_SendStr(USART3, (u8*)"OK!!\r\n"); else RS232_SendStr(USART3, (u8*)"failed!!\r\n"); file.fptr = 0; RS232_SendStr(USART3, (u8*)" f_read ... "); res = f_read(&file, ReadBuf, 100, (UINT *)&i); if(res==FR_OK) RS232_SendStr(USART3, (u8*)"OK!!\r\n"); else RS232_SendStr(USART3, (u8*)"failed!!\r\n"); f_close(&file); RS232_SendStr(USART3, ReadBuf); while(1) { LED_G = ~LED_G; Delay_100ms(2); } }