找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 1530|回復(fù): 3
收起左側(cè)

想再次學(xué)習(xí)單片機(jī),不知道有什么好的方法和資料?

[復(fù)制鏈接]
ID:1057884 發(fā)表于 2022-12-16 13:35 | 顯示全部樓層 |閱讀模式
本人大學(xué)畢業(yè)后有2年學(xué)單片機(jī),現(xiàn)在10多年沒有碰了,都忘,現(xiàn)在想再次學(xué)習(xí),不知道有什么好的方法和資料
回復(fù)

使用道具 舉報(bào)

ID:1057859 發(fā)表于 2022-12-16 17:53 來自觸屏版 | 顯示全部樓層
單片機(jī)設(shè)計(jì)需要用到更多的是硬件之間的訪問和操作,所以你需要對(duì)底層有所了解。既然說到底層,肯定就要理解寄存器如何讀寫代碼,并且編譯器如何生成代碼幫助寄存器讀寫。同時(shí)你還需要了解如何編寫和使用C編譯器工具鏈,還有交叉編譯代碼,也就是那個(gè)很長的arm-linux-gcc。編程的時(shí)候看名字都暈了。當(dāng)然底層語言也需要了解。說到編程語言,首先我覺得應(yīng)該先擁有對(duì)于程序的邏輯。關(guān)于如何培養(yǎng)你的程序邏輯,我覺得不如就用男人的浪漫――游戲來舉例好了。比如說你想要編寫一款游戲,首先你需要做些什么?你肯定需要一個(gè)人物,也就是建立對(duì)象,然后需要有人物設(shè)定,也就是對(duì)象賦值。設(shè)定好了人物,就需要設(shè)定事件了,也就是整個(gè)程序的框架。有了人物和事件,接下來就需要?jiǎng)幼髁,也就是?duì)于對(duì)象的操作,這里就需要添加很多邏輯函數(shù)。接下來就是對(duì)于細(xì)節(jié)的優(yōu)化了,因?yàn)槟愕某绦虮旧硇枰谄聊簧线\(yùn)行,所以你還需要考慮屏幕的刷新率啊,如何去適應(yīng)屏幕的分辨率讓玩家不會(huì)產(chǎn)生不適應(yīng)感。同時(shí)你還需要設(shè)定邊界,讓你的人物不至于跑飛了。同時(shí)更高端的游戲,還需要你在里面加入“人工智能”,這個(gè)就更麻煩了。其實(shí),這就是一個(gè)簡單程序的邏輯關(guān)系,建立對(duì)象,設(shè)定框架,建立邏輯關(guān)系,最后得到結(jié)果。關(guān)于底層語言肯定繞不過匯編啊。說起匯編的學(xué)習(xí)都是淚啊,當(dāng)年寄存器直接記到懷疑人生,只是想說:我是誰,我在哪?但光學(xué)匯編肯定是不夠的,所以作為匯編的一個(gè)補(bǔ)全——C語言肯定是不得不學(xué)的。說到C,可以算作所有工科生的入門課程,屬于可學(xué)可不學(xué)的“雞肋”課程。甚至有的大學(xué)直接把C當(dāng)作選修課程而主修C++。而很多工科生學(xué)習(xí)C也是因?yàn)闄C(jī)房的網(wǎng)速快。但對(duì)于嵌入式來說C卻顯得比較重要,甚至有的公司招聘嵌入式崗位只需要考察員工對(duì)C的掌握能力。當(dāng)然,C肯定說的不是我們所熟悉的那個(gè)《C語言基礎(chǔ)與編程》。而是必須要了解C語言關(guān)于內(nèi)存分配的功能。我們都知道,嵌入式需要用到的微控制器系統(tǒng)對(duì)于內(nèi)存的要求肯定是越小越好。這同樣也是C語言的優(yōu)勢之一,因?yàn)镃的代碼通常不會(huì)占用太大的內(nèi)存。同樣由于嵌入式系統(tǒng)內(nèi)存的重要性,所以學(xué)會(huì)C語言的內(nèi)存分配方式也格外重要。關(guān)于C語言的學(xué)習(xí)還有一點(diǎn)就在于指針,因?yàn)榇蠹叶贾烙布拇嫫髦g是需要通過指針來訪問的。當(dāng)然關(guān)于指針的學(xué)習(xí),也有些東西需要注意了。那就是使用指針后將指針的值設(shè)為NULL。這樣可以避免很多錯(cuò)誤的產(chǎn)生,因?yàn)榉奖隳愣ㄎ浑S后被誤用導(dǎo)致的錯(cuò)誤所在的位置。接下來提到的問題,可以算作是一個(gè)“老司機(jī)”的問題,真的是生活不易,司機(jī)落淚啊。其實(shí)很多新人也很容易犯這種錯(cuò)誤。那就是很多人在定義數(shù)據(jù)類型的時(shí)候,總是習(xí)慣定義成int型。也就是有符號(hào)類型,但實(shí)際上,無符號(hào)的數(shù)據(jù)比有符號(hào)的多啊,所以u(píng)nsigned才是最好用的啊。不要因?yàn)樗L了就忽略它啊混蛋。當(dāng)然嵌入式的程序代碼,也不是僅僅只能用C的,這里我提到幾個(gè)嵌入式開發(fā)可能用到的語言。python作為C語言產(chǎn)生的一個(gè)“衍生品',憑借其對(duì)于數(shù)據(jù)處理和分析的強(qiáng)大能力,自然而然的成為了嵌入式開發(fā)的一個(gè)很好的選擇。如果你覺得還不夠,其實(shí)RUST也可算作一個(gè)不錯(cuò)的選擇。但就一般的開發(fā)者來說,把C學(xué)到最好才是王道啊。這里順便還想提到另一個(gè)東西——LABview。有些人對(duì)于代碼有一種恐懼感,因?yàn)椴煌娜藢懗龅拇a風(fēng)格也不同。當(dāng)你想要看懂它,還需要跟上創(chuàng)作者的思維方式。而LABview采用最直觀的框圖形式,把代碼通過對(duì)于各種控制器的調(diào)用來展示出來,能夠更加利于其他人的理解。特別是對(duì)于項(xiàng)目的規(guī)劃,能產(chǎn)生很好的效果。當(dāng)然這只是根據(jù)比較小的微控制器來說的。當(dāng)面對(duì)大型的嵌入式系統(tǒng)來說,通過c語言寫出的代碼來控制(也就是所謂的“裸板”指令)根本是不可能的。
回復(fù)

