亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? hw_config.c

?? stm32單片機(jī)的usb程序包
?? C
字號(hào):
/******************** (C) COPYRIGHT 2007 STMicroelectronics ********************
* File Name          : hw_config.c
* Author             : MCD Application Team
* Version            : V1.0
* Date               : 10/08/2007
* Description        : Hardware Configuration & Setup
********************************************************************************
* THE PRESENT SOFTWARE 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 SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
*******************************************************************************/

/* Includes ------------------------------------------------------------------*/
#include "stm32f10x_lib.h"
#include "hw_config.h"
#include "usb_lib.h"

/* Private typedef -----------------------------------------------------------*/
/* Private define ------------------------------------------------------------*/
#define JOY_UP       GPIO_Pin_8  /* PD.08 */
#define JOY_DOWN     GPIO_Pin_14 /* PD.14 */
#define JOY_LEFT     GPIO_Pin_1  /* PE.01 */
#define JOY_RIGHT    GPIO_Pin_0  /* PE.00 */

/* Private macro -------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
ErrorStatus HSEStartUpStatus;

/* Extern variables ----------------------------------------------------------*/
/* Private function prototypes -----------------------------------------------*/
/* Private functions ---------------------------------------------------------*/

/*******************************************************************************
* Function Name  : Set_System
* Description    : Configures Main system clocks & power.
* Input          : None.
* Return         : None.
*******************************************************************************/
void Set_System(void)
{
  GPIO_InitTypeDef GPIO_InitStructure;

  /* SYSCLK, HCLK, PCLK2 and PCLK1 configuration -----------------------------*/   
  /* RCC system reset(for debug purpose) */
  RCC_DeInit();

  /* Enable HSE */
  RCC_HSEConfig(RCC_HSE_ON);

  /* Wait till HSE is ready */
  HSEStartUpStatus = RCC_WaitForHSEStartUp();

  if(HSEStartUpStatus == SUCCESS)
  {
    /* Enable Prefetch Buffer */
    FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);

    /* Flash 2 wait state */
    FLASH_SetLatency(FLASH_Latency_2);
 
    /* HCLK = SYSCLK */
    RCC_HCLKConfig(RCC_SYSCLK_Div1); 
  
    /* PCLK2 = HCLK */
    RCC_PCLK2Config(RCC_HCLK_Div1); 

    /* PCLK1 = HCLK/2 */
    RCC_PCLK1Config(RCC_HCLK_Div2);

    /* ADCCLK = PCLK2/6 */
    RCC_ADCCLKConfig(RCC_PCLK2_Div6);

    /* PLLCLK = 8MHz * 9 = 72 MHz */
    RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);

    /* Enable PLL */ 
    RCC_PLLCmd(ENABLE);

    /* Wait till PLL is ready */
    while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)
    {
    }

    /* Select PLL as system clock source */
    RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);

    /* Wait till PLL is used as system clock source */
    while(RCC_GetSYSCLKSource() != 0x08)
    {
    }
  }
  
  /* Enable GPIOD and GPIOE clock */
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD | RCC_APB2Periph_GPIOE, ENABLE);
  
  /* PD.09 used as USB pull-up */
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;
  GPIO_Init(GPIOD, &GPIO_InitStructure);

  /* Configure the JoyStick IOs */
  /* Key up + Key down */
  GPIO_InitStructure.GPIO_Pin = JOY_UP | JOY_DOWN;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
  GPIO_Init(GPIOD, &GPIO_InitStructure);

  /* Key left + Key right*/
  GPIO_InitStructure.GPIO_Pin = JOY_LEFT | JOY_RIGHT;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
  GPIO_Init(GPIOE, &GPIO_InitStructure);
}

/*******************************************************************************
* Function Name  : Set_USBClock
* Description    : Configures USB Clock input (48MHz).
* Input          : None.
* Output         : None.
* Return         : None.
*******************************************************************************/
void Set_USBClock(void)
{
  /* Select USBCLK source */
  RCC_USBCLKConfig(RCC_USBCLKSource_PLLCLK_1Div5);

  /* Enable USB clock */
  RCC_APB1PeriphClockCmd(RCC_APB1Periph_USB, ENABLE);
}

/*******************************************************************************
* Function Name  : Enter_LowPowerMode.
* Description    : Power-off system clocks and power while entering suspend mode.
* Input          : None.
* Output         : None.
* Return         : None.
*******************************************************************************/
void Enter_LowPowerMode(void)
{
}

/*******************************************************************************
* Function Name  : Leave_LowPowerMode.
* Description    : Restores system clocks and power while exiting suspend mode.
* Input          : None.
* Output         : None.
* Return         : None.
*******************************************************************************/
void Leave_LowPowerMode(void)
{
}

/*******************************************************************************
* Function Name  : USB_Interrupts_Config.
* Description    : Configures the USB interrupts.
* Input          : None.
* Output         : None.
* Return         : None.
*******************************************************************************/
void USB_Interrupts_Config(void)
{
  NVIC_InitTypeDef NVIC_InitStructure;

#ifdef  VECT_TAB_RAM  
  /* Set the Vector Table base location at 0x20000000 */ 
  NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0);
