/taxi_v1.2/Project/Examples/GPIO/IOToggle/main.c
C | 166 lines | 61 code | 24 blank | 81 comment | 4 complexity | e9b7176e4077c671deb856407d14dc5b MD5 | raw file
- /**
- ******************************************************************************
- * @file GPIO/IOToggle/main.c
- * @author MCD Application Team
- * @version V3.0.0
- * @date 04/06/2009
- * @brief Main program body.
- ******************************************************************************
- * @copy
- *
- * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
- * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE
- * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY
- * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING
- * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE
- * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
- *
- * <h2><center>© COPYRIGHT 2009 STMicroelectronics</center></h2>
- */
-
- /* Includes ------------------------------------------------------------------*/
- #include "stm32f10x.h"
- #include "platform_config.h"
-
- /** @addtogroup StdPeriph_Examples
- * @{
- */
-
- /** @addtogroup GPIO_IOToggle
- * @{
- */
-
- /* Private typedef -----------------------------------------------------------*/
- /* Private define ------------------------------------------------------------*/
- /* Private macro -------------------------------------------------------------*/
- /* Private variables ---------------------------------------------------------*/
- GPIO_InitTypeDef GPIO_InitStructure;
-
- /* Private function prototypes -----------------------------------------------*/
- void RCC_Configuration(void);
- void Delay(__IO uint32_t nCount);
-
- /* Private functions ---------------------------------------------------------*/
-
- /**
- * @brief Main program.
- * @param None
- * @retval : None
- */
- int main(void)
- {
- /* System Clocks Configuration **********************************************/
- RCC_Configuration();
-
- /* Configure all unused GPIO port pins in Analog Input mode (floating input
- trigger OFF), this will reduce the power consumption and increase the device
- immunity against EMI/EMC *************************************************/
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB |
- RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD |
- RCC_APB2Periph_GPIOE, ENABLE);
-
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
- GPIO_Init(GPIOA, &GPIO_InitStructure);
- GPIO_Init(GPIOB, &GPIO_InitStructure);
- GPIO_Init(GPIOC, &GPIO_InitStructure);
- GPIO_Init(GPIOD, &GPIO_InitStructure);
- GPIO_Init(GPIOE, &GPIO_InitStructure);
-
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB |
- RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD |
- RCC_APB2Periph_GPIOE, DISABLE);
- #ifdef USE_STM3210E_EVAL
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOF | RCC_APB2Periph_GPIOG, ENABLE);
-
- GPIO_Init(GPIOF, &GPIO_InitStructure);
- GPIO_Init(GPIOG, &GPIO_InitStructure);
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOF | RCC_APB2Periph_GPIOG, DISABLE);
- #endif /* USE_STM3210E_EVAL */
-
- /* Configure IO connected to LD1, LD2, LD3 and LD4 leds *********************/
- /* Enable GPIO_LED clock */
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIO_LED, ENABLE);
-
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9;
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
- GPIO_Init(GPIO_LED, &GPIO_InitStructure);
-
- while (1)
- {
- /* Turn on LD1 */
- GPIO_SetBits(GPIO_LED, GPIO_Pin_6);
- /* Insert delay */
- Delay(0xAFFFF);
-
- /* Turn on LD2 and LD3 */
- GPIO_SetBits(GPIO_LED, GPIO_Pin_7 | GPIO_Pin_8);
- /* Turn off LD1 */
- GPIO_ResetBits(GPIO_LED, GPIO_Pin_6);
- /* Insert delay */
- Delay(0xAFFFF);
-
- /* Turn on LD4 */
- GPIO_SetBits(GPIO_LED, GPIO_Pin_9);
- /* Turn off LD2 and LD3 */
- GPIO_ResetBits(GPIO_LED, GPIO_Pin_8 | GPIO_Pin_7);
- /* Insert delay */
- Delay(0xAFFFF);
-
- /* Turn off LD4 */
- GPIO_ResetBits(GPIO_LED, GPIO_Pin_9);
- }
- }
-
- /**
- * @brief Configures the different system clocks.
- * @param None
- * @retval : None
- */
- void RCC_Configuration(void)
- {
- /* Setup the microcontroller system. Initialize the Embedded Flash Interface,
- initialize the PLL and update the SystemFrequency variable. */
- SystemInit();
- }
-
- /**
- * @brief Inserts a delay time.
- * @param nCount: specifies the delay time length.
- * @retval : None
- */
- void Delay(__IO uint32_t nCount)
- {
- for(; nCount != 0; nCount--);
- }
-
- #ifdef USE_FULL_ASSERT
- /**
- * @brief Reports the name of the source file and the source line number
- * where the assert_param error has occurred.
- * @param file: pointer to the source file name
- * @param line: assert_param error line source number
- * @retval : None
- */
- void assert_failed(uint8_t* file, uint32_t line)
- {
- /* User can add his own implementation to report the file name and line number,
- ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
-
- /* Infinite loop */
- while (1)
- {
- }
- }
- #endif
-
- /**
- * @}
- */
-
- /**
- * @}
- */
-
- /******************* (C) COPYRIGHT 2009 STMicroelectronics *****END OF FILE****/