国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

沁恒ch32V208處理器開發(fā)(四)串口通信

這篇具有很好參考價(jià)值的文章主要介紹了沁恒ch32V208處理器開發(fā)(四)串口通信。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

串口資源

資源配置

CH32V208 系列,是基于 RISC-V 指令架構(gòu)設(shè)計(jì)的 32 位 RISC 內(nèi)核 MCU,根據(jù)封裝的不同,可用的USART串口資源如下表所示:

沁恒ch32V208處理器開發(fā)(四)串口通信,嵌入式,軟件,c,單片機(jī),c語言,嵌入式,物聯(lián)網(wǎng)且USART具有如下主要特征:
(1)全雙工或半雙工的同步或異步通信
(2) 支持分?jǐn)?shù)波特率發(fā)生器,最高 9Mbps
(3)可編程數(shù)據(jù)長(zhǎng)度、停止位長(zhǎng)度
(4)支持 LIN,IrDA 編碼器,智能卡
(5)支持 DMA
(6)支持多種中斷

其內(nèi)部模塊圖實(shí)現(xiàn)如下:
沁恒ch32V208處理器開發(fā)(四)串口通信,嵌入式,軟件,c,單片機(jī),c語言,嵌入式,物聯(lián)網(wǎng)

同步模式

和其他單片機(jī)不同的是,ch32V208處理器的USART還支持同步模式,就是說系統(tǒng)在使用 USART 模塊時(shí)可以輸出時(shí)鐘信號(hào)。在開啟同步模式對(duì)外發(fā)送數(shù)據(jù)時(shí),CK引腳會(huì)同時(shí)對(duì)外輸出時(shí)鐘。 要開啟同步模式,只需要對(duì)控制寄存器 2(R16_USARTx_CTLR2)的 CLKEN 位置位,即可,但有兩點(diǎn)注意:
(1)開啟同步模式同時(shí)需要關(guān)閉LIN 模式、智能卡模式、紅外模式和半雙工模式,即保證 SCEN、HDSEL 和 IREN 位處于復(fù)位狀態(tài),這三位在控制寄存器 (R16_USARTx_CTLR3)中。
(2)USART 模塊同步模式只工作在主模式,即 CK 引腳只輸出時(shí)鐘,不接收輸入;
只在 TX 引腳輸出數(shù)據(jù)時(shí)輸出時(shí)鐘信號(hào);

單線半雙工模式

半雙工模式支持使用單個(gè)引腳(只使用 TX 引腳)來接收和發(fā)送,TX 引腳和 RX 引腳在芯片內(nèi)部連接。 開啟半雙工模式的方式是對(duì)控制寄存器 3(R16_USARTx_CTLR3)的 HDSEL 位置位,但同時(shí)需要關(guān)閉 LIN 模式、智能卡模式、紅外模式和同步模式,即保證 SCEN、CLKEN 和 IREN 位處于復(fù)位狀態(tài),這三位在控制寄存器 2 和 3(R16_USARTx_CTLR2 和 R16_USARTx_CTLR3)中。 設(shè)置成半雙工模式之后,需要把 TX 的 IO 口設(shè)置成浮空輸入或開漏輸出高模式。在 TE 置位的情況下,只要將數(shù)據(jù)寫到數(shù)據(jù)寄存器上,就會(huì)發(fā)送出去。

中斷

ch32V208處理器的USART 模塊支持多種中斷源,包括發(fā)送數(shù)據(jù)寄存器空(TXE)、CTS、發(fā)送完成(TC)、接收數(shù)據(jù)就緒(TXNE)、數(shù)據(jù)溢出(ORE)、線路空閑(IDLE)、奇偶校驗(yàn)出錯(cuò)(PE)、斷開標(biāo)志(LBD)、噪聲(NE)、多緩沖通信的溢出(ORE)和幀錯(cuò)誤(FE)等等。

DMA

ch32V208處理器的USART 模塊支持 DMA 功能,可以利用 DMA 實(shí)現(xiàn)快速連續(xù)收發(fā)。當(dāng)啟用 DMA 時(shí),TXE 被置位時(shí),DMA就會(huì)從設(shè)定的內(nèi)存空間向發(fā)送緩沖區(qū)寫數(shù)據(jù)。當(dāng)使用 DMA 接收時(shí),每次 RXNE 置位后,DMA 就會(huì)將接收緩沖區(qū)里的數(shù)據(jù)轉(zhuǎn)移到特定的內(nèi)存空間。

串口的初始化

ch32V208處理器的USART通信模式較多,下面以最常用的雙工通信模式為例來介紹實(shí)現(xiàn)過程,本例程中,使用USART1和USART2,通過外部交叉連接實(shí)現(xiàn)全雙工的串口通信功能,實(shí)現(xiàn)代碼如下

void USARTx_CFG(void)
{
GPIO_InitTypeDef GPIO_InitStructure = {0};
USART_InitTypeDef USART_InitStructure = {0};

RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2 | RCC_APB1Periph_USART3, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO | RCC_APB2Periph_USART1 | RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB, ENABLE);



