
8*8點陣是一種應(yīng)用廣泛的顯示器件,像戶外的顯示屏、點陣屏都是由點陣拼接而成。而點陣其實是發(fā)光二極管LED的矩陣。 在驅(qū)動點陣時,雖然具有專用的點陣驅(qū)動芯片,如MAX7219,但是該芯片價格比較高,所以應(yīng)用并沒有很普遍。而74HC595和74HC138的組合來驅(qū)動點陣應(yīng)用卻非常廣泛。
單片機的GPIO口驅(qū)動能力有限,不能直接驅(qū)動較大功率的負載,如果負載的功率較大必須要考慮采用驅(qū)動功率器件的方式,比如說三極管、MOS管以及其他的專用驅(qū)動芯片。下面結(jié)合幾個典型的例子來介紹一下如何提高單片機的驅(qū)動能力。
算法(Algorithm)指計算機解題的基本思想方法和步驟。算法的描述是對要解決一個問題或要完成一項任務(wù)所采取的方法和步驟的描述,包括需要什么數(shù)據(jù)(輸入什么數(shù)據(jù)、輸出什么結(jié)果)、采用什么結(jié)構(gòu)、使用什么語句以及如何安排這些語句等。通常使用自然語言、結(jié)構(gòu)化流程圖、偽代碼等來描述算法。
很久之前就聽說st出了一個新版本的庫,用于代替原來的標準庫,非常好奇,但是一直沒有機會去體驗。這次借著做畢設(shè)的機會,嘗試著切換到新庫。官網(wǎng)介紹說,hal是一層硬件的抽象,看到這里,我非常激動,看來st終于意識到原來標準庫的問題了,原來的標準庫非常依賴于具體硬件細節(jié),很難體現(xiàn)出使用庫的優(yōu)勢,而且很難移植。同時我也非常好奇,st到底是如何把不同系列mcu的操作給封裝起來的,是不是足夠抽象,方便移植。
今天和客戶談技術(shù)需求的時候,談到了數(shù)據(jù)的有效性,客戶要求任何寫參數(shù)的數(shù)據(jù)都必須進行校驗,校驗算法可以自定義、也可以遵循常用的算法。校驗的目的,是為了防止誤操作時刻保證數(shù)據(jù)的有效性。今天和大家分享一下幾種常用的校驗算法。
單片機是一種可編程器件,單片機的出現(xiàn)使硬件設(shè)計變得更為簡單,產(chǎn)品的功能也更強大,而程序就是單片機的靈魂。 目前功能稍微復(fù)雜一點的電子產(chǎn)品,都是以單片機為核心,再加以不通的外設(shè)電路實現(xiàn)不通的功能需求。 單片機的編程可以通過匯編語言和C語言來實現(xiàn)。
單片機是可編程器件,在使用時需要編寫滿足需求的程序。其C語言程序在各個端口、配置初始化完成后,會進入一個死循環(huán),一般用while(1){;}的形式。初始化完成后,單片機就在死循環(huán)內(nèi)一遍又一遍的執(zhí)行程序邏輯。復(fù)位后,就從頭開始,初始化完成后,再次進入死循環(huán)。
應(yīng)某位朋友的要求,講解一下單片機中斷的知識,那今天就以51單片機的外部中斷0為例,來簡單講解一下單片機中斷的用法。
在學(xué)習(xí)單片機的時候,我們發(fā)現(xiàn)很多功能都是通過中斷來實現(xiàn)的。之前也舉過燒水的例子來闡述中斷,今天就講解一下定時器賦初值的方法。8位的定時器最大可計數(shù)2的8次方為256,16位的定時器最大可計數(shù)2的16次方為65536。
今天分享一個朋友的文章,關(guān)于DOS、匯編的內(nèi)容,以及雷軍的故事。這是一段古董代碼了,因為在1994年,當(dāng)時我的一個老師也是做匯編項目,他跟我聊過的故事是,當(dāng)時是他跟一個前輩一起去現(xiàn)場給客戶看故障,調(diào)試,用的ARM匯編,當(dāng)時前輩是賺了2w,他賺到了6k的樣子。
SWO串行線輸出是單引腳、異步串行通信,可在Cortex-M3/M4/M7上使用,并由主調(diào)試器探測支持,它是利用Cortex內(nèi)核中ITM模塊來實現(xiàn)此功能。
俗話說:"工欲善其事必先利其器",小主從項目實戰(zhàn)的角度在眾多的idea插件中挑選了10款開發(fā)必備的神器,幫助大家在日常編碼中提升開發(fā)效率。
什么Mysql的事務(wù)?事務(wù)的四大特性?事務(wù)帶來的什么問題?你詳細了解過MVCC嗎?它是怎么工作的?
并發(fā)編程學(xué)什么? 針對小伙伴們的疑問,今天,我就將并發(fā)編程需要學(xué)習(xí)的知識匯總成下圖所示,希望能夠為小伙伴們帶來實質(zhì)性的幫助。 特別推薦一個分享架構(gòu)+算法的優(yōu)質(zhì)內(nèi)容,還沒關(guān)注的小伙伴,可以長按關(guān)注一下: 長按訂閱更多精彩▼ 如有收獲,點個在看,誠
這里,我將在平時工作過程中總結(jié)的內(nèi)存溢出的情況,以代碼案例的形式直觀的分享給大家,希望能夠為小伙伴們帶來實質(zhì)性的幫助。
我們知道手動管理內(nèi)存意味著自由、精細化地掌控,但是卻極度依賴于開發(fā)人員的水平和細心程度。如果使用完了忘記釋放內(nèi)存空間就會發(fā)生內(nèi)存泄露,再如釋放錯了內(nèi)存空間或者使用了懸垂指針則會發(fā)生無法預(yù)知的問題。這時候Java帶著GC來了,將內(nèi)存的管理交給GC來做,減輕了程序員編程的負擔(dān),提升了開發(fā)效率。
分布式系統(tǒng)為什么需要鏈路追蹤? 隨著互聯(lián)網(wǎng)業(yè)務(wù)快速擴展,軟件架構(gòu)也日益變得復(fù)雜,為了適應(yīng)海量用戶高并發(fā)請求,系統(tǒng)中越來越多的組件開始走向分布式化,如單體架構(gòu)拆分為微服務(wù)、服務(wù)內(nèi)緩存變?yōu)榉植际骄彺?、服?wù)組件通信變?yōu)榉植际较?,這些組件共同構(gòu)成了繁雜的分布式網(wǎng)絡(luò)。
前面的話 本文介紹如何在matlab的simulink中嵌入C語言進行多輸入多輸出的仿真;這樣暫時脫離硬件平臺的問題,快速驗證算法的可行性,從而提高效率,總體來說,simulink挺香的,不過由于不可抗拒因素,在一些高校強行被ban,非??上?,但是我相信我們最終會擁有比matlab更強大的軟件。
在使用C語言開發(fā)嵌入式產(chǎn)品的過程中,當(dāng)使用到malloc函數(shù)時候都會有一個爭議, “使用動態(tài)內(nèi)存分配安全嗎?” ,就連美國軍方在safety-critical的嵌入式航空電子設(shè)備代碼中,也禁止動態(tài)內(nèi)存分配,我們來細細分析下。
一周至少一篇到今天已經(jīng)持續(xù)30周了,希望每一篇多多少少能給大家?guī)睃c干貨。同樣的,今天分享的基本上一面試就會被問的網(wǎng)絡(luò)IO。文中涉及的代碼部分不太重要,重要的是對這概念的理解。在看文章之前大家也可通過下面的思維導(dǎo)圖看看自己是否能回答出來。