#else  /* VECT_TAB_FLASH */
  /* Set the Vector Table base location at 0x08000000 */
  NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);   
#endif 

  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);

  NVIC_InitStructure.NVIC_IRQChannel = USB_LP_CAN_RX0_IRQChannel;
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure);
}

/*******************************************************************************
* Function Name  : USB_Cable_Config.
* Description    : Software Connection/Disconnection of USB Cable.
* Input          : NewState: new state.
* Output         : None.
* Return         : None
*******************************************************************************/
void USB_Cable_Config (FunctionalState NewState)
{ 
  if (NewState != DISABLE)
  {
    GPIO_ResetBits(GPIOD, GPIO_Pin_9);
  }
  else
  {
    GPIO_SetBits(GPIOD, GPIO_Pin_9);
  }
}

/*******************************************************************************
* Function Name : JoyState.
* Description   : Decodes the Joystick direction.
* Input         : None.
* Output        : None.
* Return value  : The direction value.
*******************************************************************************/
u8 JoyState(void)
{
  /* "right" key is pressed */
  if (!GPIO_ReadInputDataBit(GPIOE, JOY_RIGHT))
  {
    return RIGHT;
  }
  /* "left" key is pressed */
  if (!GPIO_ReadInputDataBit(GPIOE, JOY_LEFT))
  {
    return LEFT;
  }
  /* "up" key is pressed */
  if (!GPIO_ReadInputDataBit(GPIOD, JOY_UP))
  {
    return UP;
  }
  /* "down" key is pressed */
  if (!GPIO_ReadInputDataBit(GPIOD, JOY_DOWN))
  {
    return DOWN;
  }
  /* No key is pressed */
  else
  {
    return 0;
  }
}

/*******************************************************************************
* Function Name : Joystick_Send.
* Description   : prepares buffer to be sent containing Joystick event infos.
* Input         : Keys: keys received from terminal.
* Output        : None.
* Return value  : None.
*******************************************************************************/
void Joystick_Send(u8 Keys)
{
  u8 Mouse_Buffer[4] = {0, 0, 0, 0};
  s8 X = 0, Y = 0;

  switch (Keys)
  {
    case LEFT:
      X -= CURSOR_STEP;
      break;
    case RIGHT:

      X += CURSOR_STEP;
      break;
    case UP:
      Y -= CURSOR_STEP;
      break;
    case DOWN:
      Y += CURSOR_STEP;
      break;
    default:
      return;
  }

  /* prepare buffer to send */
  Mouse_Buffer[1] = X;
  Mouse_Buffer[2] = Y;
  /*copy mouse position info in ENDP1 Tx Packet Memory Area*/
  UserToPMABufferCopy(Mouse_Buffer, GetEPTxAddr(ENDP1), 4);
  /* enable endpoint for transmission */
  SetEPTxValid(ENDP1);
}

