女人荫蒂被添全过程13种图片,亚洲+欧美+在线,欧洲精品无码一区二区三区 ,在厨房拨开内裤进入毛片

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

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

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

使用APM32系列產(chǎn)品的經(jīng)驗(yàn)總結(jié)

RTThread物聯(lián)網(wǎng)操作系統(tǒng) ? 來源:21ic論壇極海半導(dǎo)體專區(qū) ? 作者:21ic論壇極海半導(dǎo)體 ? 2022-07-11 09:48 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

串口+DMA解決數(shù)據(jù)接收的難題


之前由于項(xiàng)目需要不停地利用串口接收數(shù)據(jù),剛開始的時(shí)候采用單字節(jié)中斷的方式接收判斷。但是用來做通信的時(shí)候需要不停的產(chǎn)生串口接收中斷,會嚴(yán)重影響主程序的運(yùn)行。后來采用DMA接收的方式,但是一般情況下配置的DMA都是接收指定長度的串口數(shù)據(jù),對于未知長度的串口數(shù)據(jù)接收并不適用。后來在網(wǎng)上發(fā)現(xiàn)了一種方法可以利用串口的 空閑中斷+DMA接收的方法可解決此類問題,特別適用于不需要每個(gè)接收字節(jié)都判斷的串口數(shù)據(jù)接收,下面簡單介紹一下。

思路:采用APM32E103的串口1,并配置成空閑中斷模式且使能DMA接收,并同時(shí)設(shè)置接收緩沖區(qū)和初始化DMA。當(dāng)初始化完成之后,外部給MCU發(fā)送數(shù)據(jù)的時(shí)候,假設(shè)這幀數(shù)據(jù)長度是100個(gè)字節(jié),那么在MCU中接收到一個(gè)字節(jié)的時(shí)候并不會產(chǎn)生串口中斷,而是DMA在后臺把數(shù)據(jù)全部搬運(yùn)到你指定的緩沖區(qū)里面,當(dāng)整幀數(shù)據(jù)發(fā)送完畢之后串口才會產(chǎn)生一次中斷,此時(shí)可以利用CurrDataCounterBegin = DMA_ReadDataNumber(DMA1_Channel6);計(jì)算出本次的數(shù)據(jù)接受長度,從而進(jìn)行數(shù)據(jù)處理。

關(guān)鍵代碼分析:
#include "public.h"
#ifndef __USART_H
#define __USART_H
#include "stdio.h"

volatile uint32_t CurrDataCounterBegin = 0;
#define DMA_Rec_Len 256 //定義一個(gè)256個(gè)字節(jié)的數(shù)據(jù)緩沖區(qū)。

