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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? system_init.c

?? 韓國Wiznet公司的W5100芯片在keil c環境下的間接總線的例程。
?? C
字號:
/****************************************************************
提供商:成都浩然電子有限公司
網址:http://www.hschip.com

時間: 2007-11-6
說明:STM32F10x初始化
****************************************************************/
#include <stm32f10x_lib.h>              /* STM32F10x庫 */
#include"IO_define.h"

#define I2C1_SLAVE_ADDRESS7   0
#define ClockSpeed            100000

extern void Delay(unsigned int d);

#define TRUE	0xff
#define FALSE	0x00
/*******************************************************************************
* Function Name  : RCC_Configuration
* Description    : Configures the different system clocks.
* Input          : None
* Output         : None
* Return         : None
*******************************************************************************/
unsigned char RCC_Configuration(void)
{
	ErrorStatus		HSEStartUpStatus;

  	/* 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)
  	{
	    /* HCLK = SYSCLK */
    	RCC_HCLKConfig(RCC_SYSCLK_Div1);

	    /* PCLK2 = HCLK */
    	RCC_PCLK2Config(RCC_HCLK_Div1);

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

		/* ADCCLK = PCLK2/4 */
		RCC_ADCCLKConfig(RCC_PCLK2_Div4);

	    /* Flash 2 wait state */
		FLASH_SetLatency(FLASH_Latency_2);

	    /* Enable Prefetch Buffer */
    	FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);

	    /* PLLCLK = 8MHz * 9 / 2= 36 MHz */
   		RCC_PLLConfig(RCC_PLLSource_HSE_Div2, 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){};
  	}
	else
		return FALSE;

	/* Enable peripheral clocks --------------------------------------------------*/
  	/* Enable I2C1 and I2C1 clock */
 	RCC_APB1PeriphClockCmd(RCC_APB1Periph_I2C1 | RCC_APB1Periph_TIM2, ENABLE);

  	/* Enable GPIOA GPIOB SPI1 and USART1 clocks */
  	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB
					| RCC_APB2Periph_GPIOC | RCC_APB2Periph_USART1
					| RCC_APB2Periph_SPI1 | RCC_APB2Periph_ADC1
					| RCC_APB2Periph_AFIO, ENABLE);

	return TRUE;
}

/*******************************************************************************
* Function Name  : NVIC_Configuration
* Description    : Configures the nested vectored interrupt controller.
* Input          : None
* Output         : None
* Return         : None
*******************************************************************************/
void NVIC_Configuration(void)
{
  	NVIC_InitTypeDef	NVIC_InitStructure;

  	/* Set the Vector Table base location at 0x08000000 */
  	NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);

 	/* Enable the TIM2 Interrupt */
	NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQChannel;
	NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
	NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
	NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
	NVIC_Init(&NVIC_InitStructure);

	/* Enable the EXTI4 Interrupt */
	NVIC_InitStructure.NVIC_IRQChannel = EXTI4_IRQChannel;
	NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
	NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
	NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
	NVIC_Init(&NVIC_InitStructure);

 	/* Enable the USART1 Interrupt */
  	NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQChannel;
  	NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
  	NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
  	NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  	NVIC_Init(&NVIC_InitStructure);

	/* Configure and enable ADC interrupt */
	NVIC_InitStructure.NVIC_IRQChannel = ADC_IRQChannel;
	NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
	NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
	NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
	NVIC_Init(&NVIC_InitStructure);
}

