chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

【有那么點(diǎn)詳細(xì)的CW32學(xué)習(xí)筆記】通用異步收發(fā)器—發(fā)送篇

CW32生態(tài)社區(qū) ? 來源:CW32生態(tài)社區(qū) ? 作者:CW32生態(tài)社區(qū) ? 2023-11-17 17:30 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本章介紹CW32通用異步收發(fā)器的使用。

雖然大部分時(shí)候會(huì)被簡單稱為“串口”,但實(shí)際上 用“串口”來指代UART并不正確 。串口對(duì)應(yīng)并口的概念,在串口通信中,數(shù)據(jù)被以二進(jìn)制形式發(fā)送,并且每次發(fā)送都只傳輸1比特位(當(dāng)然,傳輸速度可能會(huì)很快),像SPI、IIC其實(shí)也屬于串口。而對(duì)傳輸速度的描述,也就是波特率即是 描述的每秒傳輸?shù)谋忍匚粩?shù)量 ,例如波特率是9600,就代表該串口每秒可以傳輸9600bit的數(shù)據(jù)。與之相對(duì)應(yīng)的并口,則是使用多個(gè)物理信道傳輸數(shù)據(jù),一批數(shù)據(jù)會(huì)同時(shí)在多個(gè)物理信道上傳輸,這種并行通信會(huì)占用很多IO資源,但是傳輸速度也得到了顯著提高。

UART作為一種異步通信方式,它 不需要時(shí)鐘 ,在供電正常的情況下一共就只需要兩根數(shù)據(jù)線,非常適合一對(duì)一的通信需求。CW32F030擁有3個(gè)UART外設(shè),此文章介紹UART1的使用,那么按照慣例,先總覽一下使用UART需要做哪些準(zhǔn)備工作。

第一:需要將IO設(shè)置為輸出,并復(fù)用為UART模式。

第二:需要使能UART這個(gè)外設(shè),并設(shè)置通信協(xié)議的必要參數(shù)(關(guān)于UART協(xié)議本身,互聯(lián)網(wǎng)有很多優(yōu)質(zhì)教程,讀者可以自行搜索),完成初始化。

第三:編寫發(fā)送和接收函數(shù),調(diào)用函數(shù)實(shí)現(xiàn)發(fā)送和接收的功能。

第一步的進(jìn)行非常簡單,查詢芯片《數(shù)據(jù)表》的引腳定義,發(fā)現(xiàn)LQFP48封裝下,PA8 & PA9是UART1的發(fā)送和接收,因此只需要配置好這兩個(gè)IO的功能,第一步就算是完成了。

圖片

圖片

配置代碼如上圖,但有讀者表示自己找不到設(shè)置復(fù)用功能的函數(shù),那我們就來看看功能復(fù)用函數(shù)的本質(zhì)是什么。

圖片

這是PA9的復(fù)用函數(shù),可以看到這是一個(gè)宏函數(shù),其內(nèi)容表明設(shè)置復(fù)用其實(shí)就是設(shè)置了對(duì)應(yīng)GPIO復(fù)用寄存器的值,PA9屬于A組IO的第9號(hào)口,是高位Pin口,因此要找到高位口的復(fù)用寄存器,并設(shè)置復(fù)用功能為(0010) 2 ,也就是AF2,具體設(shè)置如下圖所示。

圖片

因此配置復(fù)用的時(shí)候,如果找不到對(duì)應(yīng)的復(fù)用函數(shù),可以直接配置此寄存器來完成復(fù)用配置,但為了方便讀者,配置IO復(fù)用的宏函數(shù)均位于cw32xxxxx_gpio.h這個(gè)文件中,此頭文件包含了相當(dāng)多的宏函數(shù),均是常用的IO操作,如反轉(zhuǎn)、置位、閃爍等,感興趣的讀者可以前往翻閱。

話題拽回到UART這邊,接下來要進(jìn)行的是第二步,配置UART的必要參數(shù),這里先講解發(fā)送功能需要進(jìn)行的配置。

不論是什么單片機(jī),想要使用任何一個(gè)片上外設(shè),必須要使能該外設(shè)的時(shí)鐘總線 ,直接在工程的函數(shù)列表中找到時(shí)鐘配置文件下的全部函數(shù),根據(jù)函數(shù)的名字可以快速定位使能UART1時(shí)鐘的函數(shù)

我們可以看到這個(gè)函數(shù)本質(zhì)上就是在操作APBEN2這個(gè)寄存器,通過查看芯片手冊(cè),我們也可以找到各個(gè)外設(shè)所屬的時(shí)鐘線。

圖片

圖片

