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

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

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

3天內不再提示

通過DMAC進行USART的數據回顯操作

電子設計 ? 作者:電子設計 ? 2018-09-26 08:25 ? 次閱讀

DMAC也可以和外設進行數據交互。之前我們曾使用PDC進行USART的數據回顯,這次就使用DMAC完成相同的工作。而且由于DMAC有內部的緩沖區,實現起來更為簡單。

一、USART設置

因為之前已經做過相關的實驗,這里不再重復。需要注意的是,要注意JP11的跳線,以選擇正確的協議(RS232)。另外,如果使用硬件握手協議的話,注意設置PC端串口通信軟件的線路控制信號

另外,由于不再使用手動的緩沖區和PDC,所以不需要進行相關的設置。同時,也不用再使用USART的接收超時功能。

二、DMAC設置

本次使用的通道依然為通道0:

1#defineDMAC_CH0

啟用DMAC:

1//代碼略...

設置DSCR為0,以進行單次傳輸:

1DMAC->DMAC_CH_NUM[DMAC_CH].DMAC_DSCR=0;

設置SADDR以及DADDR。

因為數據都在US_RHR和US_THR的低位上,所以將源地址和目標地址分別設為這兩個寄存器的地址即可。

DMAC->DMAC_CH_NUM[DMAC_CH].DMAC_SADDR=

&(USART1->US_RHR);

DMAC->DMAC_CH_NUM[DMAC_CH].DMAC_DADDR=

&(USART1->US_THR);

設置CTRLA和CTRLB。

在USART數據位為8位時,一次傳輸一個字節即可。

DMAC->DMAC_CH_NUM[DMAC_CH].DMAC_CTRLA=

DMAC_CTRLA_BTSIZE(16)//進行16次傳輸

|DMAC_CTRLA_SRC_WIDTH_BYTE//一次傳輸一個字節

|DMAC_CTRLA_DST_WIDTH_BYTE//同上

;

DMAC->DMAC_CH_NUM[DMAC_CH].DMAC_CTRLB=

DMAC_CTRLB_FC_PER2PER_DMA_FC//外設至外設的傳輸

|DMAC_CTRLB_SRC_INCR_FIXED//傳輸時源地址固定

|DMAC_CTRLB_DST_INCR_FIXED//傳輸時目標地址固定

;

設置CFG寄存器。

因為DMAC和USART1之間有硬件握手接口,所以這里使用硬件握手接口即可(否則需要使用軟件握手接口手動觸發傳輸)。USART1的發送接口號為5,接收接口號為6:

由于需要盡快將DMAC內部緩沖區的內容傳輸出去,所以一旦其數據量可以發送,就發送出去。

DMAC->DMAC_CH_NUM[DMAC_CH].DMAC_CFG=

DMAC_CFG_SRC_H2SEL_HW//使用硬件握手

|DMAC_CFG_DST_H2SEL_HW

|DMAC_CFG_SRC_PER(6)//接口號

|DMAC_CFG_DST_PER(5)

|DMAC_CFG_SOD_DISABLE

|DMAC_CFG_FIFOCFG_ASAP_CFG//盡快發送數據

;

啟用中斷。

在傳輸任務完成后,需要重新啟用通道,以重新開始任務。

1

2DMAC->DMAC_CHER=DMAC_CHER_ENA0<

//NVIC中斷設置的代碼略...

中斷處理。

在中斷中重新設置CTRLA寄存器的BTSIZE字段,再啟用通道即可。

voidDMAC_Handler(void)

