一.準備工作---建立一個keil工程
STEP1.
打開keil,選擇project-new uvision project,建立一個LED工程
STEP2.
在工程文件保存的路徑下新建以下文件夾,在官網上或其他渠道下載STM32的3.5版庫,將inc 和scr文件夾放入fwlib中。將startup_stm32f10x_hd.s放入asm文件夾中。將庫文件放入cmsis中。
STEP3.
在keil中分別新建 【startcode】【user】【fwlib】【cmsis】四個組,再按照下圖所示將C文件加入組中。這里要注意的是組里面添加的都是匯編文件和C文件,頭文件不需要添加。
STEP4.
為了更好的理清各項文件,我們再設置一下各項輸出文件的保存路徑
1.設置編譯后輸出文件的保存路徑
2.設置鏈接輸出文件
STEP5.
此時我們若直接編譯C文件將會出現很多錯誤,其原因是 編譯器在編譯時搜索的默認庫一STM32官方驅動的頭文件,與inc的差不多,編譯至我們的新版本庫時存在不兼容,故我們需要屏蔽掉編譯器默認庫的搜索路徑。
添加USE_STDPERIPH_DRIVER:為了使用ST官方庫
添加STM32F10X_HD:可以使用庫文件里面為大容量定義的寄存器
(補充:芯片是小或中容量的時候宏要換成STM32F10X_LD或STMF10X_MD)
完成!
二.編寫程序
程序要求---三個LED燈依次亮后熄滅
完整程序如下
#include "stm32f10x.h"
#define DELAY_TIME 0x3FFFFF
void Delay(__IO uint32_t nCount)
{
for(; nCount != 0; nCount--) ;
}
int main(void)
{
GPIO_InitTypeDef GPIO_InitStructure; /*定義一個GPIO_InitTypeDef類型的結構體*/
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); /*開啟GPIO的外設時鐘*/
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3|GPIO_Pin_6|GPIO_Pin_5; /*選擇一控制的GPIO引腳*/
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; /*設置引腳模式為通用推挽輸出*/
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; /*設置引腳速率為50MHz*/
GPIO_Init(GPIOB,&GPIO_InitStructure); /*調用庫函數,初始化GPIOC*/
GPIO_Init(GPIOD, &GPIO_InitStructure);
while(1) /*延時裝置*/
{
GPIO_SetBits(GPIOB, GPIO_Pin_5);
GPIO_ResetBits(GPIOD, GPIO_Pin_6);
GPIO_ResetBits(GPIOD, GPIO_Pin_3);
Delay(DELAY_TIME);
GPIO_SetBits(GPIOD, GPIO_Pin_6);
GPIO_ResetBits(GPIOB, GPIO_Pin_5);
GPIO_ResetBits(GPIOD, GPIO_Pin_3);
Delay(DELAY_TIME);
GPIO_SetBits(GPIOD, GPIO_Pin_3);
GPIO_ResetBits(GPIOB, GPIO_Pin_5);
GPIO_ResetBits(GPIOD, GPIO_Pin_6);
Delay(DELAY_TIME);
}
}
三.實操過程中出現的問題:
1.三個LED燈分別來自于兩個不同的組,在編程過程中時常只記得編寫一個組,導致只有一個LED燈保存常量狀態。
解決方法:仔細檢查程序,分析出現問題的原因。
上一篇:STM32F4 SPI2初始化及收發數據【使用庫函數】
下一篇:STM32實驗一:GPIO之流水燈
推薦閱讀
史海拾趣
ADL Embedded Solutions Inc. 是一家專注于嵌入式計算解決方案的公司,以下是該公司發展的五個相關故事:
公司創立與早期發展: ADL Embedded Solutions Inc. 成立于1994年,總部位于美國科羅拉多州科羅拉多斯普林斯市。公司初期致力于為工業、軍事、航空航天等領域提供嵌入式計算解決方案。其產品包括工業級嵌入式計算板卡、系統、模塊等。
技術創新與產品推出: ADL 在嵌入式計算領域不斷進行技術創新,并推出了多款具有競爭力的產品。公司的產品具有高性能、低功耗、高可靠性等特點,得到了客戶的廣泛認可。其產品廣泛應用于軍事航空、醫療、交通、工業自動化等領域。
客戶合作與項目案例: ADL 與各行業的領先企業建立了長期穩定的合作關系,并參與了眾多重要項目。例如,公司為航空航天領域的客戶提供了符合嚴格標準的嵌入式計算解決方案,為醫療設備制造商提供了可靠的嵌入式計算板卡等。
全球市場拓展與國際化發展: ADL 通過不斷拓展國內外市場,實現了全球化發展。公司在美國、歐洲和亞洲等地設有銷售辦事處和服務中心,為客戶提供本地化的技術支持和服務。同時,ADL 的產品遠銷全球各地,深受國際客戶的青睞。
未來展望與持續發展: ADL 將繼續致力于技術創新和產品開發,滿足客戶不斷變化的需求。公司將不斷擴大在工業、軍事、醫療等領域的市場份額,加強與客戶的合作,保持行業領先地位,實現業務的持續增長和發展。
AMRI Enterprise Co Ltd在電子行業中嶄露頭角,源于其一次重大的技術突破。公司研發團隊經過數年的努力,成功開發出了一款具有高效能、低功耗特點的芯片,引起了市場的廣泛關注。這一技術突破不僅提升了AMRI的產品競爭力,還為公司贏得了眾多合作伙伴的青睞。隨著產品線的不斷擴展和市場份額的逐步增加,AMRI逐漸在電子行業中站穩了腳跟。
人才是企業發展的重要保障。Fenghua (HK) Electronics Ltd高度重視人才隊伍建設,通過校園招聘、社會招聘等多種渠道吸引優秀人才加入公司。公司提供了完善的培訓體系和晉升機會,激發了員工的積極性和創造力。同時,公司注重營造良好的企業文化氛圍,讓員工在工作中感受到歸屬感和成就感。
在技術創新的基礎上,Fenghua (HK) Electronics Ltd積極拓展國內外市場。公司參加了多個國際電子展,與全球各地的客戶建立了良好的合作關系。同時,公司注重品牌建設,通過廣告宣傳、贊助活動等方式,提高了品牌知名度和美譽度。這些努力使得公司的產品在國內外市場上占據了越來越大的份額。
Broyce Control的故事始于1963年,當時創始人[XXXXX]在英國的一個工業小鎮上開設了這家專注于控制面板制造的公司。起初,Broyce Control主要為當地的中小型工廠提供定制化的電氣控制解決方案。由于[XXXXX]對電氣技術的深刻理解和對工業應用的敏銳洞察,公司的產品在市場上迅速獲得了認可。隨著口碑的傳播,訂單量逐漸增加,Broyce Control逐漸積累起了一定的資本和技術儲備。
在電子行業的早期,Cretex Companies Inc.憑借對半導體技術的深入研究和創新,迅速嶄露頭角。公司研發出一款具有高效能、低功耗特點的芯片,這一技術突破使得電子設備的性能大幅提升,同時降低了能耗。憑借這一優勢,Cretex的產品在市場上獲得了廣泛認可,公司規模逐漸擴大。
[內容提要]:雙絞線實測衰減和失真數據與測試照片,標準視頻傳輸通道概念和通道特性照片,產品實現的通道特性,通道缺陷照片與分析,客觀的看待雙絞線傳輸. 第一部分:雙絞線視頻基帶傳輸衰減和頻率失真——線纜實測數據; 測試電纜:寧波一舟電 ...… 查看全部問答∨ |
|
“簡簡單單DSP”系列學習活動—第七期事件管理器——通用定時器 “簡簡單單DSP”系列學習活動—第七期事件管理器學習及使用——通用定時器 事件管理器(EV)強大的功能使它特別適用于運動控制和電機控制領域。DSP有兩個相同的事件管理器EVA、EVB。每個事件管理器模塊包括通用定時器CP、全比較單元、可編程的死區 ...… 查看全部問答∨ |
不知道貴壇的diy示波器是否開源的,怎么第一版完成了也沒見貼出工程文件,只是些測試圖片,然后又開始討論開發第二版了,都不知道第一版什么結果,為什么放棄 不會和那個啊莫論壇一樣吧,說的高論調,怎么怎么的,都一年多了還沒給定雕刻機的網友 ...… 查看全部問答∨ |
求救:EBOOT 程序跑飛!!!求救:我在調試S3C2440 ARM系統,在加載flash后,運行程序,發現在運行eboot時發現程序跑飛,串口打印消息為READ EBOOT OK,然后就不執行了,或者是重復打印以前地信息,我檢查了復位信號,單板沒有復位。誰遇到過類似問 ...… 查看全部問答∨ |
用api寫的同步讀串口程序,運行環境是windows xp,我在另一臺電腦發送123456789 而讀到的東西卻是4Vx4Vx4Vx4Vx 請問是怎么回事呢? 聽說win2000以上不支持同步讀寫了,有這一說嗎? DCB ComDcb;//全局dcb HANDLE hCom;//全局串口句柄 char ...… 查看全部問答∨ |
【MP430共享】冒死分享公司內部源碼庫(SPI讀鐵電,RFID,單總線18B20,I2C讀時鐘等) 冒死分享公司項目外設驅動代碼(SPI讀取鐵電,RFID驅動,單總線18B20,I2C讀SD2000時鐘等),絕對的實用,做產品必備,進來的請回帖支持一下 第一個讀取鐵電的代碼: //對鐵電的操作不采用中斷的方式,而是在需要對數據進行存儲或讀取時,采用 ...… 查看全部問答∨ |
/*設計者:李文功能:1602液晶顯示時鐘,并且可調。*/#include <reg52.h>//頭文件#include <intrins.h>#define uchar unsigned char//宏定義#define uint unsigned intsbit wela=P2^7;//定義位類型sbit dula=P2^6;sbit rs =P3^5;sbit en =P ...… 查看全部問答∨ |
printf(\"ADC采樣值為 %d\\n\",ADC3ConvertedValue); printf(\"ADC測量值為 %f\\n\",ADC3ConvertedVoltage); 輸出效果為: ADC采樣值為 990 ADC測量值為 %f 不知道哪出錯了求賜教 int putchar(int ch) { &nb ...… 查看全部問答∨ |
有人抄過launchpad c2000板子的JTAG部分的板子嗎? launchpad中的JTAG部分很簡單,有人炒過這個板嗎,是不是僅僅把那幾塊芯片抄過來就可以用嗎? 還需要什么驅動程序?這個對那些沒有支撐CCS5軟件的朋友,幫助不會小,希望有人做做這方面的 嘗試?!? 查看全部問答∨ |
設計資源 培訓 開發板 精華推薦
- 將低功耗設計進行到底——評論、轉發贏大禮!
- 芯幣競拍:感恩教師節專場
- Keysight示波器主題月有獎系列活動之 注冊大獎天天抽 搶樓踩中亦有獎
- Microchip有獎直播:VectorBlox™ SDK 報名中
- 有獎直播|ADI 慣性MEMS應用那些事
- 借助 Microchip 生態系統中的 PIC® 和 AVR® 單片機開啟嵌入式到云端之旅 系列在線研討會
- 帶你零起點入門STM32(專為嵌入式應用而開發的內核)
- 福祿克首款熱成像萬用表Fluke-279FC 即將上市!填寫問卷贏好禮嘍!
- EEWorld Datasheet 伴你同行!快來領取200芯積分福利啦~
- 泰克福袋:示伴功倍,萬能福袋派送中