隨后就是UART通信參數(shù)的結(jié)構(gòu)體了,結(jié)構(gòu)體同樣對(duì)應(yīng)了寄存器,但使用結(jié)構(gòu)體可以簡化開發(fā)者的配置步驟,且看下圖:

圖片

圖片

此結(jié)構(gòu)體成員擁有相當(dāng)詳細(xì)的注釋,這里直接按照開發(fā)者意圖配置即可,我在這里配置為:波特率115200、PCLK時(shí)鐘源、1個(gè)停止位、無校驗(yàn)位、全雙工模式,配置完成后初始化結(jié)構(gòu)體即可。

值得注意的是,在芯片內(nèi)部并沒有一個(gè)直接的波特率數(shù)值寄存器,為了保證異步通訊的可靠,波特率越精準(zhǔn)越好,且既有的系統(tǒng)時(shí)鐘不一定能夠剛好提供波特率倍數(shù)的時(shí)基,因此實(shí)際上的波特率是一個(gè)浮點(diǎn)數(shù),它擁有整數(shù)部分小數(shù)部分2****個(gè)寄存器 。具體的計(jì)算公式在芯片手冊(cè)的通用異步收發(fā)器章節(jié)有寫,這里只列舉初始化函數(shù)中的相關(guān)操作:

圖片

由于我選擇的是16倍采樣,初始化函數(shù)會(huì)執(zhí)行上述代碼,代碼的計(jì)算過程復(fù)刻了手冊(cè)中的計(jì)算過程(如下圖),這里是先計(jì)算時(shí)鐘源在16倍采樣模式下能夠直接取得的波特率結(jié)果temp,temp包含了整數(shù)部分和小數(shù)部分,整數(shù)部分直接賦值即可,小數(shù)部分則是將公式變型得到的。開發(fā)者在使用時(shí)不需要手寫計(jì)算BRRI和BRRF的寄存器值,初始化函數(shù)會(huì)自動(dòng)完成該計(jì)算。

圖片

皆大歡喜,到目前為止已經(jīng)成功完成兩步了,還差最后一步就可以使用UART的發(fā)送功能了,那就是自己寫一個(gè)UART1的發(fā)送函數(shù)。我手里剛好就有一個(gè)自己寫的發(fā)送函數(shù),長這個(gè)樣子:

圖片

這段簡易代碼會(huì)發(fā)送這個(gè)字符串作為UART1的調(diào)試參數(shù)。

圖片

這段代碼的主要邏輯在芯片手冊(cè)里面也有詳細(xì)描述:

圖片

Tips: 在編寫各類通信函數(shù)這里,我建議一定要 加上至少兩個(gè)功能 。第一個(gè)就是 發(fā)送的狀態(tài) ,成功還是失敗,這很重要,出問題之后的排查工作基本就靠這個(gè)了;第二個(gè)就是 超時(shí)跳出功能 ,有的時(shí)候可能硬件故障或者什么別的原因?qū)е掳l(fā)送一直失敗,如果死等就讓程序全部死掉了,超時(shí)跳出可以保證其他大部分程序的正常運(yùn)行,當(dāng)然使用看門狗是一種更優(yōu)解。

在輪詢函數(shù)中調(diào)用調(diào)試函數(shù)即可實(shí)現(xiàn)間隔100ms發(fā)送一次的功能,效果如下:

圖片

圖片

從時(shí)間上來看,100ms的定時(shí)發(fā)送還是很精確的,這種方式占用CPU的時(shí)間資源實(shí)現(xiàn)發(fā)送,雖然傳統(tǒng)但是有效可控。

要點(diǎn)總結(jié):

1、注意區(qū)分串口和并口的概念。

2、CW32的UART雖然有2個(gè)波特率寄存器,但是并不需要開發(fā)者手算寄存器參數(shù)。

