在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內(nèi)不再提示

一款UART外設

5CTi_cirmall ? 來源:電路設計技能 ? 作者:電路設計技能 ? 2020-11-19 09:44 ? 次閱讀

親愛的工程師朋友和喜愛電子的朋友,大家好,我是火舞青春,也是本期“來實戰(zhàn)”項目《串行數(shù)據(jù)采集儀》的執(zhí)行官。

嵌入式軟件這個行業(yè)涉及甚廣,從我們身邊的電視、冰箱、洗衣機,到我們的手機,再到交通、到醫(yī)療、軍事無處不在。

在項目的開發(fā)過程中,使用調(diào)試工具是必不可少的。

串口簡單靈活的特性常被工程師用作代碼的調(diào)試工具,它的另一個名字叫uart。

說到uart,相信很多工程師都熟透了,掌握一個uart,可以說是已經(jīng)邁進了嵌入式軟件的殿堂,所以uart也常被用作嵌入式入門的必備功課。

那既然都熟了,那為什么還拿出來說呢,帶著這樣的一個問題,跟著我一起深入的了解我們的這個項目,一起探討uart背后那些不為人知的故事。

目的意義;

在我們的開發(fā)測試中,uart通常扮演者信息輸出,人機交互和下載程序的功能,有些場景下可能有線的串口不是很方便或者不能實現(xiàn)信息的輸出,比如調(diào)平衡車,有線串口對這種遠距離的調(diào)試顯得有些力不足。有些場景或者我們根本不可以把數(shù)據(jù)直接讀出來,比如車廠,整車的CAN數(shù)據(jù)是汽車的血液,一些ECU的出廠前身體狀況,全靠采集can數(shù)據(jù)來診斷,即使整車有can數(shù)據(jù)的存儲功能,一些測試調(diào)試不一定能很方便的拿到,所以這個無線的數(shù)據(jù)采集儀就能派上用場,這就是我本次項目的主要意義。

本期內(nèi)容可以了解到以下幾個方面:

1、模塊化代碼的設計思路,開發(fā)思想和獨立模塊開發(fā)模型;

2、uart等串行板級通信的設計原理及其注意事項;

3、項目中常用的測試方法和測試手段;

4、通信協(xié)議的制定和協(xié)議棧的開發(fā);

項目簡介:

項目采用雙mcu-STM32F030C8T6和RF24L01無線模塊實現(xiàn)主從設備的上下行數(shù)據(jù)傳輸,在此基礎(chǔ)上增加與pc的通信和數(shù)據(jù)記錄功能,實現(xiàn)離線數(shù)據(jù)同步功能;

基礎(chǔ)功能:

1、實現(xiàn)雙mcu數(shù)據(jù)的上下行無線傳輸,波特率為115200;

2、實現(xiàn)主設備與pc機的通信,并實現(xiàn)uart調(diào)試功能;

擴展功能:

1、can數(shù)據(jù)、spi 、iic的數(shù)據(jù)的采集傳輸;

2、離線存儲功能;

開發(fā)準備及其環(huán)境

硬件環(huán)境 具備RF24L01模塊接口的STM32開發(fā)板2塊、RF20L01無線模塊2塊;

開發(fā)工具 STM32J-link仿真器、串口TTL轉(zhuǎn)換小板各1;

軟件環(huán)境 KIEL-MDK 、串口助手 ;

開發(fā)計劃(第五期的第1板塊,為期1個月)

· 節(jié)點1:完成技術(shù)指標的確定,開發(fā)板、硬件模塊及其調(diào)試器采購到位,完成軟硬件的架構(gòu)設計;

· 節(jié)點2:調(diào)試接口與pc的交互程序的開發(fā);

1、 初建工程,完成uart1調(diào)試接口程序的開發(fā);

2、 完成uart2與pc機的交互程序的設計;

· 節(jié)點3:定制NRF24L01的傳輸協(xié)議,并完成開發(fā)

1、驅(qū)動的開發(fā)與BSP的開發(fā);

2、協(xié)議的開發(fā);

· 節(jié)點4:整體調(diào)試、測試;

· 節(jié)點5:編寫項目總結(jié)。

項目設計

Part 01