/* USART1 TX-->B.6 */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6; /* Only Configure TX Pin */
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_PinRemapConfig(GPIO_Remap_USART1, ENABLE);


/* USART2 TX-->A.2 */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2; /* Only Configure TX Pin */
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOA, &GPIO_InitStructure);


USART_InitStructure.USART_BaudRate = 115200;
USART_InitStructure.USART_WordLength = USART_WordLength_8b;
USART_InitStructure.USART_StopBits = USART_StopBits_1;
USART_InitStructure.USART_Parity = USART_Parity_No;
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
USART_InitStructure.USART_Mode = USART_Mode_Tx | USART_Mode_Rx;

USART_Init(USART1, &USART_InitStructure);
USART_Init(USART2, &USART_InitStructure);


USART_Cmd(USART1, ENABLE);
USART_Cmd(USART2, ENABLE);

USART_HalfDuplexCmd(USART1, ENABLE);
USART_HalfDuplexCmd(USART2, ENABLE);

}

串口通信的實(shí)現(xiàn)

雙串口的收發(fā)通信實(shí)現(xiàn)包括兩部分,USART1的發(fā)送和USART2的接收,以及USART1的發(fā)送和USART1的接收兩個(gè)過程,實(shí)現(xiàn)方法是完全一樣的,USART1—>USART2的實(shí)現(xiàn)如下:文章來源地址http://www.zghlxwxcb.cn/news/detail-646532.html

 while(TxCnt1 < TxSize1) /* USART1--->USART2,TxSize1為發(fā)送個(gè)數(shù) */
    {
        while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET) 
           /* 等待串口1的當(dāng)前數(shù)據(jù)發(fā)送完成 */
        {
        }
        USART_SendData(USART1, TxBuffer1[TxCnt1++]);
       
       //等待接收完成
        while(USART_GetFlagStatus(USART2, USART_FLAG_RXNE) == RESET)
        {
        }
        RxBuffer2[RxCnt2++] = USART_ReceiveData(USART2); 
        //把接收數(shù)據(jù)存放到usart2的接收緩沖區(qū)
  }

