0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于GD32F310使用串口的空闲中断完成不定长数据的接收

冬至子 来源:兆易创新GD32 MCU 作者:飞扬的青春 2022-09-30 14:20 次阅读

我们在单片机开发中,经常会用到串口,这时候我可以通过使用DMA,减少CPU的占用。使用串口的空闲中断可以完成不定长数据的接受。所以本次我们从基础的外设移植开始完成此款板子的体验。

首先看下板子吧。

板子整体还是GD一贯风格,还是白色板子,这次由于芯片的管脚较小,目前所以引出方式变了。把可以用的IO都引出了。

本次我们使用串口0进行测试,此测试完成后我们也可以非常方便的移植到串口1上。

poYBAGM2iW6AAHsRAADNSwgMGd0509.png


我在其基础上移植了新的开发模板,主要导入我们的外设库和CMSIS库即可。例程上我使用了一个闪烁LED灯的例子。

poYBAGM2iZqAGEpwAAB3GUghSos588.png

主循环中我们就两个任务,一个是点灯,一个是完成串口接收和发送。

poYBAGM2ia6APWTtAACw_KOZcno967.png

在串口初始话的时候需要主要下,我们使能了串口的中断后,还需要打开其串口的空闲中断,不然进不了接受中断函数中。

pYYBAGM2icKAdKP7AACXFCN4b9Y355.png

中断函数中我们只需要完成中断服务函数的编写,进入串口接收空闲中断后,就让其使用DMA的方式接收处理数据。

串口发送结束后也会调用函数关闭其发送。

pYYBAGM2idmAZqOMAAFN5t34oFA139.png

效果就是只要我们数据在100字节以内都可以完成数据接受和发送。且长度可变。




审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    5998

    文章

    43963

    浏览量

    620694
  • led灯
    +关注

    关注

    22

    文章

    1551

    浏览量

    107023
  • 中断
    +关注

    关注

    5

    文章

    884

    浏览量

    41020
  • 串口
    +关注

    关注

    14

    文章

    1483

    浏览量

    74494
收藏 人收藏

    评论

    相关推荐

    FreeRTOS串口中断接收不定长数据与二值信号量的使用

    FreeRTOS例程,使用串口中断接收不定长数据,以及二值信号量的使用
    的头像 发表于 09-26 09:02 3505次阅读
    FreeRTOS<b class='flag-5'>串口中断</b><b class='flag-5'>接收</b><b class='flag-5'>不定长</b>的<b class='flag-5'>数据</b>与二值信号量的使用

    用STM32F030F4串口空闲中断接收不定长数据,发生中断后不知道如何计算接收到的字节数?

    我用STM32F030F4串口空闲中断接收不定长数据
    发表于 04-03 07:12

    不定长数据接收的原理IDLE空闲中断介绍

    1_V1.8.0(STM32Cube MCU Package for STM32F1xx Series)本文内容:不定长数据接收的原理IDLE空闲
    发表于 08-16 07:42

    STM32HAL库串口空闲中断+DMA是如何去实现串口接收不定长数据

    STM32HAL库串口空闲中断+DMA是如何去实现串口接收不定长
    发表于 11-16 09:01

    STM32如何使用空闲中断接收不定长数据

    STM32如何使用空闲中断接收不定长数据
    发表于 11-17 07:21

    基于DMA接收利用空闲模式接收不定长数据

    STM32L051 HAL库非DMA模式使用空闲中断接收不定长数据因项目中的上位机与单片机之间的通信协议采用非标准协议,上位机发送的
    发表于 01-12 07:44

    如何利用串口空闲中断接收不定长数据

    在上一篇文章STM32单片机串口空闲中断接收不定长数据中介绍了利用
    发表于 02-22 07:34

    可以用串口空闲中断+DMA来实现串口接收不定长数据吗?

    串口接收不定长数据,论坛上有人说可以用串口空闲中断+
    发表于 03-07 14:49

    STM32+串口空闲中断实现不定长数据接收

    常见的数据帧断帧方式有两种,一种是通过固定的协议格式断帧,另外一个是通过两帧数据的时间断帧,下面介绍最后一种,利用STM32F1的串口空闲中断
    发表于 12-20 19:34 7次下载
    STM32+<b class='flag-5'>串口</b><b class='flag-5'>空闲</b><b class='flag-5'>中断</b>实现<b class='flag-5'>不定长</b><b class='flag-5'>数据</b><b class='flag-5'>接收</b>

    STM32+串口空闲中断实现不定长数据接收

    常见的数据帧断帧方式有两种,一种是通过固定的协议格式断帧,另外一个是通过两帧数据的时间断帧,下面介绍最后一种,利用STM32F1的串口空闲中断
    发表于 12-24 18:46 10次下载
    STM32+<b class='flag-5'>串口</b><b class='flag-5'>空闲</b><b class='flag-5'>中断</b>实现<b class='flag-5'>不定长</b><b class='flag-5'>数据</b><b class='flag-5'>接收</b>

    STM32之串口DMA接收不定长数据

    目录STM32之串口DMA接收不定长数据引言DMA简介什么是DMA在STM32的DMA资源DMA接收数据
    发表于 12-24 19:03 30次下载
    STM32之<b class='flag-5'>串口</b>DMA<b class='flag-5'>接收</b><b class='flag-5'>不定长</b><b class='flag-5'>数据</b>

    STM32单片机串口空闲中断+DMA接收不定长数据

    在上一篇文章STM32单片机串口空闲中断接收不定长数据中介绍了利用
    发表于 12-27 19:24 18次下载
    STM32单片机<b class='flag-5'>串口</b><b class='flag-5'>空闲</b><b class='flag-5'>中断</b>+DMA<b class='flag-5'>接收</b><b class='flag-5'>不定长</b><b class='flag-5'>数据</b>

    单片机接收不定长数据,最优解是DMA+串口空闲中断

    如果单片机不支持串口空闲中断和DMA,可以参考之前写的,串口只用接收中断
    发表于 12-28 19:26 19次下载
    单片机<b class='flag-5'>接收</b><b class='flag-5'>不定长</b>的<b class='flag-5'>数据</b>,最优解是DMA+<b class='flag-5'>串口</b><b class='flag-5'>空闲</b><b class='flag-5'>中断</b>

    使用UART IDLE中断接收不定长数据

    在本文中,将介绍使用该中断来进行不定长串口数据接收的办法。通过该中断,可以省却用于检测数据传输是
    发表于 02-08 15:29 4次下载
    使用UART IDLE<b class='flag-5'>中断</b><b class='flag-5'>接收</b><b class='flag-5'>不定长</b><b class='flag-5'>数据</b>

    STM32CubeMX之串口接收不定长数据

    基本串口通信通常只能接收定长数据,无法稳定接收不定长数据
    的头像 发表于 05-11 09:59 2234次阅读
    STM32CubeMX之<b class='flag-5'>串口</b><b class='flag-5'>接收</b><b class='flag-5'>不定长</b><b class='flag-5'>数据</b>