/*    I2C Initialization    */
void I2C_Configuration(void)
{
	I2C_InitTypeDef  I2C_InitStructure;
  	GPIO_InitTypeDef GPIO_InitStructure;

  	/* Configure I2C1 pins: SCL and SDA -----------*/
  	GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_6 | GPIO_Pin_7;
  	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_OD;
  	GPIO_Init(GPIOB, &GPIO_InitStructure);

  	/* Enable I2C1 and I2C2 event and buffer interrupt
  	I2C_ITConfig(I2C1, I2C_IT_EVT | I2C_IT_BUF, ENABLE);
	*/
  	/* I2C1 configuration ------------------------------------------------------*/
  	I2C_InitStructure.I2C_Mode = I2C_Mode_I2C;
  	I2C_InitStructure.I2C_DutyCycle = I2C_DutyCycle_2;
  	I2C_InitStructure.I2C_OwnAddress1 = I2C1_SLAVE_ADDRESS7;
  	I2C_InitStructure.I2C_Ack = I2C_Ack_Disable;
  	I2C_InitStructure.I2C_AcknowledgedAddress = I2C_AcknowledgedAddress_7bit;
  	I2C_InitStructure.I2C_ClockSpeed = ClockSpeed;
  	I2C_Init(I2C1, &I2C_InitStructure);

  	I2C_Cmd(I2C1, ENABLE);
}

/*   SPI Initialization  
void SPI_Configuration(void)
{
	GPIO_InitTypeDef 		GPIO_InitStructure;
	SPI_InitTypeDef   	SPI_InitStructure;

  	 Configure SPI1 pins: SCK, MISO and MOSI 
  	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7;
  	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
  	GPIO_Init(GPIOA, &GPIO_InitStructure);

	 Set Chip Select pin 
	GPIO_InitStructure.GPIO_Pin=GPIO_Pin_4;
	GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
	GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
	GPIO_Init(GPIOA, &GPIO_InitStructure);
	GPIO_SetBits(GPIOA, GPIO_Pin_4);

	 Set SPI interface 
	SPI_InitStructure.SPI_Direction=SPI_Direction_2Lines_FullDuplex;
	SPI_InitStructure.SPI_Mode=SPI_Mode_Master;
	SPI_InitStructure.SPI_DataSize=SPI_DataSize_8b;
	SPI_InitStructure.SPI_CPOL=SPI_CPOL_Low;
	SPI_InitStructure.SPI_CPHA=SPI_CPHA_1Edge;
	SPI_InitStructure.SPI_NSS=SPI_NSS_Soft;
	SPI_InitStructure.SPI_BaudRatePrescaler=SPI_BaudRatePrescaler_8;
	SPI_InitStructure.SPI_FirstBit=SPI_FirstBit_MSB;
	SPI_InitStructure.SPI_CRCPolynomial=7;

	SPI_Init(SPI1,&SPI_InitStructure);

	SPI_Cmd(SPI1,ENABLE);
}
*/

/*    USART Initialization    */
void UART_Configuration(void)
{
	USART_InitTypeDef	USART_InitStructure;
  	GPIO_InitTypeDef 	GPIO_InitStructure;

  	/* Configure USART1 Tx (PA9) as alternate function push-pull */
  	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
  	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
  	GPIO_Init(GPIOA, &GPIO_InitStructure);

  	/* Configure USART1 Rx (PA10) as input floating */
  	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
  	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
  	GPIO_Init(GPIOA, &GPIO_InitStructure);

	USART_InitStructure.USART_BaudRate=9600;
	USART_InitStructure.USART_WordLength=USART_WordLength_8b;
	USART_InitStructure.USART_StopBits=USART_StopBits_1;
	USART_InitStructure.USART_Parity=USART_Parity_No;
	USART_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None;
	USART_InitStructure.USART_Mode=USART_Mode_Tx|USART_Mode_Rx;
	USART_InitStructure.USART_Clock=USART_Clock_Disable;
	USART_InitStructure.USART_CPOL=USART_CPOL_Low;
	USART_InitStructure.USART_CPHA=USART_CPHA_2Edge;
	USART_InitStructure.USART_LastBit=USART_LastBit_Disable;

	USART_Init(USART1,&USART_InitStructure);

/* Enable the USART Transmoit interrupt: this interrupt is generated when the
   USART1 transmit data register is empty */
	USART_ITConfig(USART1, USART_IT_TC, ENABLE);

/* Enable the USART Receive interrupt: this interrupt is generated when the
   USART1 receive data register is not empty */
	USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);

	USART_Cmd(USART1,ENABLE);				//Enable USART1
}

