91在线观看视频-91在线观看视频-91在线观看免费视频-91在线观看免费-欧美第二页-欧美第1页

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

AutodeskEAGLE使用教程

454398 ? 來源:工程師吳畏 ? 2019-07-30 09:44 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

開始使用Autodesk EAGLE的基本工具,并學習如何繪制簡單的原理圖。

EAGLE有一個原因,首先是Cadsoft EAGLE,現在是Autodesk EAGLE繼續用于各個級別的教育,從初學DIY愛好者到實施EAGLE的專業設計師,再到復雜的高要求項目。它價格實惠,易于使用,已經在市場上使用,使其成為大多數項目的首選項目。

在本教程中,我將介紹如何開始使用和基本工具用于繪制簡單的原理圖。我希望你會發現本教程很有用。

入門

EAGLE的首次使用者將受到歡迎相當令人困惑 Eagle Control Panel 。您可能期望看到直接原理圖方法,但不,這不是一個非常適合初學者的應用程序(但它確實非常有價值,所以請繼續關注)。

AutodeskEAGLE使用教程

Eagle控制面板

我發現最新版本(9.4)比一些舊版本更容易用作啟動器。

首先轉到檔案》 新》 項目。應該出現一個新項目。你可以給它一個名字,但我選擇不這樣做。

現在轉到文件》 新》 原理圖。這將在當前打開的項目中創建一個新的原理圖。

你會看到另一個不太直觀的窗口,其中看似沒有開始繪制原理圖的方法。您可能已經點擊了添加零件工具,只是被一個沒有顯示要添加的組件的窗口打招呼,并且可能嘗試了另一種方式,就像我剛開始學習時那樣。

在早期版本中,這更復雜,但現在您只需要單擊打開庫管理器按鈕并轉到可用選項卡。

您可以選擇下載所有可用的庫,但如果您不想等待412(截至2019年5月)庫下載,我建議您通過 SparkFun 《搜索庫/b》以及庫 rcl ,線性,晶體管-et ,晶體管-npn ,晶體管-pnp 和晶體管功率,均為lbr格式。

SparkFun的庫很容易成為擺弄Arduinos,Raspberry Pi智能家居系統和大多數涉及微控制器的愛好電子產品的最有用的庫。

在EAGLE中繪圖

我們終于準備開始繪畫了!讓我們為一個ATMega328P繪制一個簡單的環境,這是Arduino UNO的大腦。

我通常首先通過添加所需的組件來繪制原理圖。

注意:不僅要注意組件名稱和符號,還要選擇PCB布局! 例如,您可能正確選擇了16MHz無源晶體,但是當您真正需要通孔晶體時,您選擇其布局為SMD。另外,要注意引腳間距。這在現在無關緊要,但在將原理圖設計轉移到BRD文件時會很重要。

繪制DIYduino原理圖

我們首先繪制DIYduino原理圖,簡單,簡單的ATMega328P環境。

為此,將以下部分添加到原理圖表中:

1x ATMEGA328P_PDIP

1x CRYSTAL-16MHZPTH-HC49US

1x LED5MM

1x RESISTORAXIAL-0.3

1x 1KOHM-HORIZ-1/4W-1%(1KOHM)

1x 0.1UF-KIT-EZ-50V-20%

2x 22PF-PTH-2.54MM-200V-5%

1x 5V

5x GND

我們開始通過連接電源軌。

將5V電源符號放在電源引腳(VCC)上方。

選擇工具 NET。

用光標逼近引腳周圍的小圓圈,單擊VCC,然后單擊5V符號。

注意網,線,線,無論你想叫什么,都與我們所說的完全相反生和連接?我們需要刪除它。選擇刪除工具,然后單擊所有網絡以刪除它們。

你可以改變方向右鍵單擊鼠標即可進行轉彎。再次選擇NET工具,然后單擊鼠標右鍵。您將看到網絡轉向另一個方向。

恭喜!建立了第一個連接。

如果繪圖原理圖等同于駕駛汽車,這相當于左右轉彎。一旦你學會它,它是必不可少的,而且非常直觀。

AVCC是內部模數轉換器的電源引腳,AREF是其內部模擬參考電壓輸入,我們將所有這些引線都連接到電源網。

現在將地連接到兩個接地引腳,并將100nF電容放在地和VCC之間?找不到一個?這是我們之前添加的0.1uF,當然!

