买的飞控板到了,开始写下位机的程序了,本来打算用UCOS的,因为以前用过,比较熟悉,可以很快上手,不过板子的卖家推荐了RT-Thread,以前虽然有接触过,但是没用过,于是去官网看了下,感觉还不错。其一这是咱们国人写的,其二USOS有的基本任务调度功能它都有了,其三它的GUI貌似原生支持中文(不确定),其四他有很多的附加组件,虽然这些组建大部分在以前做项目的时候都自己完成过,并且我并不怎么喜欢集成度太高的RTOS,但是这次可以尝试看看。还有它有些好的环形buffer,可以用来做串口的缓冲,哈,这个以前都是自己写的,有现成的,不过试试它带的也好,同时还集成设备管理功能,可以自己写驱动,我看了下,驱动接口都是些类似于winCE的流驱动的接口函数,我们可以把串口放在它的设备管理里面,用它的流驱动接口试一试。不过不知道稳定性怎么样。

      既然选定用RT-Thread了,第一步就是下源码,可以去官网网站www.rt-thread.org下载,我下的是RT-Thread1.2.1。下下来后目录如下:
根据编程手册可以知道,目录名 描述
bsp                    针对各个具体开发板、平台的目录,其中包含相应的Keil工程文件(如果包含了Keil MDK的移植)
filesystem          包含了RT-Thread的文件系统组件代码
finsh                 包含了RT-Thread的finsh shell组件代码
include             包含了RT-Thread核心的头文件
libc                   面向GCC移植的小型C库
libcpu               面向各个芯片移植的代码
net                   包含了RT-Thread的网络组件代码
rtgui                 包含了RT-Thread/GUI图形用户界面组件代码
src                   包含了RT-Thread内核核心的代码
说明:上图中的 SI 是我SourceInsight的工程目录,和RTT无关。
这个手册可能挺久没更新了,filesystem  只的就是途中的components。rtgui 已经被单独拿出来了,要单独下载,net 包涵在了components里面了。

下下来的文件包涵了很多的平台,飞控板用的是STM32F407的芯片,所以其他平台的文件全部删掉。在bsp目录下可以找到stm32f40x文件夹,这文件夹里面包括了库函数,其他芯片平台的文件夹统统删掉,在libcpu下,只需要将arm文件夹里面的common和cortex-m4留下来,其他的也都统统删掉。还有其他一些辅助性的文件,如:documentation、examples、tools什么的我们也统统删掉,处理完这些后,一个干净的RTT就准备好了,舒爽很多。

接下来 跑嵌入式里面的第一个例子,hello world啊。。哈哈。。

RTT的项目里面就创建了两个线程,在这两个线程里面单独控制两个LED灯,

 
 //------- init led1 thread
rt_thread_init(&thread_led1,
"led1",
rt_thread_entry_led1,
RT_NULL,
&thread_led1_stack[],
sizeof(thread_led1_stack),,);
rt_thread_startup(&thread_led1); //------- init led2 thread
rt_thread_init(&thread_led2,
"led2",
rt_thread_entry_led2,
RT_NULL,
&thread_led2_stack[],
sizeof(thread_led2_stack),,);
rt_thread_startup(&thread_led2);

分别找到rt_thread_entry_led1和rt_thread_entry_led2两个函数,在里面控制LED灯就可以了。。

 static void rt_thread_entry_led1(void* parameter)
{ while ()
{
rt_thread_delay(RT_TICK_PER_SECOND);
GPIO_ResetBits(GPIOE,GPIO_Pin_7);
rt_thread_delay(RT_TICK_PER_SECOND/);
GPIO_SetBits(GPIOE,GPIO_Pin_7); }
}

另一个进程其实也是一样的,控制得灯不一样而已。。。代码比较粗糙,测试用的。。