void uartInit(void)
{
//GPIO端口設(shè)置
GPIO_InitTypeDef GPIO_InitStructure;
USART_InitTypeDef USART_InitStructure;
NVIC_InitTypeDef NVIC_InitStructure;
DMA_InitTypeDef DMA_InitStructure;

RCM_EnableAPB2PeriphClock((RCM_APB2_PERIPH_T)(RCM_APB2_PERIPH_GPIOA | RCM_APB2_PERIPH_USART1)); //使能USART1,GPIOA時(shí)鐘
RCM_EnableAHBPeriphClock(RCM_AHB_PERIPH_DMA1); //使能DMA傳輸
USART_DeInit(USART1);//復(fù)位串口1
//USART1_TX PA9
GPIO_InitStructure.pin = GPIO_PIN_9; //PA.9
GPIO_InitStructure.speed = GPIO_SPEED_50MHz;
GPIO_InitStructure.mode = GPIO_MODE_AF_PP; //復(fù)用推挽輸出
GPIO_Config(GPIOA, &GPIO_InitStructure); //初始化PA9

//USART1_RXA10
GPIO_InitStructure.pin = GPIO_PIN_10;
GPIO_InitStructure.mode = GPIO_MODE_IN_FLOATING;//浮空輸入
GPIO_Config(GPIOA, &GPIO_InitStructure);//初始化PA10
//USART 初始化設(shè)置
USART_InitStructure.USART_BaudRate = 115200;
USART_InitStructure.USART_WordLength = USART_WORD_LEN_8B;//字長為8位數(shù)據(jù)格式
USART_InitStructure.USART_StopBits = USART_STOP_BIT_1;//一個(gè)停止位
USART_InitStructure.USART_Parity = USART_PARITY_NONE;//無奇偶校驗(yàn)位
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//無硬件數(shù)據(jù)流控制
USART_InitStructure.USART_Mode = USART_MODE_TX | USART_MODE_RX; //收發(fā)模式

USART_Config(USART1, &USART_InitStructure);

USART_EnableInterrupt(USART1, USART_INT_IDLE);//開啟空閑中斷

USART_EnableDMA(USART1,USART_DMA_RX); //使能串口1 DMA接收

USART_Enable(USART1); //使能串口

// NVIC 配置
NVIC_EnableIRQRequest(DMA1_Channel6_IRQn, 3, 2);


//相應(yīng)的DMA配置
DMA_Reset(DMA1_Channel6);
DMA_InitStructure.DMA_PeripheralBaseAddr = (u32)&USART1->DR;//DMA外設(shè)ADC基地址
DMA_InitStructure.DMA_MemoryBaseAddr = (u32)DMA_Rece_Buf;//DMA內(nèi)存基地址
DMA_InitStructure.DMA_DIR = DMA_DIR_PERIPHERAL_SRC;//數(shù)據(jù)傳輸方向,從外設(shè)讀取發(fā)送到內(nèi)存
DMA_InitStructure.DMA_BufferSize = DMA_Rec_Len;//DMA通道的DMA緩存的大小
DMA_InitStructure.DMA_PeripheralInc = DMA_PERIPHERAL_INC_DISABLE;//外設(shè)地址寄存器不變
DMA_InitStructure.DMA_MemoryInc = DMA_MEMORY_INC_ENABLE;//內(nèi)存地址寄存器遞增
DMA_InitStructure.DMA_PeripheralDataSize = DMA_PERIPHERAL_DATA_SIZE_WOED;//數(shù)據(jù)寬度為8位
DMA_InitStructure.DMA_MemoryDataSize = DMA_MEMORY_DATA_SIZE_WOED; //數(shù)據(jù)寬度為8位
DMA_InitStructure.DMA_Mode = DMA_MODE_NORMAL;//工作在正常緩存模式
DMA_InitStructure.DMA_Priority = DMA_PRIORITY_HIGH; //DMA通道 x擁有中優(yōu)先級
DMA_InitStructure.DMA_M2M = DMA_M2MEN_ENABLE;//DMA通道x沒有設(shè)置為內(nèi)存到內(nèi)存?zhèn)鬏?br /> DMA_Init(DMA1_Channel6, &DMA_InitStructure);//根據(jù)DMA_InitStruct中指定的參數(shù)初始化DMA的通道

DMA_EnableInterrupt(DMA1_Channel6, DMA_INT_TC);
CurrDataCounterBegin = DMA_ReadDataNumber(DMA1_Channel6);

DMA_Enable(DMA1_Channel6);
}

