RT-thread 在19年12月份推出了一个很好用的工具RT-thread stdio,比Env更加的方便,接下来的代码开发我们就使用这个工具进行,不使用keil和IAR了。工具的一些配置和入门使用直接看官方的教学视频就可以了,这里我们不做过多的介绍,下面开始进入今天的正题。
打开我们的软件后,点击文件--》新建--》RT-thread 项目,然后取个项目名字,就叫temp_prj吧,然后我们的不是开发板选择 基于芯片,然后我用我们的串口1作为调试口。
经过几秒的加载我们的工程文件就出来了。。。
这里面包括了stm32的库文件,RT-thread的相关文件等,确实很方便额。
然后点击RT-thread Settings,选择ulog日志和finsh命令,然后保存,编译。
编译很快,没有任何报错。下一步该下载到板卡看效果了,然后进行下载调试(第一次可能要配置下下载工具,),软件使用问题可查看官网的视频。
小锤子编译,小箭头下载。打开串口助手配置好波特率,就可以看到打印信息了。
很顺利,但是好像调试的指令不是很全,接下来先把我们的灯和蜂鸣器的驱动调试出来。
其实在裸机的开发中我们很简单的直接GPIO初始化,进行控制是很容易实现的,在FreeRtos中好像也挺好捋顺,但是RT-thread 是类unix系统,习惯linux编程的可能更容易理解,那么我们怎么添加我们的灯和蜂鸣器驱动,下面就一起整一下。
在第一节的时候我们也讲解了是怎么调用到main.c中的main函数的。
我们可以了解到components.c的int $Sub$$main(void)是以补丁的方式存在的,如果我们不需要更改里面的初始化内容啊,只是做自己的业务层,只在main.c里面该初始化外设初始化外设,该初始化任务初始化任务,如果想更改一些时钟啊等配置啊,到相应位置进行修改就可以了,components.c中rtthread_startup中进行相关功能的配置,想详细了解的看官方文档就可以了。
为了后期方便维护,我们新建一个文件夹,取名my_drivers,在新添加一个文件叫做my_gpio 用于存放led和蜂鸣器的初始化和相应的控制函数。
那么我们的第一个要解决的问题就来了,如何快速新建自己的.c 和 .h文件?
1.文件夹右键新建.c文件,然后打开my_gpio的源文件路径,开始新建一个对应的.h文件,方便后期的调用,这种方法是可以的。
当然我们在keil下一般都是在一个路径下,建好文件,然后在工程上添加上文件路径。
那么在studio中肯定也是可以这么操作的,工程属性--》路径和符号--》添加相应的文件夹路径。
那么还有没有更快更好的办法,答案是:有的。
- 使用sconscript脚本进行自动的文件路径添加。
在1月2的的答疑视频中可以找到相关解答。
方法就是将SConscript脚本文件直接放在和你文件同一级目录下,然后刷新下工程,打开RT-thread settings随便加载或删除个东西,只是为了使工程检测到有变动,然后执行脚本,这时候就可以发现路径里有这个文件了,避免了每次都手动添加路径的麻烦。
然后就可以在gpio.c里面初始化驱动,在main.c里面新建一个点灯任务。
为了以后直接用,直接取名为一个看门狗任务,同理,新建一个文件夹和文件。
现在思路很清晰了:
在主函数中初始化led硬件外设,然后新建一个看门狗任务,进行1s的灯闪烁。
看门狗任务文件中新建一个任务,用来灯闪烁。
由于等闪烁函数rt-thread没有抽象出来直接调用hal库实现
此时我们的灯在正常闪烁,finsh组件正常使用。
详细代码之后都会上传到git,到时候详细看一下就都明确了。
来源:CSDN
作者:lzs_blog
链接:https://blog.csdn.net/lzs940320/article/details/103999922