/******************* (C) COPYRIGHT 2007 STMicroelectronics *****END OF FILE****/

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产欧美一区视频| 色婷婷国产精品综合在线观看| 欧美日韩五月天| 亚洲国产aⅴ成人精品无吗| 色域天天综合网| 亚洲夂夂婷婷色拍ww47| 欧美亚洲丝袜传媒另类| 香港成人在线视频| 欧美一级黄色大片| 精品一区二区三区久久| 精品国产91亚洲一区二区三区婷婷| 韩国中文字幕2020精品| 日本一区二区三区电影| 91原创在线视频| 亚洲午夜日本在线观看| 欧美一区二区三区思思人| 精品一区二区精品| 国产精品麻豆网站| 欧美性生活影院| 蜜桃久久久久久| 中文字幕av一区 二区| 97久久人人超碰| 日本免费在线视频不卡一不卡二| 欧美tickling挠脚心丨vk| 成人视屏免费看| 亚洲一区二区在线免费观看视频| 欧美一二三四区在线| 国产成人综合亚洲网站| 亚洲精品免费一二三区| 精品乱人伦小说| av激情综合网| 亚洲bt欧美bt精品| 国产片一区二区三区| 在线观看一区二区精品视频| 韩国午夜理伦三级不卡影院| 最新中文字幕一区二区三区| 91精品国产黑色紧身裤美女| 成人永久免费视频| 日韩高清国产一区在线| 国产精品情趣视频| 91麻豆精品国产无毒不卡在线观看| 国产一区二区精品久久| 亚洲在线观看免费视频| 国产拍欧美日韩视频二区| 555www色欧美视频| 91小视频在线免费看| 精品一区二区三区在线播放视频| 亚洲欧美国产三级| 久久久不卡影院| 欧美优质美女网站| caoporn国产精品| 美女在线一区二区| 亚洲国产精品久久一线不卡| 国产精品天干天干在线综合| 日韩亚洲欧美中文三级| 欧美性色aⅴ视频一区日韩精品| 成人精品鲁一区一区二区| 91官网在线观看| 国内外成人在线视频| 日韩国产成人精品| 亚洲综合丁香婷婷六月香| 中文字幕av一区二区三区高| 久久综合狠狠综合久久激情| 7777精品久久久大香线蕉| 色狠狠色狠狠综合| 色综合天天综合给合国产| 粉嫩在线一区二区三区视频| 极品少妇一区二区三区精品视频| 午夜精品国产更新| 亚洲综合丁香婷婷六月香| 亚洲精品你懂的| 一区二区视频免费在线观看| 中文字幕av资源一区| 国产午夜精品久久| 久久女同精品一区二区| 久久久三级国产网站| www国产精品av| 精品少妇一区二区三区在线视频| 91精品啪在线观看国产60岁| 91国产福利在线| 欧美三级日韩三级| 欧美日韩一区不卡| 欧美视频日韩视频| 欧美精品久久99久久在免费线 | 精品一区二区免费视频| 免费成人在线视频观看| 麻豆国产欧美一区二区三区| 久久国产日韩欧美精品| 久久精品国产一区二区三| 蜜臀av一级做a爰片久久| 美女一区二区在线观看| 黄色精品一二区| 国产**成人网毛片九色| 91免费看`日韩一区二区| 色欲综合视频天天天| 欧美日韩一区二区三区在线| 欧美精品丝袜中出| 精品国产一区二区三区av性色| 精品国产电影一区二区| 国产日韩欧美精品电影三级在线 | 国产自产2019最新不卡| 国产成人在线网站| 97久久精品人人爽人人爽蜜臀| 色国产综合视频| 欧美久久久一区| 2024国产精品| 中文字幕一区二区5566日韩| 亚洲黄色av一区| 蓝色福利精品导航| 国产不卡免费视频| 欧美亚日韩国产aⅴ精品中极品| 91精品国产丝袜白色高跟鞋| 国产亚洲精久久久久久| 一区二区三区精品| 久久精品免费看| 不卡av电影在线播放| 欧美日本韩国一区| 久久丝袜美腿综合| 夜夜嗨av一区二区三区中文字幕| 免费视频一区二区| 色婷婷综合在线| 欧美xxxx在线观看| 亚洲精品久久嫩草网站秘色| 激情文学综合网| 欧洲日韩一区二区三区| 精品成a人在线观看| 一区二区三区中文字幕电影| 麻豆精品久久精品色综合| 91亚洲精品久久久蜜桃| 欧美一二三区在线观看| 亚洲麻豆国产自偷在线| 激情综合网av| 欧美日韩国产高清一区二区三区| 国产三级三级三级精品8ⅰ区| 亚洲一区在线观看视频| 成人免费看黄yyy456| 日韩三级视频在线看| 亚洲一区二区在线免费观看视频| 风间由美一区二区三区在线观看| 欧美精品v日韩精品v韩国精品v| 国产精品美女视频| 激情五月播播久久久精品| 欧美色欧美亚洲另类二区| 中文字幕va一区二区三区| 美女视频黄a大片欧美| 在线观看日韩电影| 最新高清无码专区| 国产精选一区二区三区| 91精品婷婷国产综合久久竹菊| 一区二区在线观看不卡| 成人国产精品免费网站| 久久精品视频免费观看| 毛片av一区二区| 91精品在线观看入口| 亚洲成人自拍偷拍| 欧美视频在线不卡| 亚洲乱码国产乱码精品精可以看 | 欧美老肥妇做.爰bbww视频| 亚洲手机成人高清视频| 国产精品一二三四区| 久久亚洲精品国产精品紫薇| 日韩av一区二区三区四区| 欧美精品 日韩| 亚洲国产日产av| 欧美视频在线一区| 五月激情综合色| 欧美日韩一级二级| 亚洲国产欧美日韩另类综合| 欧美一a一片一级一片| 亚洲免费观看高清完整版在线观看熊 | 七七婷婷婷婷精品国产| 欧美日韩第一区日日骚| 亚洲国产精品久久艾草纯爱| 欧美在线三级电影| 亚洲一区二区三区四区在线免费观看| 91色porny在线视频| 亚洲精品亚洲人成人网| 色欧美片视频在线观看在线视频| 亚洲蜜桃精久久久久久久| 欧美丝袜丝nylons| 视频一区中文字幕| 日韩欧美一区中文| 国模大尺度一区二区三区| 久久久噜噜噜久久中文字幕色伊伊| 国产高清在线观看免费不卡| 欧美国产日韩精品免费观看| aaa欧美色吧激情视频| 一区二区三区在线看| 欧美精品日日鲁夜夜添| 美国十次了思思久久精品导航| 欧美白人最猛性xxxxx69交| 国产传媒欧美日韩成人| 亚洲特黄一级片| 欧美日韩大陆一区二区| 精品亚洲成a人| 欧美国产欧美亚州国产日韩mv天天看完整 | 欧美精品第1页| 国精产品一区一区三区mba视频| 国产精品欧美一级免费| 欧美午夜一区二区三区免费大片|