要記住的提示

專業提示#1:如果將另一個組件添加到現有網絡,請嘗試連接到現有的聯結,以使您的原理圖無雜亂。它們更容易以這種方式閱讀并且看起來很整潔。

PRO TIP#2:在任何地方放置單獨的GND符號。 GND符號會更改連接到GND的網絡的名稱,因此程序會將連接到GND符號的所有組件視為單個大網絡的一部分。這也減少了混亂,使事情看起來整潔和專業。

其他EAGLE項目

如何制作印刷電路板

如何設計PCB

如何使用Autodesk EAGLE設計自定義組件

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Autodesk
    +關注

    關注

    0

    文章

    22

    瀏覽量

    11258
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    XR空間音頻革命:蘋果、三星推出新技術,ASAF成Vision Pro最佳搭檔

    (電子發燒友網綜合報道)隨著技術的不斷進步,空間音頻標準正處于持續進化之中,眾多科技巨頭如蘋果、三星和谷歌等都在積極布局這一領域。 ? 在WWDC25大會上,蘋果推出了新的空間音頻(Spatial Audio)格式:Apple Spatial Audio Format(ASAF,蘋果空間音頻格式),可以用來打造真正沉浸式的音頻體驗。 ? ASAF 通過確保使用聲學提示來渲染音頻,從而實現真正外化的音頻體驗。它由新的高精度元數據、線性 PCM 以及蘋果平臺內置的強大空間渲染器組成。 ?
    的頭像 發表于 07-20 00:11 ?661次閱讀

    OpenAI發布新智能體!實現在線購物和創建PPT演示文稿

    電子發燒友原創 章鷹 7月17日,美國OpenAI公司為其聊天機器人ChatGPT推出了一款人工智能體,可以完成復雜的任務,這家微軟支持的人工智能初創公司希望在AI競賽中領先于競爭對手。 OpenAI的總部位于美國舊金山,這家公司在自主運行AI機器人這一大熱領域推出了其最新產品, 這是一款能夠讓用戶自動執行在線購物等任務并且能夠創建電子表格和PowerPoint演示文稿的智能體。 智能體被認為是助手的進化——已經受到科技界的廣泛歡迎,其中包括微軟、Sale
    的頭像 發表于 07-20 00:05 ?4260次閱讀
    OpenAI發布新智能體!實現在線購物和創建PPT演示文稿

    從良率突破到成本優化:PLP解決方案如何改寫半導體封裝規則

    電子發燒友網綜合報道 近日,Nordson Electronics Solutions與Powertech Technology, Inc.(PTI)聯合開發的面板級封裝(PLP)解決方案,以流體點膠系統的技術革新為切入點,重塑了半導體封裝的工藝范式與產業邏輯。 ? 這種基于高精度流體控制的創新方案,不僅突破了傳統封裝在良率、效率與可靠性層面的技術瓶頸,更通過面板級制造的規模效應,推動半導體封裝向高集成、低成本、低功耗的方向深度變革,其影響已延伸至產業鏈各環節的技術路徑與市場格局。
    的頭像 發表于 07-20 00:04 ?960次閱讀

    “諾基亞”推新款功能機,搭載DeepSeek AI助手

    電子發燒友網綜合報道?最近諾基亞在京東自營旗艦店推出了兩款帶有AI功能的手機,HMD101?4G?和HMD102?4G,售價分別為149元和169元,102相比101增加了攝像頭。 ? HMD101?4G?和HMD102?4G上沒有帶有諾基亞的Logo,而是使用了HMD品牌,官方宣稱采用諾基亞手機制造工藝與測試標準。通過主鍵30萬次按壓、耳機接口插拔3000次、USB插拔1萬次、滾筒測試200圈、-30℃~70℃24小時冷熱沖擊等測試。 ? 來源:諾基亞手機京東自營旗艦店 ? 在介紹頁面中,這兩款手機面向長輩、
    的頭像 發表于 07-20 00:04 ?1714次閱讀
    “諾基亞”推新款功能機,搭載DeepSeek AI助手

    突破三大技術瓶頸!這家企業讓鐵鉻液流電池走向商業化

    電子發燒友網綜合報道 在全球能源轉型的關鍵時期,新型儲能技術正成為推動能源綠色低碳轉型的重要支撐。《“十四五”新型儲能發展實施方案》明確提出,到2025年,新型儲能要由商業化初期步入規模化發展階段。在這樣的背景下,鐵鉻液流電池憑借超長循環壽命、本質安全、成本優勢及環境友好等特性,成為滿足新型電力系統長時儲能需求的核心技術之一。 ? 與其他儲能技術相比,鐵鉻液流電池在充放電過程中不涉及物相變化,這一特性使其循環
    的頭像 發表于 07-20 00:03 ?4662次閱讀

    deepin亮相2025 RISC-V中國峰會,展現開源生態無限可能

    ? 2025 年 7 月 19 日,為期四天的第五屆 RISC-V 中國峰會在上海張江科學會堂圓滿落幕。本次峰會匯聚了全球 RISC-V 領域的頂尖企業、研究機構和開源社區,共同探討?RISC-V 技術的創新與應用。 作為國內領先的桌面操作系統社區,deepin 深度參與了此次盛會,通過一系列硬核展示和互動活動,全面彰顯了其在 RISC-V 生態建設中的重要貢獻和技術實力。 無約束的自由展示:流暢體驗最新桌面系統 在峰會現場,deepin-ports SIG 為與會者帶來了前所未有的自由體驗。
    的頭像 發表于 07-19 17:35 ?129次閱讀
    deepin亮相2025 RISC-V中國峰會,展現開源生態無限可能

    中微愛芯2K FLASH ROM的AD型8位微控制器代理供應

    AiP8F102G 2K FLASH ROM的AD型8位微控制器 AiP8F102G是一塊8位的單片機電路,主要應用于為家電產品提供高抗干擾性能解決方案。 主要特點 ? 存儲器配置 ? FLASH ROM 空間:2K * 16 位。 ? RAM 空間:128字節。 ? 8層堆棧緩存器 ? 4個中斷源 ? 3個內部中斷源:T0、TC0、ADC ? 1個外部中斷源:INT0 ? I/O引腳配置 ? 輸入輸出雙向端口:P0、P4、P5。 ? 具有喚醒功能的端口:P0電平觸發 ? 內置上拉電阻端口:P0、P4、P5。 ? 外部中斷引腳:P0.0 ? ADC輸入引腳:AIN0~AIN4,AIN6,AIN7 ? ADC外部基準輸入P40 ? FCPU(指令周期) ? Fcpu=Fosc/4、Fosc/8、Fosc/16 ? 強大的指令系統 ? 指令長度為1個字 ? 大部分指令只需要一個時鐘周期 ? 跳轉指令JMP可在整個ROM區執行 ? 查表指令MOVC可尋址整個ROM區 ? 1個8位定時/計數器、一個可配置8位/16位定時器 ? T0:基本定時器 ? TC0:8位/16位自動裝載定時器/計 數器/PWM/ Buzzer 輸出。 ? 單通道8位PWM輸出 單通道2kHz/4kHz蜂鳴器輸出 ? 內置看門狗定時器,其時鐘源由內部低速RC振蕩器提供(16kHz @3V,32kHz @5V) ? 7通道12位ADC ? ADC-VREF ? ADC基準(VDD/4V/3V/2V) ? ADC自校準功能 ? 4種時鐘系統 ? 內部高速RC:16MHz@VDD=5V ? 內部低速RC:32kHz@VDD=5V ? 外部高速晶振:16MHz ? 外部低速晶振:32kHz ? 4種工作模式 ? 普通模式:高、低速時鐘同時工作。 ? 低速模式:只有低速時鐘工作。 ? 睡眠模式:高、低速時鐘都停止工作。 ? 綠色模式:由定時器周期性的喚醒。 ? 封裝形式 ? SOP20/SOP18/SOP16/SOP14/SOP8 ? DIP20/DIP18/DIP16/DIP14 ? TSSOP20 ? QFN16/ QFN20 ………………………………………………………………………………… 中微愛芯原廠代理,支持終端工廠,為客戶提供樣品以及相關技術咨詢 如需更多系列型號,歡迎聯系咨詢。 深圳市芯天電子有限公司馬先生:15377714475
    發表于 07-19 17:11

    固定頻率2MHZ高效率5.5V/2A同步降壓轉換器支持1.2V GPIO

    概述:PC1021是一款高效同步降壓DC/DC轉換器,輸出電流能力為2A,可調節輸出電壓。輸入電源電壓范圍為2.5V至5.5V。采用自適應關斷時間峰值電流控制,該設備的效率可達95%。該設備在中等或重負載下以準固定2MHz脈寬調制(PWM)模式運行,但在輕負載下使用跳脈沖模式進入省電模式(PSM)。PSM工作靜態電流非常低,通常為48μA,非常適合電池供電應用以延長電池壽命。盡管靜態電流如此之低,但對大負載變化的瞬態響應仍然出色。設備關機電流小于0.8μA。PC1021通過外部電阻分壓器提供可調節的輸出電壓,能夠以100%占空比進行低壓差操作。其他功能包括內部軟啟動功能以限制浪涌電流、過流和熱關斷保護、使能輸入(EN)、輸入欠壓鎖定(UVLO)保護以及電源良好(PG)輸出。PC1021提供綠色SOT-563-6和UTDFN-1.6×1.6-6CL封裝。特性:● 輸入電壓范圍:2.5V 至 5.5V● 可調輸出電壓:0.6V 至 VIN● 效率高達 95%● 低 RDSON 開關(90mΩ/62mΩ)● PC1021A:省電模式● PC1021B:強制 PWM 模式● PC1021PA:省電模式和 PG 引腳● PC1021PB:強制 PWM 模式和 PG 引腳● 工作靜態電流:48μA(典型值)● 低dropout操作時支持 100% 占空比● PWM 開關頻率:2MHz● 支持 1.2V GPIO● 活動輸出放電● 過流保護● 熱關斷保護● 輸入欠壓鎖定(UVLO)保護● 提供綠色 SOT-563-6 和 UTDFN-1.6×1.6-6CL 封裝應用領域:智能手機通用電源供應器機頂盒網絡攝像頭無線路由器硬盤驅動器
    發表于 07-19 16:25

    PC1032微功率5.5V/3A高效同步降壓轉換器具有自適應關斷功能

    概述:PC1032是一款高效且體積小巧的同步降壓轉換器,適用于低輸入電壓應用。它是緊湊設計的理想解決方案。其2.5V至5.5V的輸入電壓范圍適用于幾乎所有電池供電的應用。在中等至重負載范圍內,它以1.5MHz(典型值)的PWM模式運行,并在輕負載時自動進入或退出省電模式(PSM),以保持高效率。關機時,靜態電流為0.32μA(典型值)。該器件基于自適應關斷時間架構,但仍允許使用寬范圍的輸出電容器。這種靈活性使其成為系統電源軌供應的良好選擇。自適應關斷時間架構提供了出色的輸出電壓精度和卓越的負載瞬態響應。只需外部前饋補償電容即可獲得更快的響應。PC1032采用綠色SOT-563-6封裝。 特性● 支持1.2V GPIO● 輸入電壓范圍為2.5V至5.5V● 可調節輸出電壓從0.6V到輸入電壓● 自適應關斷時間架構● 效率達到95%● 內部開關低RDSON:53毫歐/28毫歐● 靜態電流為48微安(典型值)● 輕載時的省電模式● 具有100%占空比的低壓差● 電源良好輸出● 快速負載響應● 內置軟啟動和預偏置啟動● 關機時放電輸出● 打嗝模式OCP/短路保護● 熱關斷保護● 提供綠色SOT-563-6封裝應用領域:工業和商業應用,通用負載點電源,便攜式電池供電應用,無線路由器,固態硬盤,機頂盒,多功能打印機。
    發表于 07-19 16:18

    【VisionFive 2單板計算機試用體驗】3、開源大語言模型部署

    1、ollama平臺搭建 ollama可以快速地部署開源大模型,網址為https://ollama.com, 試用該平臺,可以在多平臺上部署 Deepseek-R1, Qwen3, Llama, Gemma等開源大模型。當然,一些閉源的(類似chatgpt, gemini)是不支持部署的。如下圖: 在端側部署大模型,個人認為最大的好處:是可以避免因文本或圖片上傳而造成的信息泄露,因為一切文本輸入和推理都可以離線進行。 我們進到其github,發現其并沒有提供risc-v架構的編譯產物。 所以,我們需要下載源碼來編譯ollama。 Git clone https://github.com/ollama/ollama.git 需要先安裝一下編譯需要的庫: sudo apt install g++ build-essential cmake 解壓ollama源碼之后,按照ollama github里的build from source指導,進行編譯,編譯步驟如下圖所示: 在調用go run . serve發現抱錯:go指令不存在,這是因為VisionFive2板卡沒有安裝go,下面我們來安裝一下go 2、go安裝 進到go的官網https://go.dev/dl/,按照慣例,我們要找一下是否有risc-v的編譯產物,如果沒有的話,又得源碼編譯了。 不過,好在我們發現了已經有release的risc-v的編譯產物了,如下圖,把紅框內的文件下載到visionfive2的板卡上。 解壓文件,看到在go/bin/路徑下,有一個go的可執行文件。 我們要把這個go可執行文件添加到環境變量,具體做法是:在~/.bashrc文件最后添加下圖所示的內容 然后 source ~/.bashrc 執行 go version 檢查一下,go是否能夠正常運行。這里可以看到go的版本,以及編譯的系統和芯片架構。 3、拉取/運行大語言模型 ollama的使用方法和docker很像。 返回到ollama的編譯路徑,找到ollama可執行文件 執行 ./ollama run qwen3:0.6b 可以看到有個進度條在拉取0.6B的Qwen模型。當然也可以拉去deepseek的模型,如下: ./ollama run deepseek-r1:1.5b 可以選擇不同的參數量版本,參數量越大,對算力的要求越高,模型表現越好。 我這里就使用最小的Qwen0.5b來試一下: 拉取完畢之后,就可以在命令行輸入你想問的問題: 我讓它幫我寫一首詩,指定了主題和要表現的內容: qwen0.6b的表現:這個參數量的表現只能說一般。“聽蛙飛”,青蛙怎么會飛呢。 visionfive2的表現: 執行 ./ollama ps 可以看到當前正在運行的大模型,以及運行方式:CPU。 如果有顯卡的話,這里會顯示GPU。Visionfive2的gpu應該是不支持推理的,所以這里用的是CPU。實測下來,運行0.6B的模型,自回歸的速度大概是每2秒一個漢字。
    發表于 07-19 15:45

    工控儀表液晶驅動LCD斷碼屏驅動芯片VK1056

    產品型號:VK1056 產品品牌:VINKA永嘉微電 封裝形式:SOP24/SSOP24/DICE 產品年份:新年份 VK1056概述:VK1056是一個點陣式存儲映射的LCD驅動器,可支持最大56點(14SEGx4COM)的LCD屏,也支持2COM和3COM的LCD屏。單片機可通過三條通信線配置顯示參數和發送顯示數據,也可通過指令進入省電模式。Z178+146 特點: ? 工作電壓 2.4-5.2V ? 內置256 kHz RC振蕩器(上電默認) ? 偏置電壓(BIAS)可配置為1/2、1/3 ? COM周期(DUTY)可配置為1/2、1/3、1/4 ? 內置顯示RAM為14x4位 ? 省電模式(通過關顯示和關振蕩器進入) ? Q.2.8.8.5.2.1.8.9.6.6 ? 3線串行接口 ? VLCD腳調節LCD電壓 ? 軟件配置LCD顯示參數 ? 寫命令和寫數據2種命令格式 ? 寫顯示數據地址自動加1 ? VLCD腳提供LCD驅動電壓(<VDD) ? 封裝SOP24 (VK1056B)(300mil) (15.4mm x 7.5mm PP=1.27mm) SSOP24(VK1056C)(208mil) (8.2mm x 5.3mm PP=0.65mm) DICE —————————————————————————————————————————————————— RAM映射LCD控制器和驅動器系列: VK1024B 2.4V~5.2V 6seg4com 63 6*2 偏置電壓1/2 1/3 S0P-16 VK1056B 2.4V~5.2V 14seg4com 143 14*2 偏置電壓1/2 1/3 SOP-24/SSOP-24 VK1072B 2.4V~5.2V 18seg4com 183 18*2 偏置電壓1/2 1/3 SOP-28
    發表于 07-19 15:12

    隔離放大器:電子世界的&quot;翻譯官&quot;與&quot;安全衛士&quot;

    在電子設備內部,總在上演著驚心動魄的"諜戰大戲"。電流與信號如同穿梭往來的特工,有的攜帶重要情報需要精準傳遞,有的暗藏致命威脅必須嚴密隔離。在這片看不見硝煙的戰場上,一位身懷絕技的"特工"正默默守護著電子世界的安全秩序——它就是隔離放大器。這個看似普通的電子元件,實際上是現代科技設備中不可或缺的"安全衛士"和"語言專家"。
    的頭像 發表于 07-19 14:49 ?98次閱讀

    2025中國聯通合作伙伴大會亮點:中興通訊總裁徐子陽:智聯共生 數實融合

    7 月18-19日,以“向實同行,共創融合新生態”為主題的2025中國聯通合作伙伴大會在上海舉行,中興通訊總裁徐子陽受邀出席大會主論壇并發表《智聯共生,數實融合》的主題演講,與業界嘉賓深入探討算網智融合的發展路徑,分享技術創新賦能實體經濟的應用實踐與成果。 徐子陽指出,AI大模型正在引領新一輪數智浪潮,以DeepSeek為代表的高效低成本開源大模型,通過算力普惠與AI平權,加速全球智能化進程的步伐。 對此,中興通訊攜手伙伴圍繞連接升
    的頭像 發表于 07-19 14:15 ?325次閱讀
    2025中國聯通合作伙伴大會亮點:中興通訊總裁徐子陽:智聯共生 數實融合

    人工智能驅動型網絡情報提供商Vehere宣布推出v1.8.1

    Vehere宣布推出v1.8.1,為安全分析師提供更精準的檢測、更快的響應和更智能的工作流程 ?領先的人工智能驅動型網絡情報提供商Vehere,已正式推出其最新的NDR固件 v1.8.1 。該版本采用現代化、直觀的用戶界面,為安全團隊帶來更高運營效率。 它專為任務關鍵型環境而設計,反映了Vehere的核心理念:為防御者提供降低復雜性并加速檢測和響應的工具。 新功能及其重要性: 簡潔且現代化的UI界面 :簡化工作流程,減少復雜儀表板的操作時間 更智能的篩選器
    的頭像 發表于 07-19 14:08 ?109次閱讀

    【微五科技CF5010RBT60開發板試用體驗】+A/D數據采集

    從資料可以看出,CF5010RBT60能通過10個A/D檢測通道,見圖1所示。 圖1 檢測通道與引腳關系 要實現多通道的數據采集,我們可以從例程中來獲取經驗。 例如在例程中就提供這樣一個函數,它將相應的基本功能都涵蓋到了其中,其內容為: void demo() { //串口4調試使能,SDK默認此串口為調試串口 #if (defined(UART4_TEST_EN) && (0 != UART4_TEST_EN)) uart4_demo(); #endif //開發板LED測試 #if (defined(LED_TEST_EN) && (0 != LED_TEST_EN)) //#if (defined(LED_TEST_EN)) led_demo(); #endif //USART測試 #if (defined(USART_TEST_EN) && (0 != USART_TEST_EN)) usart_demo(); #endif //ADC_DMA測試 #if defined(ADC_DMA_TEST_EN) adc_dma_demo(); #endif //定時器測試 #if (defined(TMR_TEST_EN) && (0 != TMR_TEST_EN)) tmr_demo(); #endif //GPIO外部中斷測試 #if (defined(GPIO_TEST_EN) && (0 != GPIO_TEST_EN)) gpio_exit_demo(); #endif //FLASH讀寫測試 #if (defined(FLASH_TEST_EN) && (0 != FLASH_TEST_EN)) flash_demo(); #endif //PWM測試 #if (defined(PWM_TEST_EN) && (0 != PWM_TEST_EN)) pwm_demo(); #endif //PWM_DMA測試 #if (defined(PWM_DMA_TEST_EN) && (0 != PWM_DMA_TEST_EN)) pwm_dma_demo(); #endif //USART1 DMA測試 #if (defined(USART1_DMA_TEST_EN) && (0 != USART1_DMA_TEST_EN)) usart_dma_demo(); #endif //USART1 DMA測試 #if (defined(ATMR_TEST_EN) && (0 != ATMR_TEST_EN)) atmr8_demo(); #endif } 按該函數的設計思想,當相應進行某種功能的測試時只要將其使能即可。但在實際測試時,確因異常而無法通過編譯。 為此,只好將所需功能的函數放置到主程序的文件中來使用。 以多通道數據檢測為例,經測試可完成編譯的的文件內容為: #include <stdio.h> #include \"main.h\" #defineDEBUG_PRINTF_EN1 #define ADC1_USE_CHANNEL_NUM5u//當前使用的ADC通道數,即ADC轉換序列長度 #define ADC1_DMA_DATA_NUM(ADC1_USE_CHANNEL_NUM)//DMA傳輸數據數,此處和ADC通道序列長度一致 Dma_Handle_Type adc_dma1_ch1_hd; //dma1通道1句柄 uint8_tadc_dma_fns = 0; //adc傳輸完成標志 uint16_t ad_dma_data[11] = {0};//11路通道的AD數值 //DMA中斷函數 void __attribute__((interrupt(\"SiFive-CLIC-preemptible\"))) Dma1_Channel1_Irq_Lc11(void) { Dma_Global_IRQHandler(&adc_dma1_ch1_hd); } //DMA發送完成中斷回調函數 void adc_dma_trsf_fns_cb(struct __Dma_Handle_Type *dma_hdl) { //cfprintf(\"tr ok\\\\n\"); adc_dma_fns = 1; } //DMA發送一半中斷回調函數 void adc_dma_trsf_half_cb(struct __Dma_Handle_Type *dma_hdl) { //cfprintf(\"tr half\\\\n\"); } //DMA錯誤中斷回調函數 void adc_dma_trsf_err_cb(struct __Dma_Handle_Type *dma_hdl) { cfprintf(\"tr err\\\\n\"); adc_dma_init(); } void adc_dma_init(void) { RCC_Peripheral_ClockEn(DMA1CLC); //開啟dma1時鐘 adc_dma1_ch1_hd.dma_base = DMA1; adc_dma1_ch1_hd.dma_channel = DMA1_Channel1;//使用通道1,詳細的DMA通道和外設事件對應關系,在參考手冊7.22.3.7 DMA 請求映像 adc_dma1_ch1_hd.half_transfer_complete_Callback = NULL;//adc_dma_trsf_half_cb; adc_dma1_ch1_hd.transfer_complete_Callback = adc_dma_trsf_fns_cb; adc_dma1_ch1_hd.transfer_error_Callback = adc_dma_trsf_err_cb; Dma_Init_Parameter cfg; cfg.direction = DMA_PERIPH_TO_MEMORY; cfg.memory_addr = (uint32_t)ad_dma_data; cfg.memory_data_size = DMA_MDATAALIGN_HALFWORD; cfg.memory_inc = DMA_MINC_ENABLE; cfg.number = ADC1_DMA_DATA_NUM; cfg.periph_addr = (uint32_t)&ADC1->DR; cfg.periph_data_size = DMA_PDATAALIGN_HALFWORD; cfg.periph_inc = DMA_PINC_DISABLE; cfg.priority = DMA_PRIORITY_HIGH; Dma_Init(&adc_dma1_ch1_hd,&cfg);//初始化dma Dma_Interupt_Config int_cfg; int_cfg.half_transfer_it = DMA_IT_HALF_TRANSFER; int_cfg.transfer_complete_it = DMA_IT_TRANSFER_COMPLETE; int_cfg.transfer_error_it = DMA_IT_TRANSFER_ERROR; Dma_Interrupt_Enable(&adc_dma1_ch1_hd,&int_cfg); Clic_Interrupt_Enable(INT_ID_DMA1_CHAN1); Dma_Circulation_Enable(&adc_dma1_ch1_hd);//循環傳輸 Dma_Start(&adc_dma1_ch1_hd);//開啟dma通道1 } void usr_adc_init(void) { adc_dma_init();//adc dma初始化 //開啟ADC時鐘 RCC_Peripheral_ClockEn(ADCCLC); cfprintf(\"adinit\\\\n\"); ADC_InitTypeDef cfg; ADC_StructInit(&cfg); cfg.ADC_ContinuousConvMode = DISABLE; cfg.ADC_DataAlign = ADC_DataAlign_Right; cfg.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None; cfg.ADC_Mode = ADC_Mode_Independent; cfg.ADC_NbrOfChannel = ADC1_USE_CHANNEL_NUM; cfg.ADC_ScanConvMode = ENABLE; ADC_Init(ADC1,&cfg);//初始化ADC //配置ADC通道 ADC_RegularChannelConfig(ADC1,ADC_Channel_0,1,ADC_SampleTime_13Cycles5); ADC_RegularChannelConfig(ADC1,ADC_Channel_1,2,ADC_SampleTime_13Cycles5); ADC_RegularChannelConfig(ADC1,ADC_Channel_2,3,ADC_SampleTime_13Cycles5); ADC_RegularChannelConfig(ADC1,ADC_Channel_3,4,ADC_SampleTime_13Cycles5); ADC_RegularChannelConfig(ADC1,ADC_Channel_4,5,ADC_SampleTime_13Cycles5); ADC_TempSensorVrefintCmd(ENABLE); ADC_DMACmd(ADC1,ENABLE);//使能ADC的DMA觸發 ADC_ClearFlag(ADC1,ADC_FLAG_EOC); ADC_Cmd(ADC1,ENABLE);//使能ADC //ADC校準 ADC_ResetCalibration(ADC1); while(RESET != ADC_GetResetCalibrationStatus(ADC1)); cfprintf(\"adinit1,%08X\\\\n\",ADC1->CR2); ADC_StartCalibration(ADC1); while(RESET != ADC_GetCalibrationStatus(ADC1)); } void usr_adc_test(void) { ADC_Cmd(ADC1,ENABLE); while(0 == adc_dma_fns); cfprintf(\"ad_ch1:%u\\\\n\",ad_dma_data[0]); cfprintf(\"ad_ch2:%u\\\\n\",ad_dma_data[1]); cfprintf(\"ad_ch3:%u\\\\n\",ad_dma_data[2]); cfprintf(\"ad_ch4:%u\\\\n\",ad_dma_data[3]); cfprintf(\"ad_ch5:%u\\\\n\",ad_dma_data[4]); } void adc_dma_demo(void) { cfprintf(\"adc dma demo\\\\n\"); usr_adc_init(); while(1) { usr_adc_test(); cf_delay_ms(1000); } } void main(void) { #if defined(DEBUG_PRINTF_EN) debug_uart4_init(); cfprintf(\"SYS_FREQ = 0d%d; AHB_FREQ = 0d%d; \\\\n\", SYS_FREQ, AHB_FREQ); cfprintf(\"APB1_FREQ = 0d%d; APB2_FREQ = 0d%d;.\\\\n\", APB1_FREQ, APB2_FREQ); cfprintf(\"cal:%u\\\\r\\\\n\",cstatus); cfprintf(\"Start user program...\\\\r\\\\n\"); #endif adc_dma_demo(); } 經編譯,其結果如圖2所示。 圖2 編譯結果 經此探索,要對函數 demo()中所提供的功能進行測試將不再是難題。 盡管通過編譯,可以得到所需的*.elf和*.hex文件,但在編譯過程中,想同時生成*.bin文件的要求一直沒有實現。 否則,就可以嘗試一下升級下載的效果了。
    發表于 07-19 12:48
    主站蜘蛛池模板: 国产主播一区二区 | 9色网站 | 人人乳乳香蕉大免费 | 久久国产伦三级理电影 | 久热精品视频 | 天天操天天干天天舔 | 午夜神马福利影院 | 亚洲黄色天堂 | 欧美 在线播放 | 国产手机在线观看视频 | 婷婷操 | 九九九色 | 九九热精品在线视频 | 免费黄视频在线观看 | 深夜动态福利gif动态进 | 天天色天天射天天干 | 免费精品视频在线 | 久久澡人人澡狠狠澡 | 亚洲一区二区三区免费 | 丁香五月缴情在线 | 国产女人视频免费观看 | 奇米小说 | 天天爽夜夜爽人人爽曰喷水 | 黄频网站免费大全在线观看 | 免费在线成人 | 久草五月| 特黄特色的大片观看免费视频 | 六月婷婷激情 | 五月欧美 | 四虎永久地址4hu紧急入口 | 性xxxxfreexxxxx国产 | 天天操天天透 | 美女网站黄在线看 | 天天看天天操 | 丁香花在线电影小说观看 | 国产色综合天天综合网 | 手机福利在线观看 | 嫩草影院播放地址一二三 | 国产精品大全 | 狠狠色狠色综合曰曰 | 天天躁狠狠躁夜夜躁 |