STM32
mickey35
这个作者很懒,什么都没留下…
展开
-
uC/OS-II之系统函数
原文地址:博客园任务管理1 OSTaskCreate()建立一个新任务。任务的建立可以在多任务环境启动之前,也可以在正在运行的任务中建立。中断处理程序中不能 建立任务。一个任务可以为无限循环的结构。函数原型:INT8U OSTaskCreate(void (*task)(void *pd), void *pdata, OS_STK *ptos, INT8U prio);参数说明:task 是指向转载 2016-10-12 08:52:38 · 660 阅读 · 0 评论 -
STM32串口DMA连续发送两帧,导致数据部分覆盖的问题
问题描述使用STM32的串口进行DMA发送(Noraml模式),在某个任务中连续调用两次发送函数log_printf(),但是发回的数据在串口调试助手上显示与预期不符。第一次发送的数据有一部分被第二次发送的数据覆盖,如图所示: 任务代码如下:/* Log_Task function */void Log_Task(void const * argument){ /* US...原创 2018-05-03 22:27:44 · 8790 阅读 · 1 评论 -
STM32串口使用心得(一)——DMA+空闲中断接收
之前曾经写过一篇《关于CubeMX的串口全双工接收发送锁死的问题》的文章,讨论了STM32的串口在全双工模式下会出现锁死问题的现象。当时的解决办法是在串口接收中断中加入解锁机制,貌似临时解决了这个问题。但这几天程序不知道怎么回事,又开始频繁地出现死机现象,而且仿真的时候会进入HardFault()。原创 2017-11-14 13:06:36 · 38042 阅读 · 24 评论 -
STM32串口使用心得(二)——串口溢出中断(ORE)
关于STM32的串口溢出中断,之前在网上看过两篇博客《STM32串口接收中断溢出问题解决》和《STM32 串口中的硬件BUG,请注意!》,也是从中学习到了串口ERROR的用法。关于串口溢出中断的相关寄存器操作和一些细节,两位博主已经讲得很详细了,在此感谢两位博主的辛勤奉献。原创 2017-11-14 18:20:11 · 32269 阅读 · 0 评论 -
结构体内不定长数组初始化,error: #1077: an initializer cannot be specified for a flexible array member
转载出处:STM32Cube原文问题描述最近用NRF24L01的驱动发现一个很特别的结构体,原来是孤陋寡闻了,这个事C99新增的标准, 但是在keil4.7中始终编译报错! 提取出来报错的代码如下:typedef struct { char *name; unsigned char size; unsigned char rw;} n转载 2017-07-24 18:20:33 · 2607 阅读 · 1 评论 -
关于CubeMX的串口全双工接收发送锁死的问题
一,现象描述在使用STM32 CubeMX生成的工程中用到了串口2,发送开启了DMA模式,接收使用中断,每次接收一个字节,在回调函数中调用HAL_UART_Receive_IT(&huart2,(u8 *)&rx_data_2,1)接收开启函数。刚开始工作还算正常,但运行一段时间后(时间长度随机),调试窗口上串口数据不再更新,使用示波器检查引脚仍有数据接收到,STM32整体运行正常。初步判断,原创 2017-07-04 09:28:42 · 11903 阅读 · 17 评论 -
STM32的硬件I2C与AT24C16
刚学STM32的时候就听闻STM32的硬件I2C存在重大bug,会导致运行卡死在等待ACK的过程中,所以一直以来对其避而远之,转而以模拟I2C取代之。最近这段时间一直在用STM32 CubeMX,图形化设置界面屡试不爽,连USB这种复杂外设都能轻易完成初始化,想来I2C还算是比较简单的,而硬件I2C的时序又比较准,无论成败,还是值得一试的。为了简单起见,就先用AT24C64这种最基础的IIC设备进行原创 2017-05-17 16:59:02 · 6137 阅读 · 3 评论 -
STM32F407使用USB作虚拟串口出现黄感叹号
最近因为工作需要使用到了STM32F407VET6的USB_OTG_FS作为虚拟串口。 之前用STM32 CubeMX生成过STM32F103C8T6的虚拟串口代码,感觉用起来很方便,于是这次的F407也用MX生产工程,奈何竟然遇到诸多难题,整整困扰了两天。 先说一下我的流程。原创 2017-05-12 18:20:24 · 13852 阅读 · 13 评论 -
MPU6050使用dmp时,Pitch范围只有-90-90的问题
MPU6050的DMP自检与姿态换算的问题原创 2016-12-27 09:07:17 · 5961 阅读 · 4 评论 -
iar中使用DMA+printf+uart1
前段时间成功地重定向串口发送功能到系统printf函数上,printf("《你的名字》: %s",Name);用起来感觉真爽,但就是太占资源了,于是就想用DMA方式发送数据,但又想要printf的便捷性,于是找到了下面这篇文章 http://blog.cechina.cn/ting123/222234/message.aspx虽然演示的是IAR上的代码,但其实就是定义了一个可变参数的函数,把发转载 2016-12-15 16:22:13 · 2702 阅读 · 1 评论 -
Keil5 代码自动补全时卡死
问题描述Keil 5.25.0.0,开启了代码补全功能,3字符补全。在“.c”文件编辑页面输入一个关键字,比如“break”。正常情况下,输入3个字符“bre”后,会自动跳出关联词。然而如果输入错误,比如输入了“brw”,Keil会进入假死状态,整个操作系统也反应缓慢,CPU使用率极高。大概持续10s左右,该状态结束,然后没有“brw”的关联词。解决办法退出安全管家(或者其他安全软...原创 2018-10-10 15:39:12 · 4675 阅读 · 3 评论