|
最近用keil MDK完成了一個關于用STM32驅動8個LED燈循環點亮的項目由于是初學菜鳥,想記錄一下自己的學習歷程,還請大家多多指教- #include "stm32f10x.h"
- void Delay(unsigned int count) //延時函數
- {
- unsigned int i;
- for(;count!=0;count--)
- {
- i=5000;
- while(i--);
- }
- }
- void GPIO_LEDInit(void)
- {
- GPIO_InitTypeDef GPIO_InitStructure; //初始化變量
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE); //使能LED的GPIOC時鐘
- // 配置 LED燈使用的GPIO引腳
- GPIO_InitStructure.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;
- GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; //推挽輸出
- GPIO_InitStructure.GPIO_Speed=GPIO_Speed_10MHz;
- GPIO_Init(GPIOC,&GPIO_InitStructure); //對LED的GPIOC口初始化
- GPIO_SetBits(GPIOC,GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7); //關閉所有的LED
- }
- int main()
- {
- GPIO_LEDInit(); //初始化LED引腳
- while(1)
- {
- GPIO_SetBits(GPIOC,GPIO_Pin_7); //關7
- GPIO_ResetBits(GPIOC,GPIO_Pin_0); //開0
- Delay(300); //延時
- GPIO_SetBits(GPIOC,GPIO_Pin_0); //關0
- GPIO_ResetBits(GPIOC,GPIO_Pin_1); //開1
- Delay(300); //延時
- GPIO_SetBits(GPIOC,GPIO_Pin_1); //關1
- GPIO_ResetBits(GPIOC,GPIO_Pin_2); //開2
- Delay(300); //延時
- GPIO_SetBits(GPIOC,GPIO_Pin_2); //關2
- GPIO_ResetBits(GPIOC,GPIO_Pin_3); //開3
- Delay(300); //延時
- GPIO_SetBits(GPIOC,GPIO_Pin_3); //關3
- GPIO_ResetBits(GPIOC,GPIO_Pin_4); //開4
- Delay(300); //延時
- GPIO_SetBits(GPIOC,GPIO_Pin_4); //關4
- GPIO_ResetBits(GPIOC,GPIO_Pin_5); //開5
- Delay(300); //延時
- GPIO_SetBits(GPIOC,GPIO_Pin_5); //關5
- GPIO_ResetBits(GPIOC,GPIO_Pin_6); //開6
- Delay(300); //延時
- GPIO_SetBits(GPIOC,GPIO_Pin_6); //關6
- GPIO_ResetBits(GPIOC,GPIO_Pin_7); //開7
- Delay(300); //延時
- }
- }
復制代碼 |
-
51hei.png
(162.62 KB, 下載次數: 123)
下載附件
2023-6-15 21:47 上傳
proteus搭的仿真電路
評分
-
查看全部評分
|