/* Timer2 interrupt every 1ms */
void Timer_Configuration(void)
{
	/* Time base configuration */
	TIM_TimeBaseInitTypeDef  	TIM_TimeBaseStructure;

	TIM_TimeBaseStructure.TIM_Period = 18000;
	TIM_TimeBaseStructure.TIM_Prescaler = 1;
	TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;
	TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;

	TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);

	/* TIM enable counter */
	TIM_Cmd(TIM2, ENABLE);

	TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE );
}

/* ADC Initialization */
void ADC_Configuration(void)
{
	ADC_InitTypeDef	ADC_InitStructure;
	GPIO_InitTypeDef  GPIO_InitStructure;

	/* Configure PC2 (ADC Channel1) as analog input                             */
	GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_2;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
	GPIO_Init(GPIOC, &GPIO_InitStructure);

	/* ADC1 configuration ------------------------------------------------------*/
	ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;
	ADC_InitStructure.ADC_ScanConvMode = DISABLE;
	ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;
	ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;
	ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
	ADC_InitStructure.ADC_NbrOfChannel = 1;
	ADC_Init(ADC1, &ADC_InitStructure);

	ADC_RegularChannelConfig(ADC1,ADC_Channel_12,1,ADC_SampleTime_55Cycles5);
//	ADC_RegularChannelConfig(ADC1,ADC_Channel_16,2,ADC_SampleTime_55Cycles5);
//	ADC_RegularChannelConfig(ADC1,ADC_Channel_17,3,ADC_SampleTime_55Cycles5);

	ADC_ITConfig(ADC1, ADC_IT_EOC,ENABLE);

	/* Enable Temperature ADC */
	ADC_TempSensorVrefintCmd(ENABLE);

	/* Enable ADC1 */
	ADC_Cmd(ADC1,ENABLE);

	/* Enable ADC1 reset calibaration register */
	ADC_ResetCalibration(ADC1);
	/* Check the end of ADC1 reset calibration register */
	while(ADC_GetResetCalibrationStatus(ADC1));

	/* Start ADC1 calibaration */
	ADC_StartCalibration(ADC1);
	/* Check the end of ADC1 calibration */
	while(ADC_GetCalibrationStatus(ADC1));

	Delay(2);
	ADC_SoftwareStartConvCmd(ADC1, ENABLE);
}

/* IO port Configuration */
void IO_Configuration(void)
{
	GPIO_InitTypeDef  GPIO_InitStructure;
	EXTI_InitTypeDef	EXTI_InitStructure;

	/* define Digital Input Port */
	GPIO_InitStructure.GPIO_Pin  = DIG_IN;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
	GPIO_Init(GPIOC, &GPIO_InitStructure);

	/* define Digital Output Port */
	GPIO_InitStructure.GPIO_Pin  = LED_DRIVE;
	GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;
	GPIO_Init(GPIOB, &GPIO_InitStructure);

	/* Turn on LED */
	GPIO_SetBits(GPIOB, LED_DRIVE);

	/* Define	W5100 Indirect Bus interface Port */
	GPIO_InitStructure.GPIO_Pin  = W5100_WR | W5100_RD | W5100_CS | W5100_A0 | W5100_A1;
	GPIO_InitStructure.GPIO_Speed= GPIO_Speed_50MHz;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
	GPIO_Init(GPIOA, &GPIO_InitStructure);

	GPIO_SetBits(GPIOA, W5100_WR | W5100_RD | W5100_CS);

	/* define Digital Output Port */
	GPIO_InitStructure.GPIO_Pin  = W5100_DATA;
	GPIO_InitStructure.GPIO_Speed= GPIO_Speed_50MHz;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
	GPIO_Init(GPIOB, &GPIO_InitStructure);

	/* Configure PC4 as input floating (EXTI Line4) */
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
	GPIO_Init(GPIOC, &GPIO_InitStructure);

	/* Connect EXTI Line4 to PC4 */
	GPIO_EXTILineConfig(GPIO_PortSourceGPIOC, GPIO_PinSource4);

	/* PC4 as W5100 interrupt input */
	EXTI_InitStructure.EXTI_Line = EXTI_Line4;
	EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
	EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;
	EXTI_InitStructure.EXTI_LineCmd = ENABLE;
	EXTI_Init(&EXTI_InitStructure);
}

