亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码
標題:
STM32點亮一個小燈 在PA.1管腳上,實現一閃一滅
[打印本頁]
作者:
fuhao831221
時間:
2017-5-15 15:27
標題:
STM32點亮一個小燈 在PA.1管腳上,實現一閃一滅
要求led燈管腳在PA.1管腳上,實現一閃一滅。
下面的程序是別人寫的,我自己都感覺比較復雜,不過新手看的話應該會比較易懂。
需要注意的地方:
1、開時鐘和初始化GPIO的順序一定不能弄錯
2、操作時鐘必須開時鐘和AFIO寄存器才能接著操作GPIO口。
3、STM32和51的程序是可以互相移植的。
#include "stm32f10x_lib.h"//頭文件
void LED_Init(void)
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); //開 GPIOA 時鐘
GPIO_InitTypeDef GPIO_InitStructure;//聲明一個結構體,名字是GPIO_InitStructure,結構體原型由GPIO_InitTypeDef 確定,stm32里面初始化GPIO用的吧。。設置完了GPIO_InitStructure里面的內容后在GPIO_Init (GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_InitStruct)里面調用,比如初始化pa口,就是GPIO_Init (GPIOA, &GPIO_InitStructure),括號里后面那個就是你問題里面聲明的那個結構體
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;//設置led燈連在第二個管腳
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //GPIO的工作狀態為推挽輸出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; // GPIO的速率最高輸出速率 50Hz
GPIO_Init(GPIOA, &GPIO_InitStructure); //初始化 GPIOA
}
void Delay(vu32 nCount) //延時函數,不解釋
{
for(; nCount != 0; nCount--);
}
main()
{
LED_Init();
while(1)
{
GPIO_SetBits(GPIOA, GPIO_Pin_1);//將 GPIO的A端口第二個管腳置為高電平,即PA.1=1;
Delay(0x8ffff);
GPIO_ResetBits(GPIOA, GPIO_Pin_1);//將 GPIO的 A端口第二個管腳置為低電平,即PA.1=0;
Delay(0x8ffff);
}
}
#include "stm32f10x.h"
//定義了PA 0-7
#define LED1_OFF GPIO_ResetBits(GPIOA,GPIO_Pin_0);
#define LED1_ON GPIO_SetBits(GPIOA,GPIO_Pin_0);
#define LED2_OFF GPIO_ResetBits(GPIOA,GPIO_Pin_1);
#define LED2_ON GPIO_SetBits(GPIOA,GPIO_Pin_1);
#define LED3_OFF GPIO_ResetBits(GPIOA,GPIO_Pin_2);
#define LED3_ON GPIO_SetBits(GPIOA,GPIO_Pin_2);
#define LED4_OFF GPIO_ResetBits(GPIOA,GPIO_Pin_3);
#define LED4_ON GPIO_SetBits(GPIOA,GPIO_Pin_3);
#define LED5_OFF GPIO_ResetBits(GPIOA,GPIO_Pin_4);
#define LED5_ON GPIO_SetBits(GPIOA,GPIO_Pin_4);
#define LED6_OFF GPIO_ResetBits(GPIOA,GPIO_Pin_5);
#define LED6_ON GPIO_SetBits(GPIOA,GPIO_Pin_5);
#define LED7_OFF GPIO_ResetBits(GPIOA,GPIO_Pin_6);
#define LED7_ON GPIO_SetBits(GPIOA,GPIO_Pin_6);
#define LED8_OFF GPIO_ResetBits(GPIOA,GPIO_Pin_7);
#define LED8_ON GPIO_SetBits(GPIOA,GPIO_Pin_7);
void Delay(__IO uint32_t nCount);
void GPIO_init(void);
void rcc_init(void);
int main(void)
{
rcc_init();
GPIO_init();
while(1)
{
LED1_ON;LED2_OFF;LED3_OFF;LED4_OFF;LED5_OFF;LED6_OFF;LED7_OFF;LED8_OFF;//led1亮
Delay(30000);
LED1_OFF;LED2_ON;LED3_OFF;LED4_OFF;LED5_OFF;LED6_OFF;LED7_OFF;LED8_OFF;//led2亮
Delay(30000);
LED1_OFF;LED2_OFF;LED3_ON;LED4_OFF;LED5_OFF;LED6_OFF;LED7_OFF;LED8_OFF;//led3亮
Delay(30000);
LED1_OFF;LED2_OFF;LED3_OFF;LED4_ON;LED5_OFF;LED6_OFF;LED7_OFF;LED8_OFF;//led4亮
Delay(30000);
LED1_OFF;LED2_OFF;LED3_OFF;LED4_OFF;LED5_ON;LED6_OFF;LED7_OFF;LED8_OFF;//led5亮
Delay(30000);
LED1_OFF;LED2_OFF;LED3_OFF;LED4_OFF;LED5_OFF;LED6_ON;LED7_OFF;LED8_OFF;//led6亮
Delay(30000);
LED1_OFF;LED2_OFF;LED3_OFF;LED4_OFF;LED5_OFF;LED6_OFF;LED7_ON;LED8_OFF;//led7亮
Delay(30000);
LED1_OFF;LED2_OFF;LED3_OFF;LED4_OFF;LED5_OFF;LED6_OFF;LED7_OFF;LED8_ON;//led8亮
Delay(30000);
LED1_OFF;LED2_OFF;LED3_OFF;LED4_OFF;LED5_OFF;LED6_OFF;LED7_ON;LED8_OFF;//led7亮
Delay(30000);
LED1_OFF;LED2_OFF;LED3_OFF;LED4_OFF;LED5_OFF;LED6_ON;LED7_OFF;LED8_OFF;//led6亮
Delay(30000);
LED1_OFF;LED2_OFF;LED3_OFF;LED4_OFF;LED5_ON;LED6_OFF;LED7_OFF;LED8_OFF;//led5亮
Delay(30000);
LED1_OFF;LED2_OFF;LED3_OFF;LED4_ON;LED5_OFF;LED6_OFF;LED7_OFF;LED8_OFF;//led4亮
Delay(30000);
LED1_OFF;LED2_OFF;LED3_ON;LED4_OFF;LED5_OFF;LED6_OFF;LED7_OFF;LED8_OFF;//led3亮
Delay(30000);
LED1_OFF;LED2_ON;LED3_OFF;LED4_OFF;LED5_OFF;LED6_OFF;LED7_OFF;LED8_OFF;//led2亮
Delay(30000);
LED1_OFF;LED2_OFF;LED3_OFF;LED4_OFF;LED5_OFF;LED6_OFF;LED7_OFF;LED8_OFF;//led1亮
}
}
//進行GPIO初始化
void GPIO_init(void)
{
GPIO_InitTypeDef myGPIOA;//初始化
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);
myGPIOA.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO _Pin_5|GPIO_Pin_6|GPIO_Pin_7;
myGPIOA.GPIO_Mode=GPIO_Mode_Out_PP;
myGPIOA.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOA,&myGPIOA);
}
//開時鐘和AFIO寄存器
void rcc_init(void)
{
SystemInit();
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO,ENABLE);//開時鐘
}
//延時函數
void Delay(u32 nCount)
{
u32 x,y;
for(x=nCount; nCount != 0; nCount--)
for(y=110;y>0;y--);
}
復制代碼
作者:
wuxishun
時間:
2017-12-14 21:37
學習中
作者:
hebaobao
時間:
2018-1-10 15:39
還有更簡單易懂的方法呢
作者:
jxchen
時間:
2019-1-20 21:19
感恩~~~~~~~~~~~~~~~~~~
作者:
緣野666
時間:
2019-6-4 15:23
老師,我能請教一個問題嗎?用32編寫點亮一個LED后讓它熄滅,但是出現了閃爍,這是什么原因造成的呀!
作者:
蜘蛛俠
時間:
2019-6-5 11:21
緣野666 發表于 2019-6-4 15:23
老師,我能請教一個問題嗎?用32編寫點亮一個LED后讓它熄滅,但是出現了閃爍,這是什么原因造成的呀!
可能是用了while(1)
歡迎光臨 (http://www.denmoz.com/bbs/)
Powered by Discuz! X3.1