久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標(biāo)題: 用stm32說hello world [打印本頁]

作者: 51黑ren    時間: 2015-12-27 03:33
標(biāo)題: 用stm32說hello world
以前搞過stm32開發(fā),不過長時間不搞已經(jīng)忘的差不多了,最近手頭一個項(xiàng)目要用stm32開,幾經(jīng)周折,查閱了大量的資料,博客終于搞出來個helloworld,記錄下過程,為自己也為入門的朋友們做個提醒吧!首先說下我的環(huán)境:
編譯工具:Keil V4.10
下載工具:Flash Loader Demonstrator
固件庫版本:V3.5.0
下載方式:串口下載(沒用仿真器)
前兩個工具百度一下就行,固件庫我是從官網(wǎng)下載的,路徑如下
登錄st官網(wǎng),右上角選擇中文,然后   支持-->Tools andSoftware-->軟件-->微控制器軟件-->STM32微控制器軟件。
然后在Software Type 下勾選Firmware,在Software Version下勾選3.5.0,點(diǎn)擊篩選之后的那個選項(xiàng),并下載它(固件庫),感覺下載工具也可以在官網(wǎng)下載的,但是沒時間去摸索了,有興趣的朋友可以去找找。
有了下載工具,編譯軟件,固件庫之后,我們的任務(wù)就是通過keil生成hex文件,并通過下載工具將其下載到stm32中,下面介紹一下工程的建立規(guī)范吧。
……
算了,不介紹了,太麻煩了,我給出我當(dāng)時參考的博文吧:
http://www.cnblogs.com/emouse/archive/2012/03/01/2375146.html

參照以上文章給的步驟,就能建立起一個比較規(guī)范的工程,這里我再補(bǔ)充幾點(diǎn),
1. 啟動文件的容量選擇上參考以下標(biāo)準(zhǔn):
小容量是16~32K
中容量是64~128K
大容量是大于256K
至于你的芯片容量是多少,請對照手冊自行翻譯吧:

2. 我選擇復(fù)制的第一個工程是
STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Examples\USART\Printf
編譯過程中遇見一些bug,這里說下解決辦法:
1)..\USER\main.c(24): error:  #5: cannot opensource input file "stm32_eval.h": No such file or directory
關(guān)于這個bug,搜了一下,大致就是官方給的程序調(diào)用了比較高一層的封裝函數(shù),而上面博文給出的步驟顯然沒有將這個文件考慮在內(nèi),所以我們要多進(jìn)行幾步。
這個函數(shù)在 STM32F10x_StdPeriph_Lib_V3.5.0\Utilities\STM32_EVAL下,復(fù)制它到我們的工程的LIB目錄下,然后添加它的路徑到我們我們的工程中,就是鏈接博文的這一步:

然后將stm32_eval.c添加到我們工程的User目錄下


編譯后,發(fā)現(xiàn)錯誤變成了這樣:
..\LIB\Utilities\STM32_EVAL\stm32_eval.h(169): error: #35: #errordirective: "Please select first theSTM32 EVAL board to be used (instm32_eval.h)"
..\LIB\Utilities\STM32_EVAL\stm32_eval.h: #error "Please selectfirst the STM32 EVAL board to beused (in stm32_eval.h)"
關(guān)于這個錯誤,請大家打開stm32_eval.h,中間有下面這樣一段話:


#if !defined (USE_STM32100B_EVAL) && !defined(USE_STM3210B_EVAL) && !defined(USE_STM3210E_EVAL)\
&&  !defined (USE_STM3210C_EVAL)&&  !defined (USE_STM32L152_EVAL)&&  !defined(USE_STM32100E_EVAL)
//#define USE_STM32100B_EVAL
//#define USE_STM3210B_EVAL
//#define USE_STM3210E_EVAL
//#define USE_STM3210C_EVAL
//#define USE_STM32L152_EVAL
//#define USE_STM32100E_EVAL
#endif
這段話,我猜測是根據(jù)STM32不同的官方樣品板,上層的封裝函數(shù)可能有不同,故設(shè)計(jì)一個宏定義來進(jìn)行配置,對,應(yīng)該就是這樣……
假如誰用的是官方樣品板子的話,就根據(jù)自己的型號進(jìn)行宏定義,我是自己畫的板子,所以隨便選嘍!就以
USE_STM32100E_EVAL為例進(jìn)行宏定義。
第一種方法,你可以把自己型號前的那個注釋個去掉。
第二種方法,在keil中配置宏定義,如下


顯然,第二種方法比較高大上一些,也利于管理,推薦給大家。
再次編譯,通過了。
然后就是下載了。
插上板子,啟動模式調(diào)成        boot0 :1        boot1:0
上電,打開下載工具,選擇串口號,一路默認(rèn),選擇hex文件,下載。
斷電,啟動模式調(diào)成        boot0:0         boot1:0
上電,成功運(yùn)行(希望如此吧)。

對了,鏈接所給的那個博文有幾個地方在稍微提醒一下:

由于我們使用的是串口下載,故這個地方我們就選擇默認(rèn)的左側(cè)的那個紅圈。
還有

宏定義之間使用英文的","分開,剛開始我還以為是空格那。
對了還有最重要一點(diǎn):
圖中的那個Use MicroLIB一定要勾選上,一定要勾選上,一定要勾選上,重要的事情說三遍!
寫這篇文章的時候,我同步創(chuàng)建了一個新工程,應(yīng)該沒有問題了。
恩,就這樣了,希望有幫助到人。











歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 中文字幕国产 | 在线看亚洲 | 久草在线 | 日韩在线一区二区三区 | 99热.com| 国产欧美一区二区三区日本久久久 | 日本在线网站 | 中文字幕在线精品 | 日韩中文视频 | 国产美女一区二区 | 成年人在线视频 | 欧美11一13sex性hd | 午夜免费观看 | 亚洲欧洲在线观看视频 | 国产精品一区二区久久 | 国产高清在线 | 97视频久久 | 91大神在线看 | 男人天堂视频在线观看 | 久久99蜜桃综合影院免费观看 | www狠狠干 | 激情网站在线观看 | 日韩精品免费在线观看 | 91精品国产99 | 中文字幕在线精品 | 免费三级av | 亚洲顶级毛片 | 日操夜操 | 福利视频网站 | 亚洲一区中文字幕 | 五月婷婷激情网 | 欧美中文字幕一区二区 | 91免费视频| 亚洲精品欧美 | 99成人 | 国产精品视频在线免费观看 | 国产欧美一区二区三区国产幕精品 | 精品欧美一区二区三区久久久小说 | 三级黄色大片网站 | 91久久久精品国产一区二区蜜臀 | 久久久久久久夜 |