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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3658|回復: 0
打印 上一主題 下一主題
收起左側

用stm32說hello world

[復制鏈接]
跳轉到指定樓層
樓主
ID:99624 發表于 2015-12-27 03:33 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
以前搞過stm32開發,不過長時間不搞已經忘的差不多了,最近手頭一個項目要用stm32開,幾經周折,查閱了大量的資料,博客終于搞出來個helloworld,記錄下過程,為自己也為入門的朋友們做個提醒吧!首先說下我的環境:
編譯工具:Keil V4.10
下載工具:Flash Loader Demonstrator
固件庫版本:V3.5.0
下載方式:串口下載(沒用仿真器)
前兩個工具百度一下就行,固件庫我是從官網下載的,路徑如下
登錄st官網,右上角選擇中文,然后   支持-->Tools andSoftware-->軟件-->微控制器軟件-->STM32微控制器軟件。
然后在Software Type 下勾選Firmware,在Software Version下勾選3.5.0,點擊篩選之后的那個選項,并下載它(固件庫),感覺下載工具也可以在官網下載的,但是沒時間去摸索了,有興趣的朋友可以去找找。
有了下載工具,編譯軟件,固件庫之后,我們的任務就是通過keil生成hex文件,并通過下載工具將其下載到stm32中,下面介紹一下工程的建立規范吧。
……
算了,不介紹了,太麻煩了,我給出我當時參考的博文吧:
http://www.cnblogs.com/emouse/archive/2012/03/01/2375146.html

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

2. 我選擇復制的第一個工程是
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
關于這個bug,搜了一下,大致就是官方給的程序調用了比較高一層的封裝函數,而上面博文給出的步驟顯然沒有將這個文件考慮在內,所以我們要多進行幾步。
這個函數在 STM32F10x_StdPeriph_Lib_V3.5.0\Utilities\STM32_EVAL下,復制它到我們的工程的LIB目錄下,然后添加它的路徑到我們我們的工程中,就是鏈接博文的這一步:

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


編譯后,發現錯誤變成了這樣:
..\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)"
關于這個錯誤,請大家打開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
這段話,我猜測是根據STM32不同的官方樣品板,上層的封裝函數可能有不同,故設計一個宏定義來進行配置,對,應該就是這樣……
假如誰用的是官方樣品板子的話,就根據自己的型號進行宏定義,我是自己畫的板子,所以隨便選嘍!就以
USE_STM32100E_EVAL為例進行宏定義。
第一種方法,你可以把自己型號前的那個注釋個去掉。
第二種方法,在keil中配置宏定義,如下


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

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

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

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






分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩一区二区视频 | 特黄毛片 | www.黄色片视频 | 丝袜久久 | 国产精品视频网 | 国产精品第2页 | 欧美 日韩精品 | 国产一区二区三区四区三区四 | 一级a性色生活片久久毛片波多野 | 天天人人精品 | 人人干人人看 | 337p日本欧洲亚洲大胆精蜜臀 | 日日射夜夜骑 | 国产精品一区二区免费 | 欧美一区二区三区视频 | 欧美一区二区三区久久精品 | 最新av在线播放 | 一级做a爰片性色毛片视频停止 | 成人免费视频在线观看 | 伊色综合久久之综合久久 | 国产精品成人久久久久 | 国产 日韩 欧美 在线 | 中文字幕一区二区三区在线观看 | 日韩中文字幕一区二区 | 91精品麻豆日日躁夜夜躁 | 亚洲精品一区国产精品 | 日韩精品一区二区三区中文在线 | 亚洲精品一区二区三区四区高清 | 久久91| 亚洲色在线视频 | 久久网一区二区 | 国产激情视频网址 | 美女久久视频 | 欧洲色综合 | 免费黄色在线观看 | 国产成人一区二区三区精 | 日韩精品一区二区三区在线观看 | 亚洲国产精品久久久 | 古典武侠第一页久久777 | 日日摸夜夜添夜夜添特色大片 | 95国产精品 |