準備階段
本人使用的是:stm8s003f3p6 -> 天貓鏈接
比較坑的一點是他的原理圖亂碼,可以先下資料來看看再決定買不買。
開始學習
下載編譯環境、破解註冊等等都已經十分詳細,建議參考
http://blog.csdn.net/column/details/13696.html
IO輸出模式區分(從使用的角度上):
STM8S的輸入輸出模式有以下:
(1)模擬輸入
(2)浮空輸入
(3)中斷上拉輸入
(4)上拉輸入
(5)開漏輸出
(6)推輓輸出
(7)複用開漏輸出
(8)複用推輓輸出
1、上拉輸入:上拉就是把電位拉高,比如拉到Vcc。上拉就是將不確定的信號通過一個電阻嵌位在高電平!電阻同時起限流作用!弱強只是上拉電阻的阻值不同,沒有什麼嚴格區分。
2、下拉輸入:就是把電壓拉低,拉到GND。與上拉原理相似。
3、浮空輸入:浮空(floating)就是邏輯器件的輸入引腳即不接高電平,也不接低電平。由於邏輯器件的內部結構,當它輸入引腳懸空時,相當於該引腳接了高電平。一般實際運用時,引腳不建議懸空,易受干擾。 通俗講就是讓管腳什麼都不接,浮空着。
4、模擬輸入:模擬輸入是指傳統方式的輸入.數字輸入是輸入PCM數字信號,即0,1的二進制數字信號,通過數模轉換,轉換成模擬信號,經前級放大進入功率放大器,功率放大器還是模擬的。
5、推輓輸出:可以輸出高,低電平,連接數字器件; 推輓結構一般是指兩個三極管分別受兩互補信號的控制,總是在一個三極管導通的時候另一個截止。高低電平由IC的電源低定。
6、開漏輸出:輸出端相當於三極管的集電極. 要得到高電平狀態需要上拉電阻才行. 適合於做電流型的驅動,其吸收電流的能力相對強(一般20ma以內).
7、複用開漏輸出、複用推輓輸出:可以理解爲GPIO口被用作第二功能時的配置情況(即並非作爲通用IO口使用)。
在STM32中選用IO模式,下面是參考網上的總結一下。
(1)浮空輸入_IN_FLOATING ——浮空輸入,可以做KEY識別,RX
(2)帶上拉輸入_IPU——IO內部上拉電阻輸入
(3)帶下拉輸入_IPD—— IO內部下拉電阻輸入
(4)模擬輸入_AIN ——應用ADC模擬輸入,或者低功耗下省電
(5)開漏輸出_OUT_OD ——IO輸出0接GND,IO輸出1,懸空,需要外接上拉電阻,才能實現輸出高電平。當輸出爲1時,IO口的狀態由上拉電阻拉高電平,但由於是開漏輸出模式,這樣IO口也就可以由外部電路改變爲低電平或不變。可以讀IO輸入電平變化,實現C51的IO雙向功能
(6)推輓輸出_OUT_PP ——IO輸出0-接GND, IO輸出1 -接VCC,讀輸入值是未知的
(7)複用功能的推輓輸出_AF_PP ——片內外設功能(I2C的SCL,SDA)(8)複用功能的開漏輸出_AF_OD——片內外設功能(TX1,MOSI,MISO.SCK.SS)
以下是學習筆記:
驅動的鏈接:ST-LINK V2驅動win10下安裝 ST-LINK V2 MINI解決方法http://www.stmcu.org/module/forum/thread-604504-1-4.html
使用芯片: STM8S103F3&STM8S003F3
IO(16):PA1-PA3(3) PB4-PB5(2) PC3-PC7(5) PD1-PD6(6)
芯片對比:
芯片 | EEPROM | FLASH(擦寫次數) | FLASH(大小) |
STM8S003F3 | 128B | 100 | 4K |
STM8S103F3 | 640B | 10000 | 8K |
所以:一般開發時選用STM8S103F3
其他:VSS,VCAP,VDD(3.3V),NRST
錯誤及解決方法:
出現錯誤 Option bytes read error: not complemented; please use a programmer.Disable this option will first erase the shole flash
解決方法 IAR->ST-LINK->Option Bytes ->ROP設爲Read-out protection disabled 更多參考解決方法
---2017/7/5---