• 实验一:

环境:PTR5618模块烧写SDK15.2.0下peripheral文件夹的uart例程,只改了引脚位置(改成该模块原来的TXRX引脚映射),不需更改时钟。

  1. 波特率1M下,发送200个字节(首字节位为0x30,依次加1);理论1M波特率下,一个字节(10Bit:1起始位+8数据位+1停止位)发送时间为10us,200字节发送时间为2ms,可实际是一个字节是19us和200个字节3.8ms。单片机接收数据后打印出来的数据倒是正确,并没有进入空闲中断。
  2. 波特率115200下,示波器抓数据。理论115200波特率下,一个字节(10Bit:1起始位+8数据位+1停止位)发送时间为86.8us,200字节发送时间为17.36ms,可实际是94us和19.4ms。串口接收数据也正常。
  3. 为了实验可靠性,验证了STM32F103单片机(就是接收所用单片机)的串口波形,波特率分别为1M,115200。结果理论速度跟实际速度相符合。
  • 实验二:

环境:PTR5618模块烧写SDK15.2.0下ble_peripheral文件夹的ble_app_uart例程,改了引脚位置(改成该模块原来的TXRX引脚映射),更改为内部RC时钟。

  1. APP设置500ms循环发送以下数据:0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~侾(?, 蓝牙模块接收数据后通过串口发送给F103单片机,单片机用另一串口打印,示波器抓波形,200个字节发送时间远超过理论时间。第一个字节停止位空闲过长,比单独测试蓝牙串口的空闲都长,这是导致单片机进入两次空闲中断,最后0X30丢失的原因。停止位空闲也是比理论要长,但不足以触发空闲中断。
  2. 最后,为了实验可靠性,抓了蓝牙接收到的数据包,有接到0x30,问题出在串口上。

实验三:补充实验,之前发送数据大约90字节,现减少一半,发送

0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ

效果正常,波形空闲时间也没有那么长了,没触发空闲中断。

总结:

  1. 单独测试串口,虽然停止位空闲时间也不正常,但接收正常(1M和115200波特率下)。
  2. 联调蓝牙和串口,发送90个字节左右情况下,首字节停止位过长,导致触发多次空闲中断。字节数减少空闲时间会减少。
  3. 发送按例程中可以设置DMA传输,可不管设置还是没设置情况都一样,目前猜测两种可能,其一,该芯片的DMA机制不一样,其二,该芯片蓝牙驱动自带的操作系统机制影响了空闲中断机制。

NORDIC 52832开发2之串口空闲时间过长相关推荐

  1. NORDIC 52832开发1之环境搭建及PTR5618模块性能测试

    由于项目需要,笔者最近开发蓝科讯通科技的PTR5618蓝牙5.0模块,芯片是NORDIC的NRF52832.现在是初步把SDK摸了一下,打通了透传. 这篇先介绍模块的使用和测试及开发环境的搭建. 首先 ...

  2. 一名优秀的开发人员,空闲时间会敲代码吗

    原网页:Do I Need to Code in My Free Time to Be a Good Developer? 作者:Maxim Chechenev "只有在空闲时间也敲代码,才 ...

  3. 手把手教你从0创建STM32串口空闲+DMA数据接收工程

    串口通讯是嵌入式系统中最常用的通讯方式. STM32的串口接收普通的方式是在串口读数据寄存器非空RXNE中断(Read data register not empty)中1个字节1个字节的接收串口数据 ...

  4. stm32: 串口空闲中断的实现(HAL库)

    STM32利用串口空闲中断来分包(HAL库) 文章目录 STM32利用串口空闲中断来分包(HAL库) 1. 开发环境 2. 串口中断接收的问题和解决办法 3. 串口空闲中断分包的原理 4. STM32 ...

  5. STM32 hal库串口空闲中断最新用法

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.串口空闲中断是什么? 二.使用步骤 1.hal库空闲中断接收函数 2.使用方法 3.最终效果 实际效果 总结 前言 ...

  6. 华大HC32F460串口空闲中断+DMA收发配置,记录一下自己遇到的坑

    华大HC32F460串口空闲中断+DMA收发配置,记录一下自己遇到的坑 华大HC32F460串口空闲中断+DMA收发配置,记录一下自己遇到的坑 注:个人笔记,如有错误,还望谅解. STM32 在STM ...

  7. 基于在STM32下完成FreeRTOS的多任务程序开发,多任务串口以及AHT20封装库,原理图,PCB图以及AHT20(实际用到的是LMT70)及采集一次温度数据的模块实战

    基于在STM32下完成FreeRTOS的多任务程序开发,多任务串口以及AHT20封装库,原理图,PCB图以及AHT20(实际用到的是LMT70)及采集一次温度数据的模块实战 序 言 1)FreeRTO ...

  8. nordic 52832中添加RTT打印

    JlinkRTT RTT是基于Jlink调试器的实时传输技术,可以代替串口打印一些调试信息,不需要额外接线. nordic 52832官方例程中,会将RTT打印函数做进一步封装,下面就讲一下怎么开启5 ...

  9. 梳理STM32F429之通信传输部分---NO.3 串口空闲IDEL中断+DMA+FreeRTOS

    梳理STM32F429之通信传输部分---NO.3 串口空闲IDEL中断+DMA+FreeRTOS 目录 一.串口空闲IDEL中断: 二.串口及串口中断的配置: 三.stm32f4xx_it.h 的配 ...

最新文章

  1. Angular——基本使用
  2. Navicat工具、pymysql模块
  3. Qt三种方式实现FTP上传功能
  4. nginx和pcre错误问题
  5. python 数组 运算_python数据分析(二) python numpy--数组和矢量运算--数组对象
  6. springMVC-配置Bean
  7. ac3168无线网卡驱动下载_更换BCM94360CS2网卡,拯救黑苹果无线网络
  8. day 107radis非关系型数据库
  9. Java语言的特点和特性
  10. 基于分割和识别的服饰商品的自动推荐
  11. ...提升网站程序开发安全的6大诀窍...
  12. matlab中的uigetfile函数和setappdata函数
  13. 图论(五)单源最短路算法
  14. DDR 参数 内存延迟时序“CL-tRCD-tRP-tRAS”
  15. 网易免费的企业邮箱smtp的地址
  16. MIT 操作系统实验 MIT JOS lab1
  17. 创文明城市在路上,信息报送有高招
  18. 【python】详解pandas.DataFrame.resample根据时间聚合采样(一)
  19. pp模块常用表 sap_SAP PP模块常用T-CODE
  20. 关于CSDN云主机从购买到上手体验的真实感受与些许建议 | CSDN开发云

热门文章

  1. 《大学数学遐想》系列之函数与数列
  2. kohana的modules集合
  3. OpenCV学习(22) opencv中使用kmeans算法
  4. JAVA追加写文件方法
  5. Linux串口打印信息工具,基于Qt实现Linux或Windows串口打印工具
  6. mysql检索面试题目_MySQL面试题目二十七道整理
  7. 车险往年保单关联计算的性能优化
  8. 3D印花芭蕾舞鞋为舞者科学地保护双脚
  9. kickstart+TFTP+PXE+NFS+DHCP批量安装系统,raid
  10. php 使用curl模拟登录人人(校内)网