原來keil也有串口窗口,現在就試試打印倒金字塔圖形。
可以學到什么:
1.程序設計
#include<reg51.h>
#include <stdio.h> //使用print打印必需函數
void main() {
unsigned char i,j,k; //定義無符號字符型變量i、j、k
TMOD=0x20; //串口初始化:定時器1工作方式2;
TH1=TL1=0xE6;//置1200波特率(fosc=12 MHz)
SCON=0x52;//串口方式1,允許接收,清發送中斷
TCON=0x40; //設置中斷控制,啟動T1
for(i=1;i<=6;i++) //6行金字塔循環
{
for(k=6;k>i;k--) //輸出空格循環
printf("");//打印輸出空格
for(j=1;j<=2*i-1;j++)//輸出“*”循環
printf("*");//打印輸出“*”
printf("\n");//換行
}
while(1);//避原地等待,免局部變 量被釋放
}
keil的target中晶振頻率怎么設置?,不設也沒關系
2.Keil調試
①按實例1所述步驟,編譯鏈接并進入調試狀態。
②單擊調試,打開串行輸入輸出信息窗口Serial #1.
③全速運行后,即可看到Serial #1窗口內顯示圖1-2所示金字塔圖形。
小小菜鳥,多多包涵
最近有些人應該知道,魚鷹最近跳槽了,從北京來到了深圳,事情很多,所以更新不穩定了。
事實上,前面說更新即將不穩定是因為想深入學習 USB 協議的,但是因為交接的那一個月時間幾乎天天加班,也因為跳槽的事情比較多(都是偷懶的借口),所以 USB 協議也沒怎么學習(但肯定會去學習的,因為這個已經成為我的執念了)。
而到了深圳,新的公司,新的開發模式,加班也較多,所以只能抽空更新了。
今天就來說說魚鷹這半個多月學了哪些,也順便簡單介紹幾個工具(順帶一提,下次更新將更具體的介紹本人的學習過程,寫寫如何從一小白入門這些新事物的)。
首先我學習的是Qt,而要學習Qt就必須學C++,而學了Qt之后發現新公司采用linux開發單片機,涉及到Makefile,還用了GitLab管理代碼,所以又簡單學習了GitLab的操作,然后發現代碼管理還要使用Git,所以花了幾天時間學習Git的使用……
所以說這半個多月來,學的東西很多,但是不準備寫相關筆記更新在平臺,因為這些太過基礎了,網上一大堆資料,自己學的也只是皮毛,而我寫筆記的原則就是值得寫才會去寫。
我知道很多單片機開發的道友都是手握KEIL行走天下的,事實上在跳槽之前我就是如此,一個KEIL搞定一切,編輯、編譯、下載、調試,全靠KEIL軟件,也是我研究KEIL這么深的原因,因為只有你熟悉了工具,才能做到事半功倍(或許后期魚鷹會寫一寫相關經驗,但事實上很多點都在前面的系列中寫過的,只是怎么使用也是一個很大問題)。
下面這些工具,我認為你都應該花點時間學習一下,這是非常有用的工具,非常方便,可以節省很多時間,但是即使我這么鄭重強調,各位道友也只是這么一聽而已,因為我自己就是如此,即使很早就聽說了這些工具,但要花時間學習這些新東西還是需要很大的魄力的,而只有你真的學會了,用了,才會知道這些工具的價值。人總是要嘗到甜頭才有動力去做的嘛。
那么廢話不再多說,現在就來介紹幾個工具吧,對嵌入式開發都適用的!
1、SourceInsight
強烈建議使用SourceInsight查看源碼!!!
魚鷹在前公司了解到SourceInsight,也在網上搜索了它的情況,但到現在才去用,說來也是汗顏。這么說吧,看源碼的神器。很多人推薦看源碼的工具時,基本都有它的身影,這下你應該知道它的價值了吧。我們知道KEIL的編輯功能很弱,這是它相比其他編輯器的一大弱項(強項當然就是調試了),但是SourceInsight除了編輯能力比KEIL強外,查看源碼的能力也非常厲害。
我們知道KEIL查看函數或者符合定義時,要么右鍵查找定義,要么熟練的使用快捷鍵 F12 進行跳轉,但無一例外的就是都需要額外的操作,但SourceInsight只要你把光標指向函數名,就會自動有一個小窗口顯示函數體,看似只比KEIL少了一步,也只是多了一個窗口而已,但就是這點區別,就足以讓魚鷹安裝了(事實上它也可以在設置后編譯源碼的,這個暫時沒去研究過,不多說)。在看別人代碼的時候,跳來跳去的正常不過了,而KEIL每次跳轉都會跳轉到新窗口,想回來,只能再切換窗口,如果跳轉次數不多的話,那沒什么,但是查看不熟悉的代碼,你認為你不需要頻繁跳轉嗎?所以魚鷹認為,這個神器必須安裝,特別是查看linux內核這種大型源碼時,更是如此。而且它安裝包也很小,不用太關心內存問題,你,值得擁有。
2、Git
這個工具用于軟件版本控制的,事實上魚鷹在前五年開發使用的版本工具就是復制、粘貼,你沒有看錯,魚鷹工作的那一年也是采用這種方式進行版本控制的。我相信公眾號的很多道友現在還都是采用這種方式吧。這種方式確實簡單,不用學習什么命令,也不用知道怎么使用工具,因為復制、粘貼、重命名誰不會啊,學習成本很低。
但是當你不停的更新、不停的修改代碼的時候,你就會發現,這個復制粘貼的方式效率很低,也很難把控:你會發現你的文件夾變得越來越多,也越來越不知道每一個文件和其他文件有什么不同了,時間久了,你根本不知道改動到底在哪。
但是Git不一樣,你能看到文件只有當前使用的一份,歷史改動全部被Git給隱藏了,所以你會看到你的源碼文件明明只有幾K,但你回到上級目錄查看這個文件屬性時,你會發現可能有幾百M內容,那么多出來的文件是什么?就是你以前的歷史文件了,都隱藏在.git文件夾中。
而你要查看這些歷史只要幾條命令就行,也很容易就能回到你需要的版本中,就如乘坐時光機,輕松來往于過去與未來。
還有它可以很方便的查看版本的差異,讓你再也不用使用專門的工具查看各個文件的不同了。
而且Git是采用本地管理的,不需要網絡,非常方便。
學習Git基本使用方法只需要花個一兩天時間學習就夠了,但是卻能免除你今后開發生涯的復制、粘貼操作了,魚鷹覺得這是非常值得做的一件事。
3、GitHub
GitHub是一個網站,不能算工具,這個網站應該都聽說過,其實這個網站我還不怎么會使用,目前只是配合Git上傳代碼到上面而已,就不多說了。
那么為什么我要用它呢,因為很多時候,你的源碼可能要傳輸到別的平臺,有了它比較方便,比如說,window平臺下開發的代碼,上傳到GitHub后,Ubuntu、樹莓派等平臺下都可以下載、上傳,方便代碼的同步。所以如果你不想花時間系統學習的話,把它當成一個網盤使用也是不錯的呦。
4、Qtcreator
這個軟件和Qt有啥關系我也不清楚,咱也不敢說,咱也不敢問,只是下了一個安裝包安裝在Ubuntu下學習C++和Qt而已,事實上它也可以編譯單片機代碼(前提是有Makefile和交叉編譯器)。
那么為啥要聊它呢,因為Qt在嵌入式用途廣泛,如果說你寫的上位機既想在Windows運行,也想在linux下運行,那么Qt是不錯的選擇,因為這個號稱是一次編寫,到處編譯的,所以優勢還是很大的,而且采用的是C++語言,如果C語言學習的好,C++入門非常快的。
5、Vscode
這個聽說是神器,具體多神我也不清楚,聽說可以替代KEIL了,各位道友有興趣的可以去研究一下,后期有時間了我也去試試,感受一下它的神威。
喜歡的就來關注魚鷹吧!