上位機圖像處理和嵌入式模塊部署(mcu之芯片選擇)

【?聲明:版權所有,歡迎轉載,請勿用于商業用途。 聯系信箱:feixiaoxing @163.com】

? ? ? ? 目前市面上的mcu很多,有國產的,有進口的,總之種類很多。以stm32為例,這里面又包括了stm32f1、stm32f4、stm32f7。而且,很多時候,電商網站上面的開發板種類很多,有的資料很多,有的只提供基本程序,那這個時候應該怎么選擇呢。結合我自己的經驗,給大家參考一下。

1、選擇高性價比的mcu

? ? ? ? 很多同學上來的時候,野心很大,恨不得短時間內把所有的mcu知識點都掌握。有了這個想法,買板子的時候直接追求大而全,其實是沒有必要的。我們買過來的東西,如果沒有經過學習、思考,變成自己的東西,買了再多也是無益。目前mcu這部分,stm32f103系列性價比最高,核心板+st-link v2加起來也就幾十塊,個人覺得用來入門是比較合適的。要說其他還需要買的,最多買一個usb轉ttl的模塊即可。

2、第一次編譯、下載很重要

? ? ? ? 和軟件直接在電腦上編譯、運行不一樣,mcu代碼不僅需要在x86 pc上面用keil編譯,還需要st-link v2下載到mcu開發板上面。因此,第一次編譯成功,對于建立開發者的信心很重要。在mcu上面,一般來說,第一個程序就是點燈程序,有點類似于學習編程語言里面的hello-world。編譯之后,就可以直接通過st-link v2下載了。有了這個做基礎,后續就好辦了。

3、下載的時候先erase一下

? ? ? ? 我們在下載程序之后,最好養成先erase,后program的習慣。因為mcu上面的存儲空間是flash,如果要對flash進行重新編程的話,最好先erase,再programe。這樣幾乎不會有什么編程失敗的問題。一般code、read only data都是放在flash里面,stack、global data、heap都是放在sram里面,這一點需要注意下的。

4、下載程序后手動復位開發板

? ? ? ? 很多同學第一次編程,會出現下載后,沒有反應的情況。其實,這個時候我們只需要按一下復位鍵,mcu就可以開始運行了。但是很多同學不知道這個操作,以為自己的程序有問題,殊不知只是因為自己沒有按下復位鍵,才導致mcu沒有按照新的程序來運行。

5、盡快調通串口

? ? ? ? 串口是mcu調試里面很重要的調試、通信方法。有了串口相當于我們知道mcu走到哪一步了,所以打通串口有著很重要的現實意義。此外,一般mcu帶有多個串口,后續其他串口還可以與上位機進行數據的交互通信。找到對應的tx、rx、gnd,這一點非常重要。

6、一定要掌握中斷的寫法

? ? ? ? mcu下面很多的程序都是while(1) + interrupt的寫法,所以我們需要的就是盡快寫一次中斷代碼。這個中斷可以是gpio的中斷,可以是定時中斷,甚至可以是uart中斷,只要是中斷就可以。如果是定時中斷,后續甚至可以以timer為驅動,配合狀態機進行應用開發。

7、慢慢掌握其他接口

? ? ? ? 有了上面做基礎,下面就可以慢慢學習其他接口了,比如說iic、iis、sdio、spi、usb和eth。同樣以spi為例,這個接口可以適配的模塊就更多,能實現哪些功能,很多時候取決于我們外接了哪些模塊,可以拿到哪些數據。

8、開始業務的開發

? ? ? ? 有了上面的開發做接觸,下面就開始業務的開發了。當然,這中間可能還會涉及到rtos、fatfs、lwip、lvgl,不過沒關系,本身用什么學什么的原則,后續就可以開始業務的開發了。簡單一點,可以做數據的采集;后續做一些模塊的轉發;最后慢慢做一些控制和識別的東西,這樣就算真正把mcu用起來了。

9、所有的相關mcu代碼都可以參考

