Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
NXP 微控制器
[新人试水]LPC1768 RTT Nano 3试玩
发布于 2018-03-18 01:30:47 浏览:3689
订阅该版
* 本帖最后由 wlof 于 2018-3-18 01:32 编辑 * 前言 简约至上,Nano这个极简版怪物,配合MDK这个NB工具,使用它变得十分强大,基本上点两下鼠标就完成工程的配置。从初始版本Nano 2.1.1到Nano 3变化还是有点大的,Nano 2.1.1 中要自己去board.c中添加头文件,时钟初始化等操作,文件中有注释,写得很清楚,按步骤搞就成了,做两件事添加头文件,去除对应的注释。而到了Nano3,变天啦!不用配置!厉害了,我的神!Nano也是可以扩展的,可以自己添加组件。有人会说,这不是吃饱了吗?有env这个牛x工具不用?确实,但是,经过自己添加组件的学习过程,可以学到更多的知识。还有一个原因是,初次上手,那个env真的不怎么好用,特性是遇到生成的工程编译不了的时候,会崩溃。ST的用户可以使用CubeMX快速建立工程,不过没有RT_thread,不知道现在有没有,没有用ST芯片,所以很久没有去看了。其实,使用env的根本原理就是把那些需要文件组织成工程,和自己建立工程,然后添加文件没有什么不同,我们更应该知道怎么去组建自己的工程。打开env生成的工程,通过修改前后的对比,通过多个工程的对比,就可以发现,env所做的最重要的事情就是组建工程。 。。。。。这个文章,专门写给像我自己一样的菜鸟们,高手就不用看了。。。。。。**第一章 MDK下建立工程点个灯** **1、工具准备**下载MDK,安装,(破解)和谐,说明一下STM32只两个系列是可以免费使用MDK的。下载Nano,安装具体的过程略过,网上太多了,再写就浪费时间了。 **2、建立裸机工程文件** 本节主要介绍如何建立一个没有操作系统的工程,执行一个while(1)超级循环。高手略过,新手step by step。 **。。。发现这个图片不能复制进来,这个功能不好呀,图片比较多,还是去下载比较好。(网文略过...细看文件下载)** **3、添加RT_thread Nano****3.1 添加内核** 在运行环境管理器中,定位到RTOS,选择RT_Thread,注意,本文所使用的是3.0.3,如果您还在使用2.1.1,在后面的示图中会有些不同,为了对比,请确认使用的版本是否一致。[align=center]![1.jpg](/uploads/201803/18/012400c7fyzfvzl7zypfz7.jpg)[align=center]图1-21添加RTOS内核添加完内核心后,RT_Thread内核文件会被工程引用,并复制出board.c rtconfig.h等文件,位于CRSytem_RTT3\RTE\RTOS\下,如图1-22所示。[align=center]![2.jpg](/uploads/201803/18/012400vvjj37n8wjw01k34.jpg)[align=center]图1-22RT_thread内核所要改的文件**3.2 编写两个任务**为了测试操作系统是否能正常运行起来,添加两个任务,然后通过模拟运行,查看其内部是否可以实现任务切换,如果有任务来回切换,说明系统已正常运行。如图1-23,添加任务代码,并初始化任务。 [align=center]![3.jpg](/uploads/201803/18/012401roccg2p5ik1dr1q8.jpg)[align=center]图1-23RTOS下的main.c**3.3 main.c代码**/*----------------------------Begin---------------------------------------*/ #include "LPC17xx.h" // Device header#include "RTE_Components.h" // Component selection#include "RTE_Device.h" // Keil::Device:Startup#include
static struct rt_thread led0_thread;static struct rt_thread save_thread;ALIGN(RT_ALIGN_SIZE)static rt_uint8_trt_led0_thread_stack[1024]; static rt_uint8_trt_save_thread_stack[1024]; static void led0_thread_entry(void* parameter){ uint8_t i = 0; while(1) { i++; rt_thread_delay(50); // }} static void save_thread_entry(void*parameter){ uint8_t j = 0; while(1) { j++; rt_thread_delay(10); // }} int main(void){ rt_err_t result = RT_ERROR; result = rt_thread_init(&led0_thread, "led0", // led0_thread_entry,RT_NULL, // &rt_led0_thread_stack[0], // sizeof(rt_led0_thread_stack),// 5, // 20); // if(result == RT_EOK) { rt_thread_startup(&led0_thread); } result = RT_ERROR; result = rt_thread_init(&save_thread, "save", // save_thread_entry,RT_NULL, // &rt_save_thread_stack[0], // sizeof(rt_save_thread_stack), // 4, // 20); if(result == RT_EOK) { rt_thread_startup(&save_thread); } return 0;} /*--------------------------------END---------------------------------------*/ **3.4 编译与仿真**添加两个断点,可以看到两个任务来回切换,并明显看到save这个任务先执行,说明优先级越小,优先级越高。 [align=center]![4.jpg](/uploads/201803/18/012401mvn9hzhjyvehae9v.jpg)[align=center]图1-24RT_Thread模拟运行 **4、说好的点个灯呢?**RT_thread好像有个叫PIN什么的,对于引脚控制,代码越多效率越低,直接写寄存器的效率是比较高的,但是对人的要求也比较高,调用库文件中的函数效率也不会差到哪去,通常我们都会使用现成的参考代码(没有?上网找去!MDK里面也有很多例子,打开看去!)。**4.1 添加一个GPIO控制函数** [align=center]![5.jpg](/uploads/201803/18/012401chq1g73gqruuhgc3.jpg)[align=center]图1-25点个灯**4.2 仿真** [align=center]![6.jpg](/uploads/201803/18/012401lai597tz6t7n469y.jpg)[align=center]图1-26仿真**4.3 那个监视窗口在哪里?** [align=center]![7.jpg](/uploads/201803/18/012401cgzagngg7fiaz0f0.jpg)[align=center]图1-27GPIO口状态查看 /*--------------------------------第一章完-------------------------------------------*/ **文档下载:**![RT_Nano_V3初级教程.pdf](/uploads/201803/18/013003rijls9s2z0l2822l.attach)
查看更多
1
个回答
默认排序
按发布时间排序
andychen
2018-03-19
这家伙很懒,什么也没写!
写的很仔细,期待更多的文章出来! 顺便根据社区的 [[(https://www.rt-thread.org/qa/thread-6901-1-1.html)]如何开启RT-Thread社区贡献之路]((https://www.rt-thread.org/qa/thread-6901-1-1.html)]如何开启RT-Thread社区贡献之路) 每篇学习笔记50积分,给记上了
撰写答案
登录
注册新账号
关注者
0
被浏览
3.7k
关于作者
wlof
这个家伙不懒,什么也没写
提问
24
回答
64
被采纳
0
关注TA
发私信
相关问题
1
试贴-消灭0主题
2
LPC M4的一些资料
3
LPC4088的临时分支
4
lpc1788 ad 不稳定
5
1788 LCD控制器缓冲区字节问题
6
一起来学习LPC4088吧
7
上传LPC4088的realtouch主工程
8
RealBoard 4088预定帖 [第一批板子不多,预定提前结束]
9
晒RealBoard LPC4088开箱照啦,速带小板凳前来围观
10
4088主程序需要的SD卡资源
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
RT-Thread Studio V2.2.9 Release Note
2
CherryUSB的bootuf2配置
3
在用clangd开发RTT吗,快来试试如何简单获得清晰干净的工作区
4
GD32F450 片内 flash驱动适配
5
STM32H7R7运行CherryUSB
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
UART
WIZnet_W5500
ota在线升级
PWM
freemodbus
flash
cubemx
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
flashDB
GD32
socket
中断
编译报错
Debug
SFUD
rt_mq_消息队列_msg_queue
msh
keil_MDK
ulog
C++_cpp
MicroPython
本月问答贡献
踩姑娘的小蘑菇
7
个答案
2
次被采纳
a1012112796
12
个答案
1
次被采纳
红枫
4
个答案
1
次被采纳
张世争
4
个答案
1
次被采纳
Ryan_CW
4
个答案
1
次被采纳
本月文章贡献
catcatbing
3
篇文章
6
次点赞
lizimu
2
篇文章
7
次点赞
YZRD
2
篇文章
5
次点赞
qq1078249029
2
篇文章
2
次点赞
xnosky
2
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部