- 博客(15)
- 收藏
- 关注
原创 NIOSII builed时出现 Type Symbol 'XXXXX' could not be resolved 的解决方案
通常出现该问题时,BSP已经正确更新且编译了,主工程却显示找不到包含的头文件,且找不到的头文件都在BSP工程内。环境是:quartus ii 17.0,器件是CycloneV E,系统WIN7 64bit。 问题的源头就是主工程的includes path没有正确设置。在主工程右键选择Properties->C/C++ Gereral->Paths and Symbols->In
2017-12-25 20:43:44 2013
原创 NIOSII开发中NULL、ENOTTY等不识别
Most likely you have some system-specific include directories missing in your settings which makes it impossible for indexer to correctly parse iostream, thus the errors. Selecting Index -> Search F
2017-04-07 08:48:26 649
原创 NIOSII开发如何设置为c99
Using the Software Build Tools Eclipse GuiRight Click On Project Folder in the Project ExplorerSelect PropertiesNios II Application PropertiesUser Flags: -std=c99With software build tools
2017-04-06 15:47:35 831
原创 stm32 usart在DMA模式下只能发送一次
问题描述:使用STM32 cube生成usart2 DMA direct mode(不使用FIFO,normal模式,STM32f407)配置代码,usart2可以使用阻塞方式发送,使用DMA发送则只能发送第一次,复位后还只能发送一次。 单步调试发现DMA方式下的发送在发送第一次之后,husart->State 标志变为 HAL_USART_STATE_BUSY就再也不变了。比较直接的解决思
2016-09-12 10:47:43 15616 13
原创 单片机下使用printf的问题及替代方法
之前也写过如何在IAR+STM32组合下实现printf的方法,虽然可以用,但是重写的串口发送函数有一个极大的问题就是必须是阻塞函数,假设是DMA方式的发送,输出的问题就比较大了,printf的具体实现不想深究,我看到的现象就是printf不断的调用重写的串口发送函数,而采用DMA方式会导致缓冲区被改写而传送错误的字符、字符组合。 解决方案就是比较简单了,采用sprintf函数,把格式化数据
2016-09-12 10:29:35 2779
原创 STM32 VCP PC端安装驱动失败的问题解决
在使用STM32 cube生成USB VCP代码后,电脑端安装了官方的1.3.1驱动(win7 64),运行程序电脑端显示一个黄色叹号,错误代码10,通讯不能进行。 检查MCU代码除新加入的USB代码外没问题,程序除USB之外运行正常,长时间运行(7小时左右)无异常。电脑端更换1.1驱动,更换WIN7 32、XP系统错误一致。 检查STM32生成的USB CDC类代码,在STM32_U
2016-09-12 09:49:43 6784
原创 静态条件下三轴加速度求角度的算法
在只有三轴加速度计的场合下(MARG初始校准的时候,需要先通过加速度计得到水平倾角,才能继续对磁力计数据进行处理)如何求得三轴角度,搜索互联网一般是这以下这两种算法: 左图算法是: 右图算法是:atan2(Ax,Az)也就是arctan(Ax/Az)。编程时还是推荐使用atan2。 图片来自:http://www.geek-workshop.com/thread-2328
2016-07-07 09:29:42 34949 4
原创 多旋翼油门量与升力关系
讨论油门量与升力的关系需要一个前提,就是只考虑稳态,不考虑暂态。升力是由螺旋桨旋转产生的,螺旋桨由电机带动,电机转矩受油门量控制,经过这一些列的过程,控制的油门量转变为姿态变化的力。 设转速为n,已知螺旋桨受阻力Fz=Cz*n^2,螺旋桨产生的升力Fs=Cs*n^2,且有刷直流电机和无刷直流电机的驱动电路都是将油门信号量转变为线性的电流量即线性转矩。 给定一
2016-06-16 08:36:39 4167
原创 多旋翼-加速度计耦合机体运动加速度处理方案
多旋翼航姿参考系统传感器包含陀螺仪、加速度计、磁力计(MARG)。其中陀螺仪和磁力计的误差来源均与多旋翼本身的姿态及运动状态无关或者影响极小。相比之下,加速度计会耦合机体的运动加速度(类似于诱导阻力,是多旋翼运动必然产生的),给航姿解算带来一定的困难。下面就提出两种解决方案: 1.控制系统在已知运动状态是加减速的前提下,将航姿切换到陀螺仪开环积分状态,短时间内隔离加速度计的数据。优点是不用增
2016-06-15 14:13:04 1103
原创 多旋翼控制中陀螺仪的作用
首先多旋翼的结构就是开环不稳定结构,该结构可以有效改善飞行器的性能,例如F-16中的机械联动机构就已被数字计算机和控制电路替代。 开环不稳定结构就需要计算机辅助控制,共同形成稳定的闭环系统,这层闭环结构就是构成多旋翼系统稳定最基本的要素。通俗的说就是假设没有任何闭环稳定措施,只有多个相对独立的电机,即使电机转速一致(实际上这很难做到),系统引入一个微小的扰动也会导致系统偏离稳定点且无法自动进
2016-06-15 13:32:13 2376
原创 IAR IDE下的inline函数
内联函数多用于提高程序运行速度,牺牲空间换时间,这也和硬件FPGA的规律一致。不过在IAR IDE下使用inline 定义的函数很多时候不会如程序设计者所愿的内联到代码中,会仍旧以函数调用的形式存在。 inline关键词本身就是推荐编译器进行内联,不过编译器不接受推荐,那么自然就没用了。IAR IDE在采用默认设置时是不接受inline建议的,想让其按照程序设计者的意愿内联函数的话,需要在优
2016-05-20 16:33:48 4134
原创 IAR编译器生成Cortex M3汇编代码的相关问题
IAR如何查看C源代码生成的汇编指令:options->C/C++ Compiler ->List->Output list file & Output assembler file,生成的文件在工程目录List文件夹下。 IAR生成的汇编文件中前几行就说明了 Cpu mode = thumb,但是Cortex M3的指令集是thumb-2指令集,thumb指令集是16位指令集,而thumb
2016-05-20 11:11:26 2777
原创 MAVLink协议的移植
mavlink协议被大众知晓应该是PX4项目发起之后,随着开源飞控神器PX项目进入国内。本次就只分析移植过程中的问题,协议具体内容及其他知识只稍作带过,有时间再更新。 mavlink的源码有官方的代码生成器,或者从开源的px4或者px4flow(光流)的源代码中获得。目前版本只有v0.9和v1.0,0.9已经逐渐不更新了。要用1.0的。 1.如果从mavlink官网下载的生
2016-05-05 10:20:35 6048 3
原创 航模的无刷电机到底是什么电机
目前航模的动力配置基本采用的“无刷电机”加电调组合方案,我们大多称此类电机为“无刷电机”,也有人称之为BLDCM,结合资料以及相关工作经验,在此对该类电机进行不成熟的描述。 首先,称之为直流无刷电机是有一定的问题的,资料显示适应方波驱动的BLDCM的反电动势是类似于梯形波,梯形波的反电动势不是偶然形成的,而是人为控制,主要采用整距集中绕组,永磁体形状为瓦片形,多径向充磁等方式。该
2016-05-03 15:45:07 9906 3
原创 IAR +STM32实现printf()输出到串口
搜索互联网上,关于此类问题的解决文章资料也比较丰富,不过按照其思路还是遇到了不少问题。首先,贴代码,大部分代码都是类似的方案,重写putchar或者fputc函数。#ifdef USE_IAR#define PUTCHAR_PROTOTYPE int putchar(int ch)#else#define PUTCHAR_PROTOTYPE int fputc(int ch,F
2016-05-03 15:09:38 10420
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人