//串口中斷函數(shù)
void USART1_IRQHandler(void) //串口1中斷服務(wù)程序
{

if(USART_ReadStatusFlag(USART1, USART_FLAG_IDLE) != RESET)//接收中斷(接收到的數(shù)據(jù)必須是0x0d 0x0a結(jié)尾)
{
USART_RxData(USART1);//讀取數(shù)據(jù) 注意:這句必須要,否則不能夠清除中斷標(biāo)志位。
Usart1_Rec_Cnt = DMA_Rec_Len-CurrDataCounterBegin(DMA1_Channel6); //算出接本幀數(shù)據(jù)長度

//幀數(shù)據(jù)處理函數(shù)
printf ("The lenght:%d ",Usart1_Rec_Cnt);
printf ("The data: ");
USART_TxData(DMA_Rece_Buf,Usart1_Rec_Cnt);
USART_ClearIntFlag(USART1, USART_FLAG_IDLE); //清除中斷標(biāo)志
DMA_Enable(DMA1_Channel6); //恢復(fù)DMA指針,等待下一次的接收
}

原文標(biāo)題:APM32芯得 EP.03 | APM32E103串口+DMA解決數(shù)據(jù)接收的困擾

文章出處:【微信公眾號:RTThread物聯(lián)網(wǎng)操作系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

審核編輯:彭靜

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

    關(guān)注

    146

    文章

    17942

    瀏覽量

    363435
  • dma
    dma
    +關(guān)注

    關(guān)注

    3

    文章

    576

    瀏覽量

    102994
  • 串口數(shù)據(jù)
    +關(guān)注

    關(guān)注

    0

    文章

    34

    瀏覽量

    14107

原文標(biāo)題:APM32芯得 EP.03 | APM32E103串口+DMA解決數(shù)據(jù)接收的困擾

文章出處:【微信號:RTThread,微信公眾號:RTThread物聯(lián)網(wǎng)操作系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

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

    基于極海APM32E103 MCU的CoreMark測試方法

    CoreMark跑分可以了解到MCU的算力。下面以APM32E103芯片和Keil為例,介紹一下如何在APM32上面運(yùn)行CoraMark測試。CoreMark需要定時(shí)器用于計(jì)時(shí),還需要用串口來打印輸出測試結(jié)果。
    的頭像 發(fā)表于 06-12 09:42 ?427次閱讀
    基于極海<b class='flag-5'>APM</b>32E103 MCU的CoreMark測試方法

    GaN E-HEMTs的PCB布局經(jīng)驗(yàn)總結(jié)

    GaN E-HEMTs的PCB布局經(jīng)驗(yàn)總結(jié)
    的頭像 發(fā)表于 03-13 15:52 ?523次閱讀
    GaN E-HEMTs的PCB布局<b class='flag-5'>經(jīng)驗(yàn)總結(jié)</b>

    致真精密儀器探針臺系列產(chǎn)品介紹

    致真精密儀器探針臺系列產(chǎn)品介紹
    的頭像 發(fā)表于 02-18 10:47 ?464次閱讀
    致真精密儀器探針臺<b class='flag-5'>系列產(chǎn)品</b>介紹

    致真精密儀器低溫設(shè)備系列產(chǎn)品介紹

    致真精密儀器低溫設(shè)備系列產(chǎn)品介紹
    的頭像 發(fā)表于 02-18 10:45 ?452次閱讀
    致真精密儀器低溫設(shè)備<b class='flag-5'>系列產(chǎn)品</b>介紹

    安科瑞APM產(chǎn)品及其平臺集成在智能電力管理中的應(yīng)用研究

    安科瑞 程瑜 187 0211 2087 摘要 本文研究了安科瑞APM產(chǎn)品及其平臺集成在智能電力管理中的應(yīng)用。通過對APM系列產(chǎn)品的功能特點(diǎn)、技術(shù)優(yōu)勢以及在工業(yè)、商業(yè)和公共設(shè)施等領(lǐng)域的
    的頭像 發(fā)表于 02-13 14:52 ?414次閱讀
    安科瑞<b class='flag-5'>APM</b><b class='flag-5'>產(chǎn)品</b>及其平臺集成在智能電力管理中的應(yīng)用研究

    源杰科技推出50G EML+SOA批量系列產(chǎn)品

    下一代高速PON網(wǎng)絡(luò)設(shè)計(jì)。 此次推出的50G EML+SOA系列產(chǎn)品,是基于源杰科技在10G 1577nm EML+SOA大規(guī)模量產(chǎn)中積累的豐富經(jīng)驗(yàn),經(jīng)過精心研發(fā)而成。該系列產(chǎn)品不僅滿足了當(dāng)前市場對高速、大功率PON光芯片的需求
    的頭像 發(fā)表于 02-12 10:23 ?762次閱讀

    N32A455xxL8系列產(chǎn)品簡介

    電子發(fā)燒友網(wǎng)站提供《N32A455xxL8系列產(chǎn)品簡介.pdf》資料免費(fèi)下載
    發(fā)表于 01-22 16:37 ?0次下載
    N32A455xxL8<b class='flag-5'>系列產(chǎn)品</b>簡介

    N32G451系列產(chǎn)品簡介

    電子發(fā)燒友網(wǎng)站提供《N32G451系列產(chǎn)品簡介.pdf》資料免費(fèi)下載
    發(fā)表于 01-22 15:34 ?1次下載
    N32G451<b class='flag-5'>系列產(chǎn)品</b>簡介

    PIC32CM MC00系列產(chǎn)品簡介

    電子發(fā)燒友網(wǎng)站提供《PIC32CM MC00系列產(chǎn)品簡介.pdf》資料免費(fèi)下載
    發(fā)表于 01-21 14:06 ?0次下載
    PIC32CM MC00<b class='flag-5'>系列產(chǎn)品</b>簡介

    上海貝嶺150V SGT MOSFET系列產(chǎn)品介紹

    上海貝嶺推出150V SGT MOSFET系列產(chǎn)品。貝嶺150V SGT系列產(chǎn)品采用業(yè)界先進(jìn)工藝,使得器件具有良好的柵極漏電流IGSS性能;采用深溝槽、多層外延襯底以及多重浮空環(huán)終端結(jié)構(gòu),使得器件
    的頭像 發(fā)表于 01-03 10:19 ?1127次閱讀
    上海貝嶺150V SGT MOSFET<b class='flag-5'>系列產(chǎn)品</b>介紹

    怎么用Clion開發(fā)APM32

    APM32 官方 SDK 中提供了三種開發(fā)環(huán)境:Keil、IAR 和 Eclipse。不否認(rèn)這三種環(huán)境的強(qiáng)大,但是在 AI 時(shí)代做嵌入式開發(fā),用這三種環(huán)境就顯得有點(diǎn)不夠優(yōu)雅了。本篇文章主要介紹怎么用
    的頭像 發(fā)表于 12-17 09:19 ?1658次閱讀
    怎么用Clion開發(fā)<b class='flag-5'>APM32</b>

    APM32F10xx進(jìn)入低功耗模式的問題分析

    近日,在學(xué)習(xí)APM32開發(fā)板關(guān)于PMU模塊的內(nèi)容,看到很多內(nèi)容都是調(diào)用WFI內(nèi)核指令進(jìn)入低功耗模式,于是自己想嘗試調(diào)用WFE內(nèi)核指令進(jìn)入低功耗模式,但在APM32F10xx中,我運(yùn)用按鍵中斷,在中斷
    的頭像 發(fā)表于 10-18 16:13 ?797次閱讀
    <b class='flag-5'>APM</b>32F10xx進(jìn)入低功耗模式的問題分析

    AM57xx Sitara IO配置要求德州儀器Sitara系列產(chǎn)品

    電子發(fā)燒友網(wǎng)站提供《AM57xx Sitara IO配置要求德州儀器Sitara系列產(chǎn)品.pdf》資料免費(fèi)下載
    發(fā)表于 10-11 10:15 ?0次下載
    AM57xx Sitara IO配置要求德州儀器Sitara<b class='flag-5'>系列產(chǎn)品</b>

    藍(lán)海華騰參股公司頂控科技發(fā)布運(yùn)動控制一體機(jī)系列產(chǎn)品

    藍(lán)海華騰參股公司深圳市頂控科技有限公司運(yùn)動控制一體機(jī)系列產(chǎn)品上市!本次新品發(fā)布會發(fā)布三個(gè)系列產(chǎn)品,這三個(gè)系列又包含了五款新產(chǎn)品
    的頭像 發(fā)表于 09-03 09:28 ?828次閱讀

    芯來NA系列產(chǎn)品再獲ISO 26262 ASIL-D產(chǎn)品認(rèn)證證書

    近日,芯來科技NA300系列產(chǎn)品正式獲得了德國exida頒發(fā)的ISO26262 ASIL-D產(chǎn)品認(rèn)證證書。
    的頭像 發(fā)表于 07-15 16:11 ?962次閱讀
    芯來NA<b class='flag-5'>系列產(chǎn)品</b>再獲ISO 26262 ASIL-D<b class='flag-5'>產(chǎn)品</b>認(rèn)證證書
    主站蜘蛛池模板: 石嘴山市| 邹城市| 大洼县| 蒲江县| 湘潭市| 定边县| 景东| 固阳县| 澎湖县| 五大连池市| 安顺市| 炎陵县| 张家港市| 仲巴县| 惠东县| 渝中区| 钟祥市| 蕲春县| 朝阳市| 阿拉尔市| 房山区| 清徐县| 额济纳旗| 金华市| 长宁区| 英吉沙县| 沽源县| 威宁| 霍城县| 孟村| 曲水县| 浦北县| 利川市| 永嘉县| 鄂托克旗| 河东区| 澄城县| 钟山县| 资溪县| 和林格尔县| 达日县|