/* STM32F10x Configuration */
void System_Initialization(void)
{
 	/* System Clocks Configuration */
  	while(RCC_Configuration()==FALSE);

  	/* NVIC configuration */
  	NVIC_Configuration();

	/* I2C Configuration */
	I2C_Configuration();

	/* SPI Configuration */
//	SPI_Configuration();

	/* IO Configuration */
	IO_Configuration();

	/* UART Configuration */
	UART_Configuration();

	/* Timer configuration */
	Timer_Configuration();

	/* ADC Configuration */
	ADC_Configuration();
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99re成人精品视频| 91传媒视频在线播放| 亚洲免费在线看| 日韩精品最新网址| 日本韩国精品一区二区在线观看| 美国三级日本三级久久99| 国产精品国产a| 欧美成va人片在线观看| 欧美影院午夜播放| 成人av网址在线| 久久国产三级精品| 性做久久久久久久久| 中文字幕亚洲综合久久菠萝蜜| 日韩视频一区二区在线观看| 一本久久a久久免费精品不卡| 国产精品123区| 麻豆精品久久久| 天天操天天色综合| 亚洲最新视频在线观看| 国产精品伦一区| 久久久久久**毛片大全| 欧美电影免费观看高清完整版在线 | 国产亚洲精品aa| 欧美一卡二卡三卡| 欧美美女一区二区在线观看| 色88888久久久久久影院按摩| 白白色亚洲国产精品| 国产成人亚洲精品狼色在线| 激情都市一区二区| 久久99精品久久久久婷婷| 日本在线观看不卡视频| 亚洲不卡一区二区三区| 亚洲国产日韩av| 亚洲一区在线观看免费观看电影高清 | 一区二区三区成人| 日韩美女视频19| 综合分类小说区另类春色亚洲小说欧美| 国产喂奶挤奶一区二区三区| 久久综合国产精品| 国产亚洲一二三区| 国产精品久久久久久久久图文区| 国产精品系列在线| 国产精品看片你懂得| 亚洲欧美综合色| 亚洲精品高清在线| 亚洲卡通动漫在线| 亚洲国产综合人成综合网站| 亚洲v日本v欧美v久久精品| 午夜欧美视频在线观看| 免费不卡在线观看| 国产一区二区看久久| 国产不卡视频一区二区三区| 成人免费毛片aaaaa**| 91在线免费看| 欧美视频一二三区| 亚洲午夜久久久| 伊人性伊人情综合网| 婷婷中文字幕一区三区| 日本不卡123| 国产成人综合精品三级| 不卡一卡二卡三乱码免费网站| 92国产精品观看| 欧美日韩亚洲丝袜制服| 日韩欧美中文字幕制服| 国产欧美精品区一区二区三区 | 欧美男女性生活在线直播观看| 欧美精品aⅴ在线视频| 欧美sm极限捆绑bd| 国产精品嫩草影院av蜜臀| 一区二区三区免费网站| 免费人成网站在线观看欧美高清| 国产毛片精品国产一区二区三区| av网站免费线看精品| 欧美日韩成人在线| 国产亚洲婷婷免费| 亚洲一卡二卡三卡四卡五卡| 日韩极品在线观看| 成人免费视频免费观看| 6080日韩午夜伦伦午夜伦| 国产欧美一区二区精品性| 一区二区三区中文字幕| 另类小说综合欧美亚洲| 91天堂素人约啪| 日韩欧美国产一二三区| 亚洲图片欧美激情| 蜜桃视频在线观看一区二区| 99久久精品一区二区| 欧美一区二区视频网站| 国产精品精品国产色婷婷| 日韩高清国产一区在线| 成人av在线看| 精品入口麻豆88视频| 一区二区三区 在线观看视频| 久久99最新地址| 91久久精品网| 亚洲国产高清不卡| 青娱乐精品视频在线| av电影在线观看完整版一区二区| 日韩欧美在线影院| 亚洲美女偷拍久久| 国产91在线观看丝袜| 欧美一激情一区二区三区| 亚洲精品一卡二卡| 精品国产一区久久| 亚洲精品午夜久久久| 国产成人自拍网| 日韩一区二区三区在线视频| 一区二区三区免费在线观看| 亚洲国产成人av网| 亚洲美女在线一区| 久久九九99视频| 日韩综合小视频| 在线精品亚洲一区二区不卡| 国产欧美日韩不卡| 激情五月婷婷综合| 777亚洲妇女| 亚洲午夜私人影院| 色哟哟欧美精品| 国产精品免费看片| 国产很黄免费观看久久| 日韩美女在线视频| 日本午夜精品一区二区三区电影| 91小视频在线| 一区在线观看免费| 成人一级视频在线观看| 久久精品欧美一区二区三区麻豆| 精品一区二区三区视频| 欧美一区二区三区四区五区| 亚洲午夜免费电影| 欧美性一级生活| 亚洲国产综合视频在线观看| 在线观看91精品国产入口| 亚洲免费看黄网站| 色婷婷综合五月| 亚洲乱码一区二区三区在线观看| 99精品视频在线观看| 国产精品的网站| 成人免费av网站| 中文字幕一区二区三区乱码在线| 成人小视频在线| 最新不卡av在线| 精品91自产拍在线观看一区| 久久se这里有精品| 精品区一区二区| 国产精品99久久久久久有的能看| 精品国产一二三| 国内精品伊人久久久久av影院| 精品久久久久久无| 国内偷窥港台综合视频在线播放| 久久精品视频一区二区三区| 国产成人av一区二区三区在线| 国产目拍亚洲精品99久久精品| 国产91精品一区二区麻豆网站 | 中文字幕久久午夜不卡| 成人18精品视频| 亚洲人成网站在线| 欧美日韩精品免费| 免费国产亚洲视频| 国产无人区一区二区三区| thepron国产精品| 亚洲一区二区黄色| 日韩欧美国产成人一区二区| 国产成人精品影院| 亚洲精选免费视频| 日韩色在线观看| 成人av在线资源网站| 亚洲综合偷拍欧美一区色| 91精品国产一区二区三区香蕉| 麻豆精品一区二区三区| 欧美激情综合网| 欧美午夜精品一区二区三区| 蜜臀91精品一区二区三区| 国产蜜臀av在线一区二区三区| 91一区二区三区在线播放| 天天色图综合网| 久久精品人人做人人综合 | 国产精品国产精品国产专区不蜜| 在线精品国精品国产尤物884a| 男男视频亚洲欧美| 国产精品传媒视频| 91精品麻豆日日躁夜夜躁| 成人激情动漫在线观看| 午夜欧美在线一二页| 国产精品人妖ts系列视频| 欧美丰满嫩嫩电影| 丁香天五香天堂综合| 日韩成人一区二区三区在线观看| 欧美国产精品劲爆| 欧美一区二区三区免费大片| 成人永久免费视频| 美女被吸乳得到大胸91| 一区二区三区欧美亚洲| 久久天堂av综合合色蜜桃网| 欧美吻胸吃奶大尺度电影| 国产精品18久久久久久久网站| 亚洲成人av电影在线| 中文字幕一区二区三区精华液| 欧美成人vr18sexvr| 欧美三电影在线| 成人app软件下载大全免费|