stm32f4 dma + uart idle + double 调试小记
使用 stm32f4 调试uart 接收, 使用 空闲中断,dma 双缓冲模式,有以下几点需要注意的。
调试的时候断点不要打在 if (USART_GetITStatus(USART6, USART_IT_IDLE) != RESET) 这种语句上面,要打在 if 的代码块里面。mdk 调试的时候,会出现一些 bug,当在 if (USART_GetITStatus(USART6, USART_IT_IDLE) != RESET) 断点的时候,能够看到 idle 信号出现,但是只要向下执行,不管是单步还是怎样,下一步的时候 idle 标志位就会消失。导致进不了空闲中断处理语句。但是如果断点打在代码块里面,就能够正常进入了。
使用双缓冲的时候, DMA_DoubleBufferModeConfig, DMA_DoubleBufferModeCmd 需要放在 DMA_Cmd 前面,还有别忘了 开启 circular 模式。
接收的时候,已经接收的字节数,等于 buffersize - ndtr 的结果。
开启双缓冲的时候,可以不用 disable dma,只需要在 空闲中断里面,识别出 ndtr 和 ct,然后经过计算得出本次传送的数据个数,并把本次开始的地址和数据个数记录下来,就可以由非中断部分程序来读取这一帧接收的数据。
stm32f4 dma + uart idle + double 调试小记的更多相关文章
- [置顶] 如何在Python IDLE中调试Python代码?
好久没有用Python了,居然忘记了怎么在Python IDLE中调试Python代码.百度了一下,然后还是写下来吧,以免以后又忘记了. 1. Set break point in the sourc ...
- VS2017 远程调试小记
VS2017 远程调试小记 支持windows\linux\macos, 直接连接项目点的上线版本代码进行调试.保证bug在同个环境下实时追踪. 注意点 双方的 msvsmon.exe版本需一致,最好 ...
- uart串口的调试学习
用FPGA设计了数据接收和发送模块,FIFO模块,此处FIFO调用的是Show-ahead模式,在下一篇博客中将会分析这个问题. 用串口调试工具发送数据,数据接收模块将接收到的串行数据转换为并行数据( ...
- Stm32l151+mpu6050+uart读取数据调试
新近买了一个MPU6050模块,如上图,这个模块上的三块黑色分别是:稳压芯片662K,STM8s003f3p6,MPU6050. 根据此模块的说明书,可以使用USB转TTL将模块与上位机连接,通过卖家 ...
- IntelliJ IDEA 调试小记
一.IntelliJ IDEA 调试没有F6 Eclipse调试有F6,意为下一步,递增F8.可IntelliJ IDEA 调试没有这个. 二.图解 Step Over (F8): 下一步 (相当于E ...
- Cypress的开发板的UART接口打印调试信息
说实话,在官方论坛现在还没有找到相关有用的消息,因为我们这个开发板的UART没引出来. http://www.cypress.com/?app=forum&id=167&rID=527 ...
- PCI-CAN卡驱动与数据通信调试小记
以前做项目,不注意记录调试过程中遇到的问题,以后应该注意这一点.今天抽空总结一下PCI-CAN卡驱动与数据通信调试过程中遇到的问题,方便以后回忆和思考. 1. 中断服务之字节流报文组包状态机 这是一个 ...
- stm32 cubemx hal dma uart参考例程,发送和接收
参考:https://blog.csdn.net/toopoo/article/details/80012317https://blog.csdn.net/morixinguan/article/de ...
- STM32 DMA(UART)
转载自https://blog.csdn.net/as480133937/article/details/104827639/
随机推荐
- 本地Git仓库与GitHub/GitLab仓库同步
本地仓库即为在你的电脑上的项目文件,远程仓库即为服务器仓库,如GitHub.GitLab或其他等.此处以GitHub介绍本地仓库与远程仓库的同步.可先创建本地仓库,也可先创建GitHub仓库,但都需要 ...
- gitlab实现webhook触发jenkins 自动,构建,测试,push webhook构子 总结
最新一直在学习 工作 + 学习 去掉 90% 所以blog 一直没更 真是很不好! exsi ceph gitlab jenkins harbor k8s docker-compose ap ...
- 阿里云安装mysql,初始化密码修改
阿里云服务器,centos7, rpm包安装MySQL,初始化了个奇葩密码 登陆不上, 修改配置文件/etc/my.cnf,在[mysqld]下面添加一行代码:skip-grant-tables se ...
- 第1节 IMPALA:2、架构介绍
impala的架构以及查询计划: impalad :从节点 对应启动一个impala-server的进程 ,主要负责各种查询计划,官方建议与所有的datanode安装在同一台机器上面 impala-s ...
- JAVA笔记01 变量的取名
第2章 有意义的命名2.1 介绍2.2 名副其实 变量名太随意,haha.list1.ok 这些都没啥意义2.3 避免误导 包含List等关键字.字母o与数字0等2.4 做有意义的区分 反面教材,变量 ...
- 吴裕雄 Bootstrap 前端框架开发——Bootstrap 字体图标(Glyphicons):glyphicon glyphicon-move
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...
- java集合简单特性
- LeetCode455 分发饼干(简单贪心—Java优先队列简单应用)
题目: 假设你是一位很棒的家长,想要给你的孩子们一些小饼干.但是,每个孩子最多只能给一块饼干.对每个孩子 i ,都有一个胃口值 gi ,这是能让孩子们满足胃口的饼干的最小尺寸:并且每块饼干 j ,都有 ...
- 二十九、SAP中输出漂亮的表格
一.代码如下 二.输出效果如下 *&---------------------------------------------------------------------* *& ...
- 060-PHP函数定义和调用
<?php function add($x,$y){ //定义函数add return $x+$y; } echo add(15,6); //调用函数并输出结果 ?>