項目概述及其環(huán)境的搭建

項目簡介:

項目采用雙mcu-STM32F030C8T6和RF24L01無線模塊實現(xiàn)主從設備的上下行數(shù)據(jù)傳輸,在此基礎(chǔ)上增加與pc的通信和數(shù)據(jù)記錄功能,實現(xiàn)離線數(shù)據(jù)同步功能;功能指標

基礎(chǔ)功能:

1、為了盡快上手軟件,硬件系統(tǒng)采用現(xiàn)成模塊, RF24L01模塊接口的STM32開發(fā)板2塊和RF20L01無線模塊2塊,STM32系統(tǒng)板2塊分為主板和從板,從板信息通過24l01無線模塊發(fā)送到主板,主板通過uart與pc交互;硬件部分后續(xù)獨立部分說明分享。

2、軟件方面是重點研究對象,軟件主要分為driver、hal、bsp、service、app五個部分。Driver層是和硬件直接相關(guān),hal層是隔離層,bsp是驅(qū)動相關(guān)芯片的板級支持層、服務層主要是一些任務相關(guān),App為應用層。

擴展功能:

1、can數(shù)據(jù)、spi 、iic的數(shù)據(jù)的采集傳輸;

2、離線存儲功能;

開發(fā)準備及其環(huán)境:

1、硬件環(huán)境 :具備RF24L01模塊接口的STM32開發(fā)板2塊、RF20L01無線模塊2塊;

2、開發(fā)工具 :STM32J-link仿真器、串口TTL轉(zhuǎn)換小板各1;

3、軟件環(huán)境 KIEL-MDK 、串口助手 ;

Part 02

軟件設計-外設uart

導言

uart外設是開發(fā)調(diào)試的重要手段,也是板級通信常用的通信方式。

對于耳熟能詳?shù)膗art,你了解多少呢?

它的用法的注意事項和難點又有哪些呢?

本期內(nèi)容讓我?guī)е蠹抑攸c探討一下uart的軟件設計。

內(nèi)容提要

1、uart的基本概述和STM32中uart驅(qū)動HAL層的配置;

2、調(diào)試打印中,uart的數(shù)據(jù)發(fā)送策略;

3、通信中,uart的策略與架構(gòu)。

軟件實戰(zhàn)

1、外設與系統(tǒng)

與傳統(tǒng)寫驅(qū)動程序相比,STM32CubeMX代碼生成器讓驅(qū)動變得更簡單、快速,大大提高了開發(fā)效率。

STM32CubeMX不僅支持外設配置,還支持freeRTOS,不過很可惜,考慮到片子的成本,8KRAM的片子僅能跑2個靜態(tài)的線程,而且從板有集成到項目中的需求,所以從設備不使用freeRTOS。

從設備主頻48MHZ,uart外設需要對GPIO/NVIC/DMA/UART進行配置,主設備還需要配置freeRTOS。

2、調(diào)試神器-uart

不管哪個項目,printf的輸出是必不可少的!

實現(xiàn)的關(guān)鍵點是數(shù)據(jù)通過printf函數(shù)收集到debug_pool后如何發(fā)送。

下面內(nèi)容圍繞這個問題展開討論。

無os的情況下,若是需要實時性要求較高的情況下,發(fā)送需要直接調(diào)用uart驅(qū)動發(fā)送接口拋出,這種方式,效率低,cpu占用高。

一般情況下是要開一片空間,當數(shù)據(jù)收集滿后通過DMA送到uart硬件然后發(fā)出去。不過這種方式是需要一個Task,周期的拋數(shù)據(jù)。

有os的系統(tǒng),這里需要加消息隊列或者內(nèi)存池,還需要一個獨立的線程進行處理。

比較復雜,這里不展開討論。

對上圖思想進行解釋:

1、接收部分首先考慮如何接收數(shù)據(jù),是采用run_buf的形式還是一個字節(jié)中斷的方式;

2、數(shù)據(jù)接收后,要思考幀識別,確定一幀數(shù)據(jù)后進入CRC校驗;

3、校驗通過后再進行協(xié)議的解析和處理;