使用道具 舉報(bào)

ID:1044091 發(fā)表于 2022-12-17 19:44 | 顯示全部樓層
學(xué)習(xí)單片機(jī),只要4步:

1、(最基本的)上某一個(gè)寶買一套51開發(fā)板,幾十元吧,不用加復(fù)雜的外設(shè),基本款就行了。商家應(yīng)該還能送一些電子資料和基本軟件。海鮮市場二手板如果有資料也可以考慮,但也就能省2、30元吧,推薦買新板。開發(fā)板一定要有PDF資料!影印版不好查找。

2、(強(qiáng)烈建議)買一本二手《C程序設(shè)計(jì)》,推薦清華大學(xué)譚浩強(qiáng)的,紙質(zhì)的查閱方便。這本書主要是講算法設(shè)計(jì),當(dāng)你跟著教程學(xué)了一段時(shí)間后,可能就要面對(duì)算法的問題了。10元左右。

3、(可選項(xiàng),買不買都行)買一本二手《單片機(jī)C程序設(shè)計(jì)》之類的書,能跟前面開發(fā)板配套更好,不配套也沒關(guān)系,主要是用來參考,反正單片機(jī)C程序教程都差不多。我買的是郭天祥的,10元左右;

4、百度找到STC的官網(wǎng),有很多資料可以下載。(最重要的)有問題可以上51黑提問。

現(xiàn)在你就可以愉快地學(xué)習(xí)了!以上可能花費(fèi)并不多,但是,要想學(xué)有所成,將占用你大量的時(shí)間,請(qǐng)做好心理準(zhǔn)備。
回復(fù)

使用道具 舉報(bào)

ID:401564 發(fā)表于 2022-12-18 17:07 | 顯示全部樓層
同意二樓的說法
但,書的話,我覺得"C語言程序設(shè)計(jì):現(xiàn)代方法(第2版)"這本更好,劉強(qiáng)東家的正版是102塊,二手的也就20來塊
這本書的內(nèi)容更多,也更深入
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表