LED

来源:互联网 发布:大数据应用专家 编辑:程序博客网 时间:2024/04/27 22:28
代码的组织结构如下:
<img src="http://img.blog.csdn.net/20141019091808308?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2h1bl8xOTU5/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" />
/*Include---------------------------*/#include"stm32f10x_lib.h"//包含所有的头文件#include<stdio.h>//----------------函数声明--------------------void Delay_MS(u16 dly);void RCC_Configuration(void);void GPIO_Configuration(void);void USART3_Configuration(void);/******************************************************************************** Function Name  : main* Description    : Main program.* Input          : None* Output         : None* Return         : None*******************************************************************************/ int main(void){u8 i,data;#ifdef DEBUGdebug();#endif//------------初始化------------RCC_Configuration();GPIO_Configuration(); //------------164的通信------------//CLK:PB5上升沿  CLR:PE11==1  Data:PE10输出对应的数据//GPIO_ResetBits(GPIOA, GPIO_Pin_10 | GPIO_Pin_15);data = 0xf0;   //0011 0000GPIO_ResetBits(GPIOE, GPIO_Pin_11);GPIO_SetBits(GPIOE, GPIO_Pin_11);for(i=0;i<8;i++){GPIO_ResetBits(GPIOB, GPIO_Pin_5);   //pb5=0    if((data&0x80)==0x00)GPIO_ResetBits(GPIOE, GPIO_Pin_10); elseGPIO_SetBits(GPIOE, GPIO_Pin_10);   GPIO_SetBits(GPIOB, GPIO_Pin_5);  //pb5=1data<<=1;}while(1){Delay_MS(20000);GPIO_ResetBits(GPIOC, GPIO_Pin_0);Delay_MS(20000);GPIO_SetBits(GPIOC, GPIO_Pin_0);}}/******************************************************************************** Function Name  : Delay_Ms* Description    : delay 1 ms.* Input          : dly (ms)* Output         : None* Return         : None*******************************************************************************/void Delay_MS(u16 dly){u16 i,j;for(i=0;i<dly;i++)for(j=1000;j>0;j--);}/******************************************************************************** Function Name  : RCC_Configuration* Description    : Configures the different system clocks.* Input          : None* Output         : None* Return         : None*******************************************************************************/void RCC_Configuration(void){//----------使用外部RC晶振-----------RCC_DeInit();//初始化为缺省值RCC_HSEConfig(RCC_HSE_ON);//使能外部的高速时钟 while(RCC_GetFlagStatus(RCC_FLAG_HSERDY) == RESET);//等待外部高速时钟使能就绪FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);//Enable Prefetch BufferFLASH_SetLatency(FLASH_Latency_2);//Flash 2 wait stateRCC_HCLKConfig(RCC_SYSCLK_Div1);//HCLK = SYSCLKRCC_PCLK2Config(RCC_HCLK_Div1);//PCLK2 =  HCLKRCC_PCLK1Config(RCC_HCLK_Div2);//PCLK1 = HCLK/2RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_9);//PLLCLK = 8MHZ * 9 =72MHZRCC_PLLCmd(ENABLE);//Enable PLLCLKwhile(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);//Wait till PLLCLK is ready    RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);//Select PLL as system clockwhile(RCC_GetSYSCLKSource()!=0x08);//Wait till PLL is used as system clock source//---------打开相应外设时钟--------------------RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC | RCC_APB2Periph_AFIO,ENABLE);//使能APB2外设的GPIOA的时钟 RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3,ENABLE);//开启时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOE | RCC_APB2Periph_GPIOC,ENABLE);}/******************************************************************************** Function Name  : GPIO_Configuration* Description    : 初始化GPIO外设* Input          : None* Output         : None* Return         : None*******************************************************************************/void GPIO_Configuration(void){//CLK:PB5  CLR:PE11  Data:PE10GPIO_InitTypeDefGPIO_InitStructure;//声明一个结构体变量GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; //选择PC.10(TXD) 和 PC.11GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //管脚频率为50MHZGPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //输出模式为推挽输出GPIO_Init(GPIOB,&GPIO_InitStructure); //初始化PB5GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10 | GPIO_Pin_11; //选择PC.10(TXD) 和 PC.11GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //管脚频率为50MHZGPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //输出模式为推挽输出GPIO_Init(GPIOE,&GPIO_InitStructure); //初始化PB5GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; //选择PC.10(TXD) 和 PC.11GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //管脚频率为50MHZGPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //输出模式为推挽输出GPIO_Init(GPIOC,&GPIO_InitStructure); //初始化PB5} void USART3_Configuration(void){USART_InitTypeDef  U3;U3.USART_BaudRate =9600;U3.USART_WordLength = USART_WordLength_8b;U3.USART_StopBits = USART_StopBits_1;U3.USART_Parity = USART_Parity_No;U3.USART_Mode = USART_Mode_Rx|USART_Mode_Tx;U3.USART_HardwareFlowControl = USART_HardwareFlowControl_None; USART_Init(USART3, &U3);USART_Cmd(USART3,ENABLE);}

0 0
原创粉丝点击