5、數(shù)據(jù)發(fā)送部分先對數(shù)據(jù)進行打包。記住多線程的處理要對數(shù)據(jù)進行保護,防止tx_buf里的數(shù)據(jù)被刷寫;

6、通過打包后的數(shù)據(jù)要CRC加碼校驗,然后再發(fā)出去;

值得注意的是,要將這些公共的CRC和收發(fā)任務單獨提出來,與協(xié)議相關(guān)的內(nèi)容獨立出來,這樣協(xié)議層的變得不會引起程序大的改動;

Part 03

調(diào)試接口與pc的交互程序的開發(fā)

Part 04

定制NRF24L01的傳輸協(xié)議,完成開發(fā)

Part 05

整體調(diào)試、測試

Part 06

編寫項目總結(jié)

責任編輯:xj

原文標題:《來實戰(zhàn)》#5:老司機教你做一款UART之UART外設篇

文章出處:【微信公眾號:電路設計技能】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

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

    關(guān)注

    22

    文章

    1269

    瀏覽量

    103313
  • 模塊化
    +關(guān)注

    關(guān)注

    0

    文章

    339

    瀏覽量

    21837
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4889

    瀏覽量

    70281

原文標題:《來實戰(zhàn)》#5:老司機教你做一款UART之UART外設篇

