STM32使用RT-thread完成点灯,pwm,按键中断,定时器中断,ADC

开发工具使用的是RT-thread Studio。

1.首先是创建工程

芯片空间小可以选择nano,我使用的是f429,这里选择标准rt。

填写工程名字,选择芯片型号与调试器,那个控制台默认是用的串口1打印调试内容,可以不用管,如果用的官方开发板(如正点原子),可以选择基于开发板,基于开发板的一般很多初始化都配置好了,只需要用就行了。如果没有需要的芯片型号或者开发板型号,可以选择在线下载。

我这里选择基于芯片的,创建完成就是这样的

默认是会在终端窗口打印内容。终端配置点击这里。

下载后默认会打印下面内容

2.再让我们点个灯,

代码如图,写好后编译无错然后下载就行了,LED正常闪烁。

3.配置按键中断与回调函数

编译,没有问题下载后,按按键就会改变led状态(没有消抖,效果可能不好)

4.adc读取

adc读取需要开启功能并重新配置(因为默认是开了pin操作的功能,所以可以直接用)

我们分别点击这两个settings,首先是配置rt的功能,双击后会出现这样的界面

我一般选择点那个小箭头,然后点击组件,设备驱动,然后开启我们需要的功能

选择好之后按CTRL+S保存,在board.h文件中开启(取消注释或者添加)我们要用的那个adc

再在conf.h开启adc模块

然后编译,没有错误,添加代码

这个时候下载进去读出来的数据通常为0,我们需要点击cubemxsettings进行设置。

时钟和中断我都默认的,可以按需选择,开启串口1(中断打印需要)

选择mdk

不选择单独的h和c,然后生成代码。然后关闭CUBEMX,一定要关闭,不然可能代码不会更新,完成配置之后,会提示备份了conf文件,不用管就行,软件自动进行了代码适配。编译下载就能读出数据了

但很有可能你读出来的数据不正常,可能一直是0,或者改变很小。这个一般就是你rt初始化配置的io口不对,或者配置的和你读取的io不一样,修改一下就可以。

这里我是把读取代码放在按键中断里面的,每按一次按键就能读取并输出一次。

5.输出pwm和定时器中断

首先是在rt-thread settings里面开启定时器和pwm的驱动,Ctrl+S保存

board.h中开启定时器和pwm(pwm几就是定时器几)

然后在cubemx中配置

pwm

定时器中断

生成代码,编译,会报错,有点奇怪,就tim4会报错

我这里就直接把tim4开启那注释了,然后就没错了,但是初始化就会有问题,我们就手动调用一下cubemx的代码。

把cubemx的main.c中的tim初始化函数copy到msp.c,包括定义的结构体,记得删除static,以便调用

然后在main.c中引入初始化函数和结构体,初始化时调用并开启定时器中断

然后你就会发现程序卡死了,因为中断开启后没有处理函数。我们添加一下相应的中断函数就可以了。

编译下载,终端就能正常打印了。注意,不要在中断里调用延时之类的函数

输出pwm只需要在定时器配置的基础上(不包含中断)设置一下就行

这样就能在相应通道输出pwm了

。。。持续更新中

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
RT-Thread是一个开源的实时操作系统,可以在各种嵌入式设备上运行。STM32F407VE是STMicroelectronics推出的一款基于ARM Cortex-M4内核的微控制器。 RT-Thread可以运行在STM32F407VE上,使用RT-Thread可以更好地管理系统资源和任务,提高实时性和稳定性。STM32F407VE具有丰富的外设和强大的计算能力,可以适用于各种应用场景。 在RT-Thread上运行的应用程序可以通过它的内核提供的丰富API来进行多任务处理、线程管理、内存管理等操作。它还提供了灵活的驱动框架和硬件抽象层,方便开发人员进行底层驱动开发和应用程序开发。 RT-Thread还提供了一套完善的文件系统,可以对外部存储器进行读写操作,方便数据的存储和管理。此外,RT-Thread还支持网络协议栈,可以实现与其他设备的通信和数据传输。 对于STM32F407VE这款微控制器来说,它具有丰富的外设,例如UART、SPI、I2C等,可以实现与外部设备的连接和通信。同时,它还具有硬件浮点运算单元,可以提高计算能力。 在使用RT-Thread开发STM32F407VE时,我们可以充分利用STM32F407VE的硬件资源,通过合理的任务划分和优化,提高系统的实时性和效率。同时,我们也可以利用RT-Thread提供的各种功能和工具,方便地进行开发、调试和测试。 总之,RT-ThreadSTM32F407VE都是非常强大的工具,它们的结合可以为嵌入式开发带来很多便利和效益。无论是在学习、研究还是商业开发中,它们都具有广泛的应用前景。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

山间朝暮-CanEve

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值