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