<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > STM32-跑馬燈實(shí)驗代碼分析

STM32-跑馬燈實(shí)驗代碼分析

作者: 時(shí)間:2016-11-23 來(lái)源:網(wǎng)絡(luò ) 收藏
工程建立的主要步驟

1.新建3個(gè)文件夾:USER、SYSTEM、HARDWARE

本文引用地址:http://dyxdggzs.com/article/201611/320440.htm

2.新建led.c、led.h和test.c

3.在Target目錄樹(shù)上右擊Manage Component,新建USER、SYSTEM、HARDWARE,并添加相關(guān)C文件(具體見(jiàn)前文MDK使用方法與技巧),跟前面一樣HARDWARE組添加led.c文件。

4.在Options for Target ‘Target 1’對話(huà)框C/C++選項卡中Include Pathes里添加頭文件路徑。(這個(gè)不可少,否則編譯出錯,見(jiàn)前文MDK使用方法與技巧,led.h文件不可漏掉)

5.使用SWD方式下載,具體見(jiàn)MDK使用方法與技巧,注意reset and run選項,如果不選此項,程序下載后還要重啟,然后才運行。

6.使用mcuisp通過(guò)串口下載程序搞了半天沒(méi)下進(jìn)去,原來(lái)是因為我把mcuisp左下角的電平設置錯了,應該是DTR低電平復位,RTS高電平進(jìn)BootLoader,真是粗心。

代碼分析

led.c

[cpp]view plaincopy
  1. #include
  2. #include"led.h"
  3. //硬件電路兩個(gè)LED燈對應PA8和PD2,初始化PA8和PD2為輸出口,并使能這兩個(gè)口的時(shí)鐘
  4. voidLED_Init(void)
  5. {
  6. RCC->APB2ENR|=1<<2;//使能POARTA時(shí)鐘
  7. RCC->APB2ENR|=1<<5;//使能POARTD時(shí)鐘
  8. GPIOA->CRH&=0XFFFFFFF0;
  9. GPIOA->CRH|=0X00000003;//PA8推挽輸出
  10. GPIOA->ODR=1<<8;//PA8輸出高
  11. GPIOD->CRH&=0XFFFFF0FF;
  12. GPIOD->CRH|=0X00000300;//PD2推挽輸出
  13. GPIOD->ODR=1<<2;//PD2輸出高
  14. }

注意:1.RCC是MDK定義的一個(gè)結構體,里面包含RCC相關(guān)寄存器組

2.在配置STM32外設時(shí),任何時(shí)候都要先使能該外設的時(shí)鐘!APB2ENR是APB2總線(xiàn)上的外設時(shí)鐘使能寄存器。

led.h

[cpp]view plaincopy
  1. #ifndef__LED_H
  2. #define__LED_H
  3. #include"sys.h"
  4. //LED端口定義
  5. #defineLED0PAout(8)//PA8
  6. #defineLED1PDout(2)//PD2
  7. voidLED_Init(void);//初始化
  8. #endif
可以右擊找到PAout(x)的定義,在sys.h中。

test.c

[cpp]view plaincopy
  1. #include
  2. #include"sys.h"
  3. #include"usart.h"
  4. #include"delay.h"
  5. #include"led.h"
  6. intmain(void)
  7. {
  8. Stm32_Clock_Init(9);//系統時(shí)鐘設置
  9. delay_init(72);//延時(shí)初始化
  10. LED_Init();//初始化與LED連接的硬件接口
  11. while(1)
  12. {
  13. LED0=0;
  14. LED1=1;
  15. delay_ms(300);
  16. LED0=1;
  17. LED1=0;
  18. delay_ms(300);
  19. }
  20. }



評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>