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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3730|回復: 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 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 免费观看日韩av | 人人爽人人草 | 精品视频一区二区 | 免费在线成人 | 久久久久久国产精品免费免费 | 亚洲精品视频一区 | 日韩成年人视频在线 | 国产亚洲精品精品国产亚洲综合 | 日本欧美在线观看视频 | 91久操网 | 国产在线a | 欧美在线色视频 | 日韩中文一区二区三区 | 日韩欧美一级片 | a在线v| 一区二区高清在线观看 | 国产一区二区视频免费在线观看 | 国产精品黄色 | 午夜视频一区 | 欧美无乱码久久久免费午夜一区 | 国产成人精品久久二区二区 | 日本天天操 | 欧美1区| 亚洲自拍偷拍欧美 | 久久久久久国产一区二区三区 | 欧美日韩一区在线 | 天堂综合| 日韩av在线免费 | 亚洲天堂中文字幕 | 国产美女精品视频 | 国产伦精品 | 一区二区三区久久久 | 午夜手机在线视频 | 日日干天天操 | 久久国产婷婷国产香蕉 | 国产免费播放视频 | 欧美日本免费 | 日韩国产一区二区三区 | 欧美综合在线观看 | 亚洲电影专区 | 午夜在线视频一区二区三区 |