審核編輯 黃宇

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

    關(guān)注

    22

    文章

    1308

    瀏覽量

    106387
  • 通用異步收發(fā)器

    關(guān)注

    0

    文章

    22

    瀏覽量

    6981
  • CW32
    +關(guān)注

    關(guān)注

    1

    文章

    299

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    CW32仿真是什么?

    CW32仿真是什么
    發(fā)表于 01-05 08:04

    CW32芯片哪些外設(shè)接口?

    CW32芯片哪些外設(shè)接口
    發(fā)表于 12-29 07:23

    請(qǐng)問CW32芯片的特性哪些?

    CW32芯片的特性哪些?
    發(fā)表于 12-26 06:14

    請(qǐng)問CW32 UART用于數(shù)據(jù)收發(fā)的具體過程是怎樣的?

    CW32 UART用于數(shù)據(jù)收發(fā)的具體過程是怎樣的?
    發(fā)表于 12-24 07:42

    請(qǐng)問CW32系列ADC是否支持同步或異步轉(zhuǎn)換?

    CW32系列ADC是否支持同步或異步轉(zhuǎn)換?
    發(fā)表于 12-16 08:06

    CW32 UART的數(shù)據(jù)幀結(jié)構(gòu)哪些特點(diǎn)?

    請(qǐng)問 CW32 UART 的數(shù)據(jù)幀結(jié)構(gòu)哪些特點(diǎn)?
    發(fā)表于 12-15 06:58

    CW32學(xué)習(xí)筆記,通用異步收發(fā)器之中斷接收

    接收中斷這一個(gè)中斷源,芯片手冊(cè)的通用異步收發(fā)器章節(jié)展示了Uart中斷包含的中斷源。 當(dāng)有數(shù)據(jù)進(jìn)入單片機(jī)的Uart1接收緩沖區(qū)時(shí),接收中斷會(huì)觸發(fā),中斷標(biāo)志位置1,程序跳轉(zhuǎn)至Uart1的中斷服務(wù)函數(shù)
    發(fā)表于 12-12 07:45

    CW32單片機(jī)如何讓生活更便捷

    體驗(yàn) - 溫度感應(yīng)與控制今年廣東的冬天,你是否煩惱過冬天馬桶座圈的冰冷?CW32單片機(jī),這將不再是問題。在智能馬桶內(nèi)的溫度傳感握有控制權(quán),它通過CW32單片機(jī)的處理,可以實(shí)時(shí)感知
    發(fā)表于 12-11 06:11

    CW32時(shí)鐘運(yùn)行中失效檢測的流程是什么?CW32時(shí)鐘運(yùn)行中失效檢測注意事項(xiàng)哪些呢?

    CW32時(shí)鐘運(yùn)行中失效檢測的流程是什么?CW32時(shí)鐘運(yùn)行中失效檢測注意事項(xiàng)哪些?
    發(fā)表于 12-10 07:22

    基于芯源CW32 MCU的LED閃爍示例及代碼分析

    最近我在項(xiàng)目中使用了芯源的CW32 MCU,這是一款非常適合物聯(lián)網(wǎng)和低功耗應(yīng)用的微控制。在初步學(xué)習(xí)和使用中,我做了一個(gè)簡單的LED閃爍實(shí)驗(yàn),通過這篇帖子給大家分享一下代碼及相關(guān)的配置步驟。 硬件
    發(fā)表于 12-04 06:52

    CW32 MCU溫度監(jiān)測應(yīng)用

    監(jiān)測環(huán)境溫度,并通過串口將數(shù)據(jù)發(fā)送到PC端進(jìn)行顯示。 硬件連接 CW32 MCU LM35溫度傳感 USB轉(zhuǎn)串口模塊 代碼實(shí)現(xiàn) #include \"cw32f030.h\&qu
    發(fā)表于 12-03 08:03

    CW32 MCU用什么IDE開發(fā)?

    推薦使用IAR Embedded Workbench for ARM、Keil μVision for ARM等IDE開發(fā)CW32 MCU應(yīng)用,其中新版本IAR EWARM直接支持CW32 MCU,Keil MDK-ARM則需要安裝CW
    發(fā)表于 11-12 07:52

    CW32 MCU哪些系列?

    目前CW32 MCU通用高性能MCU、安全低功耗MCU、無線射頻MCU等3個(gè)系列。其中射頻MCU集成了無線收發(fā)器,主要包括CW32R031
    發(fā)表于 11-12 07:34

    CW32 MCU用什么仿真開發(fā)?

    理論上各主流IDE枚舉的、支持ARM Cortex內(nèi)核的所有硬件仿真,比如:J-LINK,ULINK,DAP,ST-Link等,都可以仿真、下載CW32 MCU的應(yīng)用代碼。如果想實(shí)現(xiàn)量產(chǎn)或者離線下載應(yīng)用代碼,則必須配套支持CW32
    發(fā)表于 11-12 06:01

    第二十四章 通用同步異步收發(fā)器(USART)

    本文介紹了W55MH32的通用同步異步收發(fā)器(USART),其支持全雙工異步通信、NRZ格式,具分?jǐn)?shù)波特率發(fā)生,可編程數(shù)據(jù)字長、停止位等。
    的頭像 發(fā)表于 05-29 15:44 ?2218次閱讀
    第二十四章 <b class='flag-5'>通用</b>同步<b class='flag-5'>異步</b><b class='flag-5'>收發(fā)器</b>(USART)