到了這里,關(guān)于沁恒ch32V208處理器開發(fā)(四)串口通信的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 沁恒 CH32V208(一): CH32V208WBU6 評(píng)估板上手報(bào)告和Win10環(huán)境配置

    沁恒 CH32V208(一): CH32V208WBU6 評(píng)估板上手報(bào)告和Win10環(huán)境配置

    沁恒 CH32V208(一): CH32V208WBU6 評(píng)估板上手報(bào)告和Win10環(huán)境配置 沁恒 CH32V208(二): CH32V208的儲(chǔ)存結(jié)構(gòu), 啟動(dòng)模式和時(shí)鐘 沁恒 CH32V208(三): CH32V208 Ubuntu22.04 Makefile VSCode環(huán)境配置 沁恒 CH32V208(四): CH32V208 網(wǎng)絡(luò)DHCP示例代碼分析 沁恒 CH32V208(五): CH32V208 運(yùn)行FreeRTOS示例的說明 CH32V208系列是沁恒

    2024年02月02日
    瀏覽(18)
  • 沁恒CH32V307VCT6最小系統(tǒng)板/開發(fā)板開源

    沁恒CH32V307VCT6最小系統(tǒng)板/開發(fā)板開源

    沁恒CH32V307VCT6最小系統(tǒng)板,引出了所有IO口,一個(gè)Type-C連接到USB2.0全速OTG接口,一個(gè)Flash芯片 型號(hào)W25Q64 容量64Mbit 連接到SPI2接口,板上還有TL432電壓基準(zhǔn)1.25V(實(shí)測(cè)1.246V左右)可通過跳線連接到PC3的AD13,還有3.29V基準(zhǔn)通過0歐電阻可連接到ADC參考電壓VREF。 畫了個(gè) MSP430F149的最小系統(tǒng)

    2024年02月12日
    瀏覽(24)
  • 沁恒CH32V307母板+OPA4377運(yùn)放模塊-開源

    沁恒CH32V307母板+OPA4377運(yùn)放模塊-開源

    南京沁恒微電子股份有限公司是一家國(guó)產(chǎn)通訊接口芯片和全棧MCU芯片公司。專注于連接技術(shù)和MCU內(nèi)核研究,基于自研收發(fā)器PHY和處理器IP的全棧研發(fā)模式,取代傳統(tǒng)的外購(gòu)IP整合模式,提供以太網(wǎng)、藍(lán)牙無線、USB和PCI類等接口芯片,及集成上述接口的連接型/互聯(lián)型/無線型全棧

    2023年04月09日
    瀏覽(26)
  • 沁恒CH32V307使用記錄:使用TIM輸出PWM信號(hào)

    沁恒CH32V307使用記錄:使用TIM輸出PWM信號(hào)

    使用TIM輸出PWM信號(hào)是單片機(jī)中比較常用的一個(gè)功能。這篇文章將對(duì)CH32V307中相關(guān)內(nèi)容進(jìn)行說明。 本文使用沁恒官方的開發(fā)板 (CH32V307-EVT-R1沁恒RISC-V模塊MCU赤兔評(píng)估板) 進(jìn)行演示。 CH32V307擁有多個(gè)定時(shí)器,只有通用定時(shí)器和高級(jí)定時(shí)器支持PWM輸出功能,需要注意的是不同的定

    2024年02月17日
    瀏覽(88)
  • 沁恒CH32V307單片機(jī)入門(01):基礎(chǔ)說明與流程體驗(yàn)

    工作這幾年單片機(jī)主要就接觸過 Atmel、Renesas、Microchip、ST 這些廠家的,最近幾年因?yàn)閮?nèi)部外部的各種因素單片機(jī)的價(jià)格和供應(yīng)都挺不穩(wěn)定的,將來會(huì)發(fā)生什么也不好說。另外這些年國(guó)內(nèi)的單片機(jī)發(fā)展也挺快的。所以準(zhǔn)備試試國(guó)產(chǎn)的單片機(jī)。 這里準(zhǔn)備使用南京沁恒的CH32V307為基

    2024年01月25日
    瀏覽(32)
  • 第三十二章 開發(fā)Productions - ObjectScript Productions - 定義警報(bào)處理器 - 使用路由警報(bào)處理器

    如果需要通過多種輸出機(jī)制聯(lián)系用戶,警報(bào)處理器應(yīng)該是一個(gè)業(yè)務(wù)流程,用于確定如何在消息中路由 Ens.AlertReques 。在這種情況下, Productions 必須為每個(gè)輸出機(jī)制包含一個(gè)額外的業(yè)務(wù)操作,并且警報(bào)處理器將消息轉(zhuǎn)發(fā)到這些業(yè)務(wù)操作。 要將警報(bào)處理器定義為路由流程,請(qǐng)創(chuàng)建

    2024年02月08日
    瀏覽(20)
  • 基于LoRa技術(shù)的STM32處理器無線程序升級(jí)系統(tǒng)設(shè)計(jì)(學(xué)習(xí))

    基于LoRa技術(shù)的STM32處理器無線程序升級(jí)系統(tǒng)設(shè)計(jì) 設(shè)計(jì)并實(shí)現(xiàn)了一款基于LoRa技術(shù)對(duì)STM32F767系列處理器通過無線方式升級(jí)程序的系統(tǒng)。該系統(tǒng)的硬件結(jié)構(gòu)包括:無線發(fā)送端、無線接收端及待升級(jí)程序的STM32F767處理器3個(gè)部分。 發(fā)送端將程序的數(shù)據(jù)文件通過LoRa技術(shù)傳遞給接收端,

    2024年02月12日
    瀏覽(24)
  • 玩客云裝新版青龍面板方法首發(fā),2023年親測(cè),所有的arm32位處理器終于可以裝新版青龍了

    先把舊版的青龍面板容器和鏡像都刪了,沒裝過的不用刪 ssh連接玩客云或其他arm32位機(jī)器,先下載這個(gè)文件 重啟docker? 分別一行一行輸入,回車 等待5-10分鐘后 裝青龍最新版

    2024年02月12日
    瀏覽(27)
  • MTK聯(lián)發(fā)科天璣9000旗艦5G移動(dòng)平臺(tái)處理器_MT6983芯片定制開發(fā)

    MTK聯(lián)發(fā)科天璣9000旗艦5G移動(dòng)平臺(tái)處理器_MT6983芯片定制開發(fā)

    MT6983天璣9000采用臺(tái)積電4納米工藝制程,CPU采用“1+3+4”三叢集Armv9架構(gòu),APU性能提升,ISP處理速度提升,最高支持3.2億像素?cái)z像頭,采用Mali-G710十核GPU,搭載R16 5G調(diào)制解調(diào)器。? MT6983天璣9000芯片基本概述: 性能提升 9000采用臺(tái)積電4納米工藝制程、Armv9架構(gòu),采用“1+3+4三叢集

    2024年02月05日
    瀏覽(24)
  • RISC-V處理器的設(shè)計(jì)與實(shí)現(xiàn)(三)—— 上板驗(yàn)證(基于野火征途Pro開發(fā)板)

    RISC-V處理器的設(shè)計(jì)與實(shí)現(xiàn)(三)—— 上板驗(yàn)證(基于野火征途Pro開發(fā)板)

    目錄 文章傳送門 一、添加串口 二、上板驗(yàn)證 三、總結(jié)與思考 RISC-V處理器的設(shè)計(jì)與實(shí)現(xiàn)(一)—— 基本指令集_Patarw_Li的博客-CSDN博客 RISC-V處理器的設(shè)計(jì)與實(shí)現(xiàn)(二)—— CPU框架設(shè)計(jì)_Patarw_Li的博客-CSDN博客 RISC-V處理器的設(shè)計(jì)與實(shí)現(xiàn)(三)—— 上板驗(yàn)證_Patarw_Li的博客-CSDN博客

    2024年02月11日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包