
最近在公司維護的項目中碰到一個解決了定位很久的bug , bug找到的時候發(fā)現(xiàn)犯了很低級的錯誤——在中斷處理函數(shù)中調用了printf函數(shù),因為中斷處理函數(shù)的調用了不可重入函數(shù),導致中斷丟失和系統(tǒng)位置錯誤,這里直接導致嵌入式linux系統(tǒng)應用進程中的所有線程停掉,進而導致看門狗進程得不到喂狗,設備重啟。
本節(jié)主要是分享光城的實習期間如何快速閱讀一些源代碼,以及快速閱讀一些開源庫。
PID,就是“比例(proportional)、積分(integral)、微分(derivative)”,是一種很常見的控制算法。
在使用 lvgl 庫的時候,筆者使用的V7版本的庫,使用過程中發(fā)現(xiàn)網(wǎng)上關于V7版本的資料非常少,官網(wǎng)有文檔介紹其如何使用,但有些方面還不是很全面,而且網(wǎng)上現(xiàn)在的中文教程大多數(shù)是針對于V6版本的,V6和V7使用上的差異在有些方面還是挺大的,所以筆者也就想把自己在使用V7版本的庫的時候的一些心得記錄下來。
es在數(shù)據(jù)量很大的情況下(數(shù)十億級別)如何提高查詢效率?。窟@個問題是肯定要問的,說白了,就是看你有沒有實際干過 es,因為啥?其實 es 性能并沒有你想象中那么好的。
單片機程序寫好之后,我們都要把程序下載到單片機的內存中,單片機才會按照程序員的邏輯執(zhí)行命令實現(xiàn)功能。之前也講過下載單片機的幾種方式,比如ISP下載,JTAG下載,下載文件的格式最常見的是hex文件,這個格式大家都是知道的,還有一種bin文件是單片機的下載文件。本文詳細介紹了這兩種格式的區(qū)別。
if...else 是所有高級編程語言都有的必備功能。但現(xiàn)實中的代碼往往存在著過多的 if...else。雖然 if...else 是必須的,但濫用 if...else 會對代碼的可讀性、可維護性造成很大傷害,進而危害到整個軟件系統(tǒng)?,F(xiàn)在軟件開發(fā)領域出現(xiàn)了很多新技術、新概念,但 if...else 這種基本的程序形式并沒有發(fā)生太大變化。使用好 if...else 不僅對于現(xiàn)在,而且對于將來,都是十分有意義的。今天我們就來看看如何“干掉”代碼中的 if...else,還代碼以清爽。
首先設定一個兩周入門計劃: 所謂的“兩周”,根據(jù)每個人的時間安排不同而不同。這里列出一個思路,僅供參考。
完成一個大的硬件工程,需要考慮的事情很多。所以,這對工程師的要求就高了些。且看下面是一個很牛叉的硬件工程師做的分享,希望能幫助到各位。
分享一篇比較好的文章,主要介紹編程規(guī)范和編程思想,對編程學習非常有指導意義,內容有點長,和大家分分享一下。
Segger提供的ST例程都是使用J-Link進行調試的,如果我們只有ST-Link仿真器那又該怎么辦呢?本文我們將介紹如何在Segger Embedded Studio 中使用ST-Link進行調試。
學習單片機需要動手,不是照著課本去死記硬背。 所以學習單片機的第一個概念:確定好所學習的單片機具體型號。
網(wǎng)友說自己做了兩年單片機相關的工作,最后發(fā)現(xiàn)不喜歡硬件,想轉到互聯(lián)網(wǎng)軟件,有沒有可能?單片機也分為軟件和硬件,只不過在小公司,軟件、硬件都是一個人在做,不會細分的很細。
8*8點陣是一種應用廣泛的顯示器件,像戶外的顯示屏、點陣屏都是由點陣拼接而成。而點陣其實是發(fā)光二極管LED的矩陣。 在驅動點陣時,雖然具有專用的點陣驅動芯片,如MAX7219,但是該芯片價格比較高,所以應用并沒有很普遍。而74HC595和74HC138的組合來驅動點陣應用卻非常廣泛。
單片機的GPIO口驅動能力有限,不能直接驅動較大功率的負載,如果負載的功率較大必須要考慮采用驅動功率器件的方式,比如說三極管、MOS管以及其他的專用驅動芯片。下面結合幾個典型的例子來介紹一下如何提高單片機的驅動能力。
單片機和嵌入式,其實沒有什么標準的定義來區(qū)分他們,對于進行過單片機和嵌入式開發(fā)的開發(fā)者來說,都有他們自己的定義,接下來,就談談這兩個概念的深入理解。
算法(Algorithm)指計算機解題的基本思想方法和步驟。算法的描述是對要解決一個問題或要完成一項任務所采取的方法和步驟的描述,包括需要什么數(shù)據(jù)(輸入什么數(shù)據(jù)、輸出什么結果)、采用什么結構、使用什么語句以及如何安排這些語句等。通常使用自然語言、結構化流程圖、偽代碼等來描述算法。
很久之前就聽說st出了一個新版本的庫,用于代替原來的標準庫,非常好奇,但是一直沒有機會去體驗。這次借著做畢設的機會,嘗試著切換到新庫。官網(wǎng)介紹說,hal是一層硬件的抽象,看到這里,我非常激動,看來st終于意識到原來標準庫的問題了,原來的標準庫非常依賴于具體硬件細節(jié),很難體現(xiàn)出使用庫的優(yōu)勢,而且很難移植。同時我也非常好奇,st到底是如何把不同系列mcu的操作給封裝起來的,是不是足夠抽象,方便移植。
今天和客戶談技術需求的時候,談到了數(shù)據(jù)的有效性,客戶要求任何寫參數(shù)的數(shù)據(jù)都必須進行校驗,校驗算法可以自定義、也可以遵循常用的算法。校驗的目的,是為了防止誤操作時刻保證數(shù)據(jù)的有效性。今天和大家分享一下幾種常用的校驗算法。
單片機是一種可編程器件,單片機的出現(xiàn)使硬件設計變得更為簡單,產品的功能也更強大,而程序就是單片機的靈魂。 目前功能稍微復雜一點的電子產品,都是以單片機為核心,再加以不通的外設電路實現(xiàn)不通的功能需求。 單片機的編程可以通過匯編語言和C語言來實現(xiàn)。