文章出處:【微信號:cirmall,微信公眾號:電路設計技能】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦
    熱點推薦

    MAX14830四通道串行UART,具有128字FIFO技術(shù)手冊

    MAX14830是一款先進的四通道通用異步收發(fā)器(UART),每路UART帶有128字先入/先出(FIFO)接收和發(fā)送緩存器,以及高速串行外設接口(SPI?)或I2C控制器接口。PLL
    的頭像 發(fā)表于 05-22 10:14 ?158次閱讀
    MAX14830四通道串行<b class='flag-5'>UART</b>,具有128字FIFO技術(shù)手冊

    一款入耳式耳機的仿真與分析

    電子發(fā)燒友網(wǎng)站提供《一款入耳式耳機的仿真與分析.pdf》資料免費下載
    發(fā)表于 04-22 15:39 ?3次下載

    基于小凌派RK2206開發(fā)板:OpenHarmony如何使用IoT接口控制UART外設

    1、實驗簡介本實驗將演示如何在小凌派-RK2206開發(fā)板上使用IOT庫的UART接口,進行UART編程開發(fā)。例程將創(chuàng)建個任務,通過配置UART引腳,實現(xiàn)
    的頭像 發(fā)表于 04-22 14:22 ?339次閱讀
    基于小凌派RK2206開發(fā)板:OpenHarmony如何使用IoT接口控制<b class='flag-5'>UART</b><b class='flag-5'>外設</b>

    STM32H753IIT6 一款32位微控制器MCU/MSP430F5325IPNR一款16位MCU

    ?MSP430F5325IPNR?是一款16位低功耗微控制器,屬于MSP430系列。該微控制器具有以下主要特點和功能: 1、低功耗設計?:MSP430F5325IPNR采用低功耗設計,適合對能耗敏感
    發(fā)表于 02-21 14:59

    USB轉(zhuǎn)UART芯片大全:從經(jīng)典到創(chuàng)新,總有一款適合你!

    USB轉(zhuǎn)UART芯片大全:從經(jīng)典到創(chuàng)新,總有一款適合你!
    的頭像 發(fā)表于 02-19 14:04 ?981次閱讀

    請推薦一款給ads1211提供AVDD與DVDD電源的芯片?

    你好,請推薦一款給ads1211 提供AVDD與DVDD電源的芯片,謝謝!
    發(fā)表于 01-24 06:46

    RF-WM-20CMB1模塊是RF-star全新推出的一款嵌入式Wi-Fi+BT模塊

    Wi-fi模組 - RF-WM-20CMB1模塊是RF-star全新推出的一款嵌入式Wi-Fi+BT模塊,該模塊采用瑞昱(Realtek)的SOC Wi-Fi方案RTL8720CM芯片設計,內(nèi)置高性能KM4 MCU,并包含多種外設UA
    的頭像 發(fā)表于 12-02 15:51 ?579次閱讀
    RF-WM-20CMB1模塊是RF-star全新推出的<b class='flag-5'>一款</b>嵌入式Wi-Fi+BT模塊

    如果設計一款桌面的機器玩具,最吸引人的外觀與功能要有哪些?

    初步設想制作如下其中一款,有感興趣的朋友可以幫提提意見。 A一款圓敦敦的音響狀的“個人日程助手”,具備番茄鬧鐘、音樂播放、減壓交互、語言對話、工作日報生成。 B一款迷你瓦利機器人,有
    發(fā)表于 10-19 18:25

    介紹國產(chǎn)的一款RISC-V——ES32VF2264

    ES32VF2264系列產(chǎn)品采用RISC-V內(nèi)核和先進的系統(tǒng)架構(gòu),是一款高性價比、高可靠性且外設功能豐富的32-bit 微控制器。主頻運行在72MHz時系統(tǒng)效能評分可達81 DMIPS和149
    發(fā)表于 09-23 08:44

    LMH6734可以用哪一款芯片代替?

    麻煩問下,LMH6734可以用哪一款芯片代替,最好是pin-to-pin的
    發(fā)表于 09-09 07:05

    求助,求分享一款可以取代IA2410的運放?

    一款TI的 可以取代IA2410
    發(fā)表于 08-22 06:10

    EU104:一款支持1擴4的通用異步串口擴展芯片,滿足絕大部分串口設備的通訊要求

    EU104:一款支持1擴4的通用異步串口擴展芯片,滿足絕大部分串口設備的通訊要求 EU104是一款支持1擴4的通用異步串口擴展芯片,具有靈活配置通訊參數(shù)的UART接口。該芯片提供了5個UART
    的頭像 發(fā)表于 08-08 10:21 ?751次閱讀

    如何設計一款50HZ陷波電路?

    如何設計一款50HZ陷波電路,有現(xiàn)成的參考電路設計嗎
    發(fā)表于 07-30 06:12

    esp32如何使用DMA來傳輸UART/SPI等外設的數(shù)據(jù),編程上應該怎么聲明或者調(diào)用?

    esp32如何使用DMA來傳輸UART/SPI等外設的數(shù)據(jù),編程上應該怎么聲明或者調(diào)用?
    發(fā)表于 06-26 07:58

    一款完美用于相機鏡頭的馬達驅(qū)動芯片TMC2300-LA

    卓聯(lián)微科技TMC2300-LA一款完美用于相機鏡頭的馬達驅(qū)動芯片TMC2300-LA是一款用于高達1.2ARMS的兩相步進電機的低壓驅(qū)動芯片,低電壓的步進電機驅(qū)動器是用于電池供電的、空間和待機功率
    的頭像 發(fā)表于 06-14 08:27 ?972次閱讀
    <b class='flag-5'>一款</b>完美用于相機鏡頭的馬達驅(qū)動芯片TMC2300-LA
    主站蜘蛛池模板: 天天操天天射天天色 | 综合爱| 国产一区二区三区乱码 | 国产区一区二区三区 | 五月婷婷六月合 | 四虎影库在线播放 | 中文字幕亚洲一区 | 欧美成人免费大片888 | 久久亚洲国产成人影院 | 欧美女同在线 | 色噜噜狠狠狠狠色综合久一 | 色天天综合网 | 久久伊人男人的天堂网站 | 色综合久久天天综合观看 | 丁香婷婷社区 | 欧美性第一页 | 深夜大尺度视频在线观看 | 99成人国产精品视频 | 5252a我爱haose01亚洲 | 天天躁狠狠躁狠狠躁夜夜躁 | 黄色国产视频 | 欧美三级视频网站 | 黄 色 片成 人免费观看 | 黄色一级视频网 | 亚洲插 | 天天操天天操 | 性欧美巨大| 成年大片免费播放视频人 | 丁香六月色婷婷综合网 | 欧美色欧美色 | 国产亚洲精品久久久极品美女 | 亚洲一区不卡视频 | 在线视频91 | 亚洲宅男天堂a在线 | 制服丝袜在线一区 | 一区二区三区四区在线视频 | 日韩精品网址 | 一区二区三区四区视频在线观看 | 激情五月播播 | 成人影院在线观看 | 日本一区二区视频在线观看 |