? ? ? ? 我們買的開發板可能來源于一個人,但是其他家的程序我們也是可以參考的,無非就是改一下接口、改一下pin就行,這都問題不大。真的遇到問題了,反而是自己學習的機會。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/14283.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/14283.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/14283.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Flutter 中的 LicensePage 小部件:全面指南

Flutter 中的 LicensePage 小部件:全面指南 在軟件開發中,遵守開源許可證的要求是至關重要的。Flutter 提供了一個內置的 LicensePage 小部件,它用于展示應用中使用的所有開源庫的許可證信息。本文將為您提供一個全面的指南,幫助…

git commit 規范

在提交代碼時標識本次提交的屬性 feat: 新功能(feature) fix: 修補bug docs: 文檔(documentation) style: 格式(不影響代碼運行的變動) refactor: 重構(即不是新增功能,也不是修改b…

熱愛無解 少年萬丈光芒!首席藝人【彭禹錦】登陸第八季完美童模全球賽

2024年7月,一檔由IPA模特委員會創辦于2017年的王牌少兒模特大賽即將拉開全球總決賽的帷幕!作為家喻戶曉的國民賽事——完美童模曾6季榮獲CCTV央視新聞報道,以創意引領、美學引領、和兼具文化底蘊的賽事特色,收獲了全球百萬親子家庭的喜愛。20…

深度學習之基于Pytorch+Flask Web框架預測手寫數字

歡迎大家點贊、收藏、關注、評論啦 ,由于篇幅有限,只展示了部分核心代碼。 文章目錄 一項目簡介 二、功能三、系統四. 總結 一項目簡介 一、項目背景與意義 隨著人工智能和深度學習的快速發展,手寫數字識別已成為一個重要的應用領域。該項目…

Python 實現批量文件重命名工具

在現代軟件開發中,圖形用戶界面 (GUI) 工具的創建是一個常見需求。對于那些需要頻繁處理文件的任務,擁有一個簡便的 GUI 工具尤為重要。在這篇博客中,我們將介紹如何使用 wxPython 創建一個簡單的批量文件重命名工具。該工具可以選擇一個文件…

判斷子序列二刷

文章目錄 1、描述2、思路3、notes4、復雜度 1、描述 給定字符串 s 和 t &#xff0c;判斷 s 是否為 t 的子序列。 你可以認為 s 和 t 中僅包含英文小寫字母。字符串 t 可能會很長&#xff08;長度 ~ 500,000&#xff09;&#xff0c;而 s 是個短字符串&#xff08;長度 <1…

Web開發——HTMLCSS

1、概述 Web開發分前端開發和后端開發&#xff0c;前端開發負責展示數據&#xff0c;后端開發負責處理數據。 HTML&CSS是瀏覽器數據展示相關的內容。 1&#xff09;網頁的組成部分 文字、圖片、音頻、視頻、超鏈接、表格等等 2&#xff09;網頁背后的本質 程序員寫的前端…

重大活動網絡安全保障建設及運營指南

在當今高度數字化的社會中&#xff0c;各類重大活動如會議、展覽、賽事及慶典等正面臨著日益復雜和嚴峻的網絡安全威脅。這些威脅不限于網絡入侵或數據泄露&#xff0c;更涉及到對基礎設施、關鍵信息系統和公眾輿論的復雜攻擊&#xff0c;需要國際社會的密切合作和長期關注。因…

一張圖看懂大模型性價比:能力、價格、并發量全面PK

最近&#xff0c;國內云廠商的大模型掀起一場降價風暴。火山引擎、阿里云、百度云等紛紛宣布降價&#xff0c;部分模型價格降幅據稱高達99%&#xff0c;甚至還有些模型直接免費。 五花八門的降價話術&#xff0c;一眼望去遍地黃金。但事實真的如此嗎&#xff1f;今天我們就撥開…

統計信號處理基礎 習題解答10-2

題目 兩個隨機變量x和y&#xff0c;如果聯合PDF分解為&#xff1a; 那么稱他們為條件獨立的。在上式中z是條件隨機變量。 我們觀察 其中, , 是相互獨立的。證明和是條件獨立的。給出條件變量是A。和是無條件獨立么&#xff1f;也就是 成立么&#xff1f;為了回答這個問題&…

如何使用jmap工具生成堆內存快照

1、確保已安裝JDK&#xff1a; 首先&#xff0c;確保你的系統上安裝了Java Development Kit (JDK)。 2、找到Java進程的PID&#xff1a; 你需要知道你想要生成堆內存快照的Java進程的進程ID&#xff08;PID&#xff09;。你可以使用命令行工具如ps&#xff08;在Unix/Linux系…

Redis Cluster 集群搭建

1. 安裝 Redis sudo apt-get update sudo apt-get install redis-server2. 創建配置文件 為每個 Redis 實例創建獨立的配置文件和數據目錄&#xff1a; mkdir -p /usr/local/redis-cluster/{7000,7001,7002,7003,7004,7005}3. 配置文件內容 每個 Redis 實例的配置文件內容如…

秋招突擊——算法打卡——5/24——兩數之和

題目描述 實現代碼 ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {int addNumber 0;// 表示進位ListNode* res ListNode();ListNode* curNode res;while(l1 && l2){curNode.value (l1.value l2.value addNumber) % 10 addNumber (l1.value l2.value…

python3序列化模塊之pickle

官方文檔 簡介 pickle 是 Python 中用于對象序列化和反序列化的標準庫模塊。它可以將 Python 對象轉換為字節流,并將其保存到文件或通過網絡傳輸,在需要時再將其恢復為原來的 Python 對象。 模塊 pickle 實現了對一個 Python 對象結構的二進制序列化和反序列化。 “pickling…

如何快速增加外鏈?

要快速增加外鏈并不難&#xff0c;相信各位都知道&#xff0c;難的是快速增加外鏈且沒有風險&#xff0c;所以這時候GNB外鏈的重要性就出現了&#xff0c;這是一種自然的外鏈&#xff0c;何謂自然的外鏈&#xff0c;在谷歌的體系當中&#xff0c;自然外鏈指的就是其他網站資源給…

mysql 、oss 結合使用

以下是一個使用 Express、MySQL、OSS 和 axios 的 Node.js 示例。這個示例創建了一個 Express 服務器&#xff0c;該服務器有一個路由用于處理視頻上傳的請求。視頻文件首先被上傳到 OSS&#xff0c;然后視頻的 OSS URL 被存儲到 MySQL 數據庫。 首先&#xff0c;我們需要安裝必…

最大負載1kg!高度模塊化設計!大象機器人智能遙控操作機械臂組合myArm MC

引入 近年來&#xff0c;市面上涌現了許多類似于斯坦福大學的 Alopha 機器人項目&#xff0c;這些項目主要通過模仿人類的運動軌跡來進行學習&#xff0c;實現了仿人類的人工智能。Alopha 機器人通過先進的算法和傳感技術&#xff0c;能夠精確復制人類的動作&#xff0c;并從中…

【stm32】——使用HAL庫點燈

目錄 一、安裝STM32CubeMX 二、HAL庫點亮LED燈 1.STM32CubeMX創建項目 2.進入Keil編寫代碼 三、采用中斷控制LED燈的亮滅 1.創建項目 2.Keil中編寫代碼 四、Keil波形分析 總結 一、安裝STM32CubeMX 具體操作可以參考下面鏈接&#xff1a; 搭建STM32開發環境——STM32CubeMX&a…

用Python pynput庫捕捉每一次組合鍵的優雅舞步

哈嘍&#xff0c;大家好&#xff0c;我是木頭左&#xff01; 一、初識pynput&#xff1a;鍵盤與鼠標的監控利器 當談論計算機交互時&#xff0c;鍵盤和鼠標無疑是最常用的設備。無論是編寫代碼、瀏覽網頁還是玩游戲&#xff0c;都依賴于這些輸入設備與機器溝通。但在一些特殊的…