<p>LED流水灯程序初始化流程</p><p>//1.定义<a class="hl hl-1" target="_blank" data-report-click="{" spm":"1001.2101.3001.7020","dest":"https:="" so.csdn.net="" so="" search?q="%E7%BB%93%E6%9E%84%E4%BD%93&spm=1001.2101.3001.7020","extra":"{\"searchword\":\"结构体\"}"}"" data-pretit="结构体" data-tit="结构体">结构体</a>变量</p><p>GPIO_InitTypeDef GPIO_InitStructure;</p><p>//2.开启GPIOC的外部时钟,不同的外设开启不同的时钟,IO口复用时两个时钟都要开启。stmf10x_rcc.h</p><p>RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);</p><p>//3.设置要控制的<a class="hl hl-1" target="_blank" data-report-click="{" spm":"1001.2101.3001.7020","dest":"https:="" so.csdn.net="" so="" search?q="GPIO&spm=1001.2101.3001.7020","extra":"{\"searchword\":\"GPIO\"}"}"" data-pretit="gpio" data-tit="GPIO">GPIO</a>管脚</p><p>GPIO_InitStructure.GPIO_Pin=GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5;</p><p>//4.设置管脚模式,推挽输出</p><p>GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;</p><p>//5.设置GPIOC的引脚速度为50MHz</p><p>GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;</p><p>//6.调用库函数初始化GPIOC,初始化IO口</p><p>GPIO_Init(GPIOC,&GPIO_InitStructure);</p><p>//7.关闭所有LED等灯,GPIO_ResetBits(,);GPIO_SetBits(,);置位和清0函数</p><p>GPIO_SetBits(GPIOC,GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5);</p><p>寄存器方式</p><p>GPIO_TypeDef * GPIOx;</p><p>GPI0x=GPIOA;</p><p>//开启GPIOA外设时钟</p><p>GPIOx->APB2ENR|=1<<2;</p><p>//配置GPIOA.3 4 5为推挽输出50MHZ</p><p>GPIOx->CRL|=0X03<<12|0X03<<16|0X03<<20;</p><p>//GPIOA.3 4 5输出0xff。</p><p>GPIOx->ODR=0XFF;</p><p>LED.H</p><p>#ifndef __LED_H</p><p>#define __LED_H</p><p>#include "stm32f10x.h"</p><p>#define LED1(a) if(a)</p><p>GPIO_SetBits(GPIOC,GPIO_Pin_3);</p><p>else</p><p>GPIO_ResetBits(GPIOC,GPIO_Pin_3);</p><p>#define LED2(a) if(a)</p><p>GPIO_SetBits(GPIOC,GPIO_Pin_4);</p><p>else</p><p>GPIO_ResetBits(GPIOC,GPIO_Pin_4);</p><p>#define LED3(a) if(a)</p><p>GPIO_SetBits(GPIOC,GPIO_Pin_5);</p><p>else</p><p>GPIO_ResetBits(GPIOC,GPIO_Pin_5);</p><p>void GPIO_Config(void);</p><p>#endif</p><p>""为行连接符,表示本行与上一行属于同一代码行.</p><p>端口设置可以使用“sys.h“下的PXout(n)=0/1;PXin(n);来进行设置</p>
|