{

uint32_tstatus=DMAC->DMAC_EBCISR;

//判斷是否為指定中斷

if(status&(DMAC_EBCISR_CBTC0<

{

//設置CTRLA

DMAC->DMAC_CH_NUM[DMAC_CH].DMAC_CTRLA&=

~(uint32_t)DMAC_CTRLA_BTSIZE_Msk;

DMAC->DMAC_CH_NUM[DMAC_CH].DMAC_CTRLA|=

DMAC_CTRLA_BTSIZE(16);

//再次啟用通道

DMAC->DMAC_CHER=DMAC_CHER_ENA0<

}

}

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

    關注

    9

    文章

    2090

    瀏覽量

    154339
  • 串口通信
    +關注

    關注

    34

    文章

    1627

    瀏覽量

    55575
  • USART
    +關注

    關注

    1

    文章

    195

    瀏覽量

    30897
收藏 人收藏

    評論

    相關推薦

    如何用手機發送數據給esp8266到串口實現控制?

    通過手機發送數據控制LED,發送led_on點亮,發送led_off關閉,通過串口調試助手發送數據到串口可實現控制功能,用手機發送數據給e
    發表于 07-14 23:53

    FPGA作為從機通過SPI接收ARM傳來的數據傳的數據發生跳變

    改了下代碼,在FPGA的內部時鐘(sys_clk)的上升沿對SPI上的時鐘和數據進行操作讀的數據正常了。請問前者和后者的區別是啥?是因為
    發表于 08-06 11:45

    如何使用USART進行通信/收發數據

    如何使用USART進行通信/收發數據
    發表于 12-13 07:37

    如何通過USART1收發數據

    如何通過USART1收發數據
    發表于 12-13 07:12

    如何解決STM32串口通信數據問題?

    如何解決STM32串口通信數據問題?
    發表于 12-13 07:30

    如何使用USART進行通信/收發數據

    如何使用USART進行通信/收發數據
    發表于 02-07 07:29

    怎么使用USB模擬串口數據

    如何更新外部flash中的數據?怎么使用USB模擬串口數據
    發表于 02-22 07:29

    RTThread串口數據一切正常,msh亂碼怎么處理?

    串口數據一切正常,只有msh數據是亂碼,打開了RT_USING_POSIX,
    發表于 05-11 09:32

    CubeMX生成的C代碼發出USART啟動調用怎么辦?

    MX 生成的 C 代碼在 DMA 啟動調用之前發出 USART 啟動調用。我的代碼只是 USART 收到的任何文本。不幸的是,
    發表于 12-27 07:53

    USB供電時無法通過USART進行ISP升級

    USB供電時無法通過USART進行ISP升級USB供電時無法通過USART進行ISP升級
    發表于 10-19 06:59

    對 Flash 操作導致 USART 接收丟數據

    對 Flash 操作導致 USART 接收丟數據
    發表于 11-25 14:49 ?0次下載

    使用SAM L10 MCU的DMAC演示CPU的使用率

    ,從而減輕 CPU 處理這些任務的負載。DMAC 可在最少 CPU 干預的情況下實現高數據傳輸速率,并釋放 CPU 時間。它包含直接存儲器訪問引擎和循環冗余校驗(CyclicRedundancy Check,CRC)引擎。通過
    發表于 04-01 09:59 ?2次下載
    使用SAM L10 MCU的<b class='flag-5'>DMAC</b>演示CPU的使用率

    對Flash 操作導致USART 接收丟數據

    對Flash 操作導致USART 接收丟數據(嵌入式開發系統中宿主機概念)-該問題客戶提出,發生在STM32F103VDT6 器件上。據其工程師講述:在其產品設計中,使用了STM32 片上Flash
    發表于 07-30 10:45 ?16次下載
    對Flash <b class='flag-5'>操作</b>導致<b class='flag-5'>USART</b> 接收丟<b class='flag-5'>數據</b>

    STM32—USART串口配置

    文章目錄一、USART簡介一、USART簡介1、USART:通用同步異步收發器2、功能:(1)與外部設備進行全雙工數據交換(2)支持同步單向
    發表于 12-24 18:44 ?1次下載
    STM32—<b class='flag-5'>USART</b>串口配置

    STM32U5開發(1)----通過USART1發送數據

    通過 USART1 發送一些數據
    的頭像 發表于 07-27 11:35 ?1120次閱讀
    STM32U5開發(1)----<b class='flag-5'>通過</b><b class='flag-5'>USART</b>1發送<b class='flag-5'>數據</b>
    主站蜘蛛池模板: 综合黄色 | 日本人zzzwww色视频 | 欧美性受xxxx极品 | 欧美成人一区二区三区在线电影 | 49pao强力免费打造在线高清 | 免费激情网站 | 中日韩黄色大片 | 思思99re66在线精品免费观看 | 欧美私人网站 | 天天操人人 | 欧美激情第一欧美在线 | 福利视频一区二区三区 | 黄在线观看在线播放720p | 99久久国产免费中文无字幕 | 在线精品小视频 | 俺也射| 免费在线观看你懂的 | 中文天堂网在线www 中文天堂资源在线www | 成人欧美另类人妖 | 看片在线 | 手机看片1024日韩 | 最近2018中文字幕免费视频 | 不卡精品国产_亚洲人成在线 | 国产亚洲人成a在线v网站 | 都市激情 亚洲 | 欧美xxxx色视频在线观看 | 亚洲高清免费视频 | 日韩美a一级毛片 | 久久波多野结衣 | 欧美一欧美一区二三区性 | 国产黄色高清视频 | 青草国产在线视频 | 欧美激欧美啪啪片免费看 | 女人被男人免费播放网站 | 性叉叉| 狠狠色狠狠色综合日日32 | 免费国产成人α片 | 激情综合色综合啪啪开心 | 老师今晚让你爽个够 | 成人窝窝午夜看片 | 午夜免费免费啪视频观看 |