⑴ 想自學嵌入式,求問適合初學者的教材和板子是什麼,求推薦
零基礎建議先學習C語言。
然後從單片機MCS51入門,初期可以選擇用protues模擬,積累到一定程度可以買普中開發板(MCS51和STM32一體的)。初學MCS51不要過分依靠教科書,匯編視個人情況而定,有困難不要死摳。
C51的一些關鍵知識點:
二進制與16進制換算,KEIL等開發環境,下載等C語言基礎就不說了。
流水燈、數碼管、獨立按鍵、定時器、16*16鍵盤、點陣、LCD1602、12864、DS18B20這些都是常用的,開發板也有例子,照著學下來。
如果C51玩的很遛了可以選擇完STM32F103C8,熟悉一下ARM內核。C8和MCS51差不多,資源很富一些。需要注意的是STM32採用固件庫編程,入門以後配置起來比51更容易。
C8差不多了可以玩STM32F103ZET6這類的板子,這時候玩玩像USB、SD、乙太網之類的高級貨。熟悉一下各類協議棧、RTOS之類。
如果ZET6也玩的很遛了嵌入式底端應聘個5k~7k以上的崗位不在話下了。
再想深入一下可以試著玩一下linux、ARM9或A8。這時候就可以往系統的概念走了
⑵ 《安富萊嵌入式周報》第212期:2021.05.11--2021.05.17
往期周報匯總地址: armbbs.cn/forum.php?...
1、Arino為STM32H7設計的開源工控底板,原理圖公開。該底板旨在與先前推出的H7核心板配合使用,供感興趣的開發者參考學習。
2、紘康科技推出特色產品,包括萬用表前端HY313x、交流阻抗測量HY313x,以及高性能32bit MCU HY16F39。該公司的模擬IC在性能上表現出色。
3、Dialog半導體公司提供定製ASIC業務,專注於工業和自動化技術中的復雜系統解決方案。通過定製設計,提升競爭優勢,同時不增加成本或上市時間。
4、ST公司新感測器監測產品STEVAL-STWINKT1B加入邊緣AI功能,狀態監視對預測性維護系統至關重要,有助於提高生產效率,減少維護成本和停機時間。
5、SEGGER公司推出Linux Studio,為Linux應用程序的創建、開發和調試提供一站式解決方案。它包含源代碼編輯器、圖形調試器和項目管理器,界面類似Visual Studio。
6、Embedded Wizard V11發布,新增Linux版本上位機支持,全面兼容各種微處理器(MPU),視頻教程鏈接提供。
7、emWin6.18模擬器發布,論壇提供下載,更新內容豐富,具體更新記錄公布。
8、V5、V6、V7的第2版DSP和CMSIS-NN神經網路教程更新至第29章,包含針對STM32H7的FFT相頻響應和幅頻響應與Matlab的計算比較。
9、第3版emWin教程前11章節發布,本周更新了三個章節,下載鏈接在論壇提供。
10、ThreadX全家桶本周更新了調度器章節,論壇提供下載。
11、H7-TOOL的APP固件升級至V2.05,上位機同步升級,新增支持CAN助手功能,新增華芯微特SWM和傑發科技AC78X離線燒錄功能。
12、串口助手中新增串口示波器功能,lua增加讀文件介面API, f_read, f_dir,DS18B20溫度表增加數據傳送到PC機串口助手的功能。
13、CAN助手功能支持經典CAN和CANFD,提供lua腳本解碼和分窗顯示,直接輸入lua語句控制發送邏輯,支持汽油車ODB解碼器。
14、當前支持的離線型號包括華芯微特SWM0x0、SWM1x0、SWM2x0、SWM3x0系列晶元和AutoChips(傑發科技)AC780x、AC781x系列晶元。
⑶ 單片機開發板是什麼啊
單片機開發板呢,顧名思義就是拿來搞開發的板子,而這個板子與其它電路板有所不一樣,這個板子拿來搞開發可以實現很多功能,就會留出很多介面給用戶,用戶自己來開發這些介面的功能,在以後的工作中也會接觸到很多開發板,這些開發板是拿來做開發和技術驗證的,在開發板上把技術驗證成功之後就會做真機開發了,而真機開發就不會像開發板那樣留介面了,(嵌入式嘛)只完成產品特定的功能就可以了。而在學習階段呢,有一塊自己的開發板再好不過,學習了理論知識之後除了在實驗室,自己就可以用自己的開發板完成很多學習和實際操作。簡單明了的說開發板因為留了很多介面給用戶可以完成這個領域幾乎所有技術的實現和學習,拿來學習搞開發的。
簡單的板子可以學學C51單片機,如果你是要搞嵌入式的話51是最基礎的也是最最低端的這個現在很少人都只是拿來做入門的東西了很多人玩智能車就用這個,中端一點的可以是STM32的arm-cortex m系列的微控制器,這一類的本人就在用一塊stm32 f4 的板子,高端一點的板子一般就是系統級別的了一般都會移植操作系統了,比如嵌入式linux等,而這一類的開發板市面上很多cpu的類型也很多比如我現在就在用入門級別的s3c2440(基於arm9單核)cpu的 也在用高端一點的exsny 4412(基於 arm a9 4核 與三星note2相同的cpu)的板子。
這類東西淘寶一下就會知道很多產品了!!!
⑷ 求一個比較準的延時函數,單位us。不用定時器。晶振12mhz。 因為操作DS18B20時,延時較短。
這個精度太高了吧,你自己去參考下這篇博文
http://blog.sina.com.cn/s/blog_7a77356b0100s9uc.html,雖然是討論的定時器,希望會對你有幫助。
linux下有usleep單位就是us,windows下的沒有這么精確地,只是我沒發現
⑸ 微控制器系統版和開發板有什麼區別。
一樣的只是叫法不同,微控制器叫的多的叫實驗板,因為微控制器學校做實驗用的多嘛,ARM,DSP等叫開發板比較多,因為用ARM,DSP開發板的公司買來開發板直接開發產品,產品開發出來後,再做硬體並去掉一些不用的模組,縮短開發周期嘛。對我們學習者的角度,都是實驗板。如果公司買微控制器的板開發產品,對他們來說單片機板也是開發板。個人理解哦!
學習版簡單些,帶許多例子;開發板一般都模組化,可拆卸,其實都差不多
模擬機介紹:
51模擬器是為微控制器愛好者學習微控制器和學習使用KEIL C51軟體而開發的。 51模擬器使用一片 SST89C58 微控制器來實現模擬功能 ,模擬機通過串列埠與 PC 連線。使用者可以開發小於等於28K的程式。 51模擬器直接插入使用者的應用板MCU的位置。 51模擬器的主要效能: 直接支援 KEIL C51 的 IDE 開發模擬環境。 可單步、斷點、全速執行除錯程式;可參考變數、RAM變數。 支援匯編、C語言混合除錯。 片內 28K 程式空間可以隨時進行線上程式更新。 完全模擬 P0、P2 口。 模擬頻率 6-33 MHz 晶振可選,系統配置 11.0592 MHz 。 可以模擬標準的 89C51 , 89C52 , 89C58 等全部51核心的微控制器。 51模擬器佔用T2定時器、UART口。使用模擬插針可更換結構,模擬插針可以取下,方便斷針後更換,即使斷針,也能自行處理,不必返修,小功能,大用處,尤其是對一些比較粗心的人而言。可切換晶振電路,一般使用使用者板上的晶振,也可用本機自帶,多一種選擇,特別是可以判斷使用者機上晶振電路工作是否正常,對初學者尤其適用。帶有簡單的復位按鈕(按鈕通過一隻100ohm電阻接VCC),當用戶電路板為簡易的RC復位時,這個按鈕就能起作用了。如果是用了復位電路,那麼電路本身就能保證復位的可靠性,不需用該按鈕。超小的體形設計,線路板和40腳積體電路一樣大小,全部用貼片元件完成,不記成本的,使用max232貼片的232轉換專業晶片,使可靠性更高,配置:包括模擬機主機一台余兄,光碟一張,串列埠線一條,說明一本。
51微控制器開發板:
也稱51微控制器實驗板、51微控制器學習板。是用於學習51型號的微控制器的實驗及學習器件,他是將51微控制器常用的外圍。比如流水燈,數碼管,矩陣鍵盤,EEPROM,時鍾,蜂鳴器,繼電器及整合在一小塊電路板上。便於攜帶及學習,直接插在PC機上面。隨時隨地的進行學習,另外一些中小型專案也可以直接在此板上面進行二次開發,開發完成後即可以在此基礎上面重新畫圖做板,極大的縮短了公司的開發周期,節省硬體成本。例如電子人微控制器開發板,針對學者需要特別配套VB上位機軟體開發,游戲開發等教程學習資料。開發此類微控制器開發板的公司一般提供完善的售後服務與技術支援,高校常用的微控制器開發板為教學需要,常見配雹判套資源有硬體、實驗程式原始碼、電路原理圖、電路PCB圖等學習資料。 常見配套資源如下: 1、硬體實驗板及期配件如:杜邦線、微控制器晶片、流水燈、點陣顯示、ds1302數字鍾、ds18b20溫度檢測、彩色TFT液晶屏,SD卡,超聲波測距、收音機、mp3解碼、智慧小車等等。 2、實驗程式原始碼,包含匯編源程式、C語言源程式。 3、電路原理圖、PCB圖。 4、實驗手冊、使用手冊。 5、附加PCB設計制豎肆襲作、VB軟體開發等計算機學習資料。
希望對你有用!
這個只是叫法不同而已,其實是一樣的東西。
吳鑒鷹微控制器開發板
用途:
1 可以作為燒寫器(即程式設計器),將自己寫好的程式寫入微控制器中。
但燒寫微控制器的種類單一 型號也不會太多。
2 可以利用開發板上的一些硬體 做一些微控制器實驗(就不需要自己搭建實驗電路了)
有利於初學者使用。
微控制器開發板上集合了多個實驗的功能區,能做出不同的實驗或者完成不同的任務。但他們都是共用一個電源的,不過有些功能區需要接上短路帽才能將微控制器輸出的訊號輸入到那個功能區里。基本上要實現上功能都是固定的,也就是你說的只有開發板上有的才能,但不排除擴充套件功能。想要往微控制器里寫程式,首先當然是在Keil 或者相關的軟體上編寫好C或者匯編程式,然後經過編譯器編譯成微控制器能夠識別的機器碼,再通過串列埠線或者其他通訊線下載到微控制器里。不同種類的微控制器的燒寫過程與下載線也是不一樣的。詳細情況你可以檢視一下你所用的微控制器。通過程式的編寫和燒寫進微控制器里就可以驗正實驗的正確或者實現你想要的功能。
微控制器開發板,是供你學習、開發用的,開板自帶很多功能如:流水燈、數碼管、AD轉換、DA轉換、步進電機、直流電機、點陣、夜晶、紅外、鍵盤、時鍾等,要想達到了什麼功能 能,首先通過電腦KEIL軟體把程式編好,程式語言分兩種C與匯編,把編好的程式通過程式設計器燒錄到開發板,開發板就會實現你要想達到的功能,現在開發板都自帶燒錄功能,不需要另行購買程式設計器,不明白追問
有開發板需不需要模擬板,這個問題要看你需要到達那個程度。
市面上有很多開發板,提供完整的軟硬體模組,使得我們能很快的入手,並踏入微控制器的殿堂,是一個非常好的現象。但是,就是由於這類開發板的出現,使得我們有很多路不需要走,也就導致了我們有很多事情不知道,知其然不知其所以然!這對於今後踏入工作領域,碰到新的東西的時候,就會有一種摸不著的感覺。每一個程式的最終完成都離不開模擬器(學校的那種忽略),模擬器的除錯方法:斷點,單步等等都是很好的除錯工具,也可以為我們讀程式碼提供很大的幫助。
所以我建議,有機會的話盡量使用「可以使用模擬器的開發板和模擬板」,對我們的程式設計思維和除錯方法都會有很大的幫助的。負載的系統,沒有模擬板和模擬器根本不可能做出來的。
沒什麼區別,只是叫法不一樣罷了!
開發板是用的驗證功能性電路板,用以開發實驗,驗證硬體和軟體的功能和效能,是過度產品,如ARM,DSP等CPU的開發板
主機板一般是的是PC的主機板,是PC電腦里的主要組成部件,是成熟的量產產品。
開發板(demoboard)是用來進行嵌入式系統開發的電路板,包括中央處理器、儲存器、輸入裝置、輸出裝置、資料通路/匯流排和外部資源介面等一系列硬體元件。開發板一般由嵌入式系統開發者根據開發需求自己訂制,也可由使用者自行研究設計。開發板是為初學者了解和學習系統的硬體和軟體,同時部分開發板也提供的基礎整合開發環境和軟體原始碼和硬體原理圖等。常見的開發板有51、ARM、FPGA、DSP開發板。開發板一般由嵌入式系統開發者根據開發需求自己訂制,也可由使用者自行研究設計。開發板是為初學者了解和學習系統的硬體和軟體,同時部分開發板也提供的基礎整合開發環境和軟體原始碼和硬體原理圖等。常見的開發板有51、ARM、FPGA、DSP開發板。嵌入式系統開發,要先選定滿足自己開發所需型號CPU、FPGA、DSP,其次根據選定型號的CPU、FPGA、DSP等選擇支援選定晶片的開發板范圍。再次,優選開發板提供的開發環境及技術支援的能力和水平。最後還要考慮開發板板子除了整合CPU、FPGA、DSP等之外,還需要較完善輸入及輸出的介面,如鍵盤和LCD,程式下載介面、記憶體(RAM)、FlashROM、電源模組等。同時為了開發初期的除錯方便,還會引出幾個特殊的引腳,如JTAG介面、USB和串列埠等,以供外接的除錯模組所使用。
評估辦版一般就是測試版,很多軟體都是評估版的,因為沒有注冊,想要注冊是需要向軟體商交費的,所以評估版軟體會有許多的功能限制,還有的是某些硬體的評估版,一般是用來測試用的,裡面會有許多不穩定的因素,是需要向廠商反饋的。
樹莓派應該算是一個微型桌上型電腦。它用的雖然是arm的CPU,不過支援通用的作業系統,而不是嵌入式的作業系統。當然也可以安裝android之類的作業系統。
嵌入式開發板現在主要開發板用的還是自己定製的作業系統。如果你有一個應用需要在arm的CPU上執行,可以試著用它來玩玩。
不過通常開發特定的嵌入式系統,都會自己定製嵌入式開發板。 如果你不會做,可以找一些專門做這種開發板小廠子定。
我10年用的板子基本上都沒有作業系統,全部自己寫的C。後來用vmware。 現在似乎用android的比較多。 也可以使用嵌入式linux。使用QT作為圖形介面。 比如有些導航儀。
手機開發有一段時間用MTK。 現在基本上都android了。
⑹ 學什麼單片機好學單片機怎麼樣能賺錢嗎有前途嗎
先學51單片機,可以看看學習視頻,對於每個人來說,多學習一種技能 可以拓寬 就業渠道,
單片機學習可以先學習一些模擬示例,如
#include<reg51.h>
#define uchar unsigned char
uchar temp;
int key1,key,disbuf;// 此表為 LED 的字模 0 1 2 3 4 5 6 7 8 9 a b c d e f
unsigned char code LED7Code[] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71};
unsigned char ledx[8];
uchar t,j,i;
bit s0,s1;
void scan() //要是按鍵了,掃描鍵盤編碼值
{
P1=0xF0;
for(j=0;j<250;j++);
temp=P1;
switch(temp)
{
case 0xe0: key1=0; //
break;
case 0xd0: key1=1; //
break;
case 0xb0: key1=2; //
break;
case 0x70: key1=3; //
break;
}
P1=0x0f;
for(j=0;j<250;j++)
temp=P1;
switch(temp)
{
case 0x0E: key=key1+0;
break;
case 0x0D: key=key1+4;
break;
case 0x0B: key=key1+8;
break;
case 0x07: key=key1+12;
break;
default : key=-1;
}
if((key1+1)&&(key+1)) disbuf=key;
}
void ejjc() //判斷是否按鍵
{
P1=0xF0;
if(P1!=0xF0) { scan();s0=1;}
else { s0=0; s1=1;}
}
void main()
{
TMOD=0x51; // T1 外部計數
TH0=(65535-2000)/256;
TL0=(65535-2000)%256;
EA=1;
ET0=1; //開定時器0中斷
ET1=1; //開定時器1中斷
TR0=1; //啟動定時器0
TR1=1; //啟動定時器1
while(1)
{
ejjc();
if(s0==1 && s1==1)
{
s0=0;s1=0;
for(i=0;i<8;i++)
{ ledx[i]=ledx[i+1]; ledx[8]=disbuf; }
}
}
}
void timer0() interrupt 1
{
TH0=(65535-2000)/256;
TL0=(65535-2000)%256;
P0=0xff;
switch(t)
{
case 0: P2=LED7Code[ledx[0]]; P0=0xfe;break;
case 1: P2=LED7Code[ledx[1]]; P0=0xfd;break;
case 2: P2=LED7Code[ledx[2]]; P0=0xfb;break;
case 3: P2=LED7Code[ledx[3]]; P0=0xf7;break;
case 4: P2=LED7Code[ledx[4]]; P0=0xef;break;
case 5: P2=LED7Code[ledx[5]]; P0=0xdf;break;
case 6: P2=LED7Code[ledx[6]]; P0=0xbf;break;
case 7: P2=LED7Code[ledx[7]]; P0=0x7f;break;
}
t++;
if(t==8) t=0;
}