当前位置: 首页 > news >正文

国内网站搭建广西网站建设路

国内网站搭建,广西网站建设路,南通网站上百度首页,mysql 收费 网站建设一、概述 在一些一次性接收大批量数据的引用场合#xff0c;如果使用接收中断会频繁的进入接收中断影响代码的运行效率。为了解决这个问题可以使用串口的空闲中断DMA实现。 二、应用 在网上招了一些例程在STM32F407的平台上都没有跑通会出现各种异常#xff0c;主要原因还…一、概述 在一些一次性接收大批量数据的引用场合如果使用接收中断会频繁的进入接收中断影响代码的运行效率。为了解决这个问题可以使用串口的空闲中断DMA实现。 二、应用 在网上招了一些例程在STM32F407的平台上都没有跑通会出现各种异常主要原因还是库的版本有更新可能和当前的工程不匹配经过几天的煎熬终于调通了流程。 三、代码实现 1、初始化程序 void USART3_Init(uint32_t baudrate) {/* IO 及 时钟配置 */USART3_TX_GPIO_CLK_ENABLE(); /* 使能 串口TX脚 时钟 */USART3_RX_GPIO_CLK_ENABLE(); /* 使能 串口RX脚 时钟 */USART3_CLK_ENABLE(); /* 使能 串口 时钟 */GPIO_InitTypeDef gpio_init_struct;gpio_init_struct.Pin USART3_TX_GPIO_PIN;gpio_init_struct.Mode GPIO_MODE_AF_PP;gpio_init_struct.Pull GPIO_PULLUP;gpio_init_struct.Speed GPIO_SPEED_FREQ_HIGH;gpio_init_struct.Alternate USART3_TX_GPIO_AF; /* 复用为串口 */HAL_GPIO_Init(USART3_TX_GPIO_PORT, gpio_init_struct); /* 串口TX 脚 模式设置 *///gpio_init_struct.Pin USART3_RX_GPIO_PIN;gpio_init_struct.Alternate USART3_RX_GPIO_AF; /* 复用为USART3 */HAL_GPIO_Init(USART3_RX_GPIO_PORT, gpio_init_struct); /* 串口RX 脚 *//* USART 初始化设置 */USART3_handler.Instance USART3; /* 选择串口屏对应的串口 */USART3_handler.Init.BaudRate baudrate; /* 波特率 */USART3_handler.Init.WordLength UART_WORDLENGTH_8B; /* 字长为8位数据格式 */USART3_handler.Init.StopBits UART_STOPBITS_1; /* 一个停止位 */USART3_handler.Init.Parity UART_PARITY_NONE; /* 无奇偶校验位 */USART3_handler.Init.HwFlowCtl UART_HWCONTROL_NONE; /* 无硬件流控 */USART3_handler.Init.Mode UART_MODE_TX_RX; /* 收发模式 */HAL_UART_Init( USART3_handler); /* 使能对应的串口, 但会调用MSp */ // __HAL_UART_DISABLE_IT( USART3_handler, UART_IT_TC);__HAL_UART_ENABLE_IT( USART3_handler, UART_IT_RXNE); /* 开启接收中断 */__HAL_UART_ENABLE_IT(USART3_handler, UART_IT_IDLE); // 使能串口接收空闲中断HAL_NVIC_SetPriority(USART3_IRQn, 3, 3); /* 抢占优先级3子优先级3 */HAL_NVIC_EnableIRQ(USART3_IRQn); /* 使能USART1中断 */ __HAL_RCC_DMA1_CLK_ENABLE();// 低优先级 // __HAL_LINKDMA(USART3_handler, hdmatx, g_dma_handle); /* 将DMA与USART3联系起来(发送DMA) */ __HAL_LINKDMA(USART3_handler, hdmarx, g_dma_handle); g_dma_handle.Instance DMA1_Stream1; /* 数据流选择 */g_dma_handle.Init.Channel DMA_CHANNEL_4; /* DMA通道选择 */g_dma_handle.Init.Direction DMA_PERIPH_TO_MEMORY; /* 外设到存储器 */g_dma_handle.Init.PeriphInc DMA_PINC_DISABLE; /* 外设非增量模式 */g_dma_handle.Init.MemInc DMA_MINC_ENABLE; /* 存储器增量模式 */g_dma_handle.Init.PeriphDataAlignment DMA_PDATAALIGN_BYTE; /* 外设数据长度:8位 */g_dma_handle.Init.MemDataAlignment DMA_MDATAALIGN_BYTE; /* 存储器数据长度:8位 */g_dma_handle.Init.Mode DMA_NORMAL; /* 外设流控模式 */g_dma_handle.Init.Priority DMA_PRIORITY_MEDIUM; /* 中等优先级 */g_dma_handle.Init.FIFOMode DMA_FIFOMODE_DISABLE; /* 关闭FIFO模式 */g_dma_handle.Init.FIFOThreshold DMA_FIFO_THRESHOLD_FULL; /* FIFO阈值配置 */g_dma_handle.Init.MemBurst DMA_MBURST_SINGLE; /* 存储器突发单次传输 */g_dma_handle.Init.PeriphBurst DMA_PBURST_SINGLE; /* 外设突发单次传输 */ // HAL_DMA_Init(g_dma_handle); // 将DMA与USART3联系起来(接收DMA)HAL_UART_Receive_DMA(USART3_handler, g_rcvDataBuf, MAX_BUF_SIZE); // 开启DMA接收HAL_DMA_Start(g_dma_handle,(uint32_t)USART3-DR,(uint32_t)g_rcvDataBuf,MAX_BUF_SIZE);}2、中断处理 void USART3_IRQHandler(void) { // printf(t);uint8_t res;uint16_t PACKET_DATA_LEN;uint16_t t;__HAL_UNLOCK( USART3_handler);// if ((__HAL_UART_GET_FLAG( USART3_handler, UART_FLAG_RXNE) ! RESET)) /* 接收到数据 */ // { // HAL_UART_Receive( USART3_handler, res, 1, 1000);Buffer_Push( RF_Buffer, res); //接收数据 // printf(%c,res); // } if (__HAL_UART_GET_FLAG(USART3_handler, UART_FLAG_IDLE) ! RESET) // 获取接收IDLE标志位是否被置位{ printf(进入空闲中断 \r\n); __HAL_UART_CLEAR_IDLEFLAG(USART3_handler); // HAL_UART_DMAStop(USART3_handler); /* 异常 */ HAL_DMA_Abort(g_dma_handle);PACKET_DATA_LEN (MAX_BUF_SIZE - __HAL_DMA_GET_COUNTER(g_dma_handle));t__HAL_DMA_GET_COUNTER(g_dma_handle); printf(使用存储空间%d 剩余存储空间%d\r\n,PACKET_DATA_LEN,t);printf(接收到的数据:%s,g_rcvDataBuf);HAL_UART_Receive_DMA(USART3_handler, (uint8_t *)g_rcvDataBuf, MAX_BUF_SIZE); HAL_DMA_Start(g_dma_handle,(uint32_t)USART3-DR,(uint32_t)g_rcvDataBuf,MAX_BUF_SIZE);// 重新开启DMA传输memset(g_rcvDataBuf, 0, sizeof(g_rcvDataBuf));}} 3、测试结果 4、源码链接 STM32F407基于串口空闲中断和DMA的实现可以实现大批量数据的接收资源-CSDN文库
http://www.w-s-a.com/news/854922/

相关文章:

  • 广州建设局官方网站佛山高端网站制作公司
  • 东莞哪里能学建设网站网站备案值得吗
  • 中山 网站建设 骏域小程序开发课程
  • 北京网站建设成都微商城app官方下载
  • 网站开发用户登陆的安全wordpress 开发网站
  • 网站建设容易出现的问题四川seo关键词工具
  • 做外单网站有哪些内容服务好的南京网站建设
  • 阜阳微商城网站建设百度网站两两学一做心得体会
  • 建设银行积分网站观光农业规划设计
  • jsp项目个人网站开发用织梦做网站有什么公司会要
  • 和田网站制作无限动力网站
  • 长沙口碑好网站建设企业网站 需求
  • 哪个网站建设公司wordpress陌陌主题
  • 湖滨区建设局网站北京国际建设集团网站
  • 做服装团购有哪些网站wordpress 端口修改
  • 上海礼品定制网站响应式网站模版建站
  • 那种自行提取卡密的网站怎么做网站攻击
  • 洛阳免费网站建设qq是哪家公司开发的软件
  • 怎么做网站网页wordpress网址导航
  • 专业微信网站建设公司首选公司wordpress自动分类插件
  • 网站设计登录界面怎么做网站突然排名没了
  • wordpress 人物页面seo优化公司信
  • 高端网站建设报价网站建设需要硬件设备
  • 做国际物流在哪些网站找客户营销qq怎么申请
  • 网站做推广百度好还是360好科技厅
  • 网站开发工具排名万户网络建一个网站虽要多少钱
  • 用凡科做的网站要钱吗WordPress城市切换
  • 制作一个门户网站需要多少钱营销型网站特征
  • 手机网站 多html中国建设银行网站包头分行
  • 哪个网站做免费广告好招牌图片效果图设计制作