四轴飞行器1.2.1 RT-Thread 环境搭建的更多相关文章

  1. 四轴飞行器1.1 Matlab 姿态显示

    四轴飞行器1.1 Matlab 姿态显示 开始做四轴了,一步一步来,东西实在很多,比较杂.先做matlab上位机,主要用来做数据分析,等板子到了可以写飞控的程序了,从底层一层一层开始写..希望能好好的 ...

  2. 四轴飞行器飞行原理与双闭环PID控制

    四轴轴飞行器是微型飞行器的其中一种,相对于固定翼飞行器,它的方向控制灵活.抗干扰能力强.飞行稳定,能够携带一定的负载和有悬停功能,因此能够很好地进行空中拍摄.监视.侦查等功能,在军事和民用上具备广泛的 ...

  3. 四轴飞行器1.5 各种PID对比分析及选择

    原创文章,欢迎转载,转载请注明出处 这篇文章主要介绍我对PID的理解,以及选择PID算法的过程. 一 PID的理解和学习过程 二 飞控的PID效果 先上个飞控PID的响应的视频:介绍在后面 地址:ht ...

  4. 四轴飞行器1.3 MPU6050(大端)和M4的FPU开启方法

    四轴飞行器1.3 MPU6050(大端)和M4的FPU开启方法  原创文章,欢迎转载,转载请注明出处      最近时间花在最多的地方就是STM32的I2C上了.之前就知道STM32的I2C并不好用, ...

  5. 四轴飞行器1.2.2 RT-Thread 串口

    四轴飞行器1.2.2 RT-Thread 串口        本来是打算说根据RT-Thread的设备管理提供的驱动接口些串口驱动的,但是仔细一看,我去,串口驱动写好了,只需要调用就可以了.下面我们说 ...

  6. 四轴飞行器1.7 NRF24L01P无线通讯和改进型环形缓冲(转)

    源: 四轴飞行器1.7 NRF24L01P无线通讯和改进型环形缓冲

  7. 从零开始的四轴飞行器-开篇flag

    在这里立下flag,我要理解学会四轴飞行器的控制方法.

  8. RT Thread 通过ENV来配置SFUD,操作SPI Flash

    本实验基于正点原子stm32f4探索者板子 请移步我的RT Thread论坛帖子. https://www.rt-thread.org/qa/forum.php?mod=viewthread& ...

  9. Spark Idea Maven 开发环境搭建

    一.安装jdk jdk版本最好是1.7以上,设置好环境变量,安装过程,略. 二.安装Maven 我选择的Maven版本是3.3.3,安装过程,略. 编辑Maven安装目录conf/settings.x ...

  10. spring+springMVC+mybatis的框架项目基础环境搭建

    上一个项目在后台用到spring+springMVC+mybatis的框架,先新项目初步需求也已经下来,不出意外的话,应该也是用这个框架组合. 虽然在之前activiti相关的学习中所用到的框架也是这 ...

随机推荐

  1. zoj 1200 Mining

    这道题被划到了动态规划里面去了,结果就是一道模拟题,懒了一点,直接用stl的优先队列,重载了一下运算符,写的时候保证只能一个在采,因为如果需要的采的次数比可以生产的次数少,那么生产的次数等于需要采的次 ...

  2. linux系统学习笔记:文件、目录、用户

    本篇主要从stat函数开始,逐个说明stat结构的每一个成员,以此来了解文件的所有属性.同时将说明修改这个属性的各个函数. 一.文件 使用stat函数族得到和文件有关的信息结构. #include & ...

  3. oracle学习-安装卸载

  4. 自动化高效css开发,畅谈less的灵活变化

    css是一种让html与样式分离解析而出现的代码,它的出现大大提高了程序员的工作效率,和后期进行维护的效率.但是发展至今,由于起死板单调的写法,越来越不能满足程序员们灵活的思维,很多时候是种恨铁不成钢 ...

  5. linux 安装nodejs

    首先去官网下载代码,这里一定要注意安装分两种,一种是Source Code源码,一种是编译后的文件. 我就是按照网上源码的安装方式去操作编译后的文件,结果坑了好久好久.     注意看好你下载的是什么 ...

  6. Python 装饰器学习以及实际使用场景实践

    前言 前几天在看Flask框架,对于非常神奇的@语法,不是非常的理解,回来补装饰器的功课.阅读很多的关于装饰器的文章,自己整理一下,适合自己的思路的方法和例子,与大家分享. app = Flask(_ ...

  7. 使用SelectClipRgn注意事项

    SelectClipRgn 函数功能:该函数选择一个区域作为指定设备环境的当前剪切区域. 函数原型:int SelectClipRgn(HDc hdc, HRGN hrgn): 参数: hdc:设备环 ...

  8. sqlite在Android上的一个bug:SQLiteCantOpenDatabaseException when nativeExecuteForCursorWindow

    更多内容在这里查看 https://ahangchen.gitbooks.io/windy-afternoon/content/ ::-/com.company.product W/System.er ...

  9. 检测android的网络链接状态

    http://www.oschina.net/question/100267_61129?sort=default&p=1#tags_nav http://www.cnblogs.com/to ...

  10. Delph控制台(Console)程序添加图标和版权信息

    Delphi创建控制台(Console)程序默认是无法添加图标和版权的.经过仔细的对比窗体程序与控制台程序源码,发现窗体程序的工程文中,在uses结束begin开始的地方有一句如下代码:{$R *.r ...