使用RT-Thread studio IDE开发stm32F407(实现adc多通道采集)

这篇具有很好参考价值的文章主要介绍了使用RT-Thread studio IDE开发stm32F407(实现adc多通道采集)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

注意:使用这个IDE配置工程特别简单( only   10  minutes )

step1:选择对应的芯片或开发板创建RT-Thread项目

使用RT-Thread studio IDE开发stm32F407(实现adc多通道采集),RT-Thread,stm32,单片机,嵌入式硬件

 step2:配置RT-Thread Settings(按我的步骤顺序进行)

使用RT-Thread studio IDE开发stm32F407(实现adc多通道采集),RT-Thread,stm32,单片机,嵌入式硬件

使用RT-Thread studio IDE开发stm32F407(实现adc多通道采集),RT-Thread,stm32,单片机,嵌入式硬件

由于要用到ADC,所以我们使能这个框架,直接把它选上就ok

使用RT-Thread studio IDE开发stm32F407(实现adc多通道采集),RT-Thread,stm32,单片机,嵌入式硬件

是不是特别简单?接下来第三步,要难一点了

step3

注意:这一步要配置cubmx(配置与stm32时钟,外设相关的东西,其实借助cubmx图形化配置工具这一步也变得十分简单)

ok,按下面的顺序来

使用RT-Thread studio IDE开发stm32F407(实现adc多通道采集),RT-Thread,stm32,单片机,嵌入式硬件

使用RT-Thread studio IDE开发stm32F407(实现adc多通道采集),RT-Thread,stm32,单片机,嵌入式硬件

使用RT-Thread studio IDE开发stm32F407(实现adc多通道采集),RT-Thread,stm32,单片机,嵌入式硬件

 使用RT-Thread studio IDE开发stm32F407(实现adc多通道采集),RT-Thread,stm32,单片机,嵌入式硬件

 使用RT-Thread studio IDE开发stm32F407(实现adc多通道采集),RT-Thread,stm32,单片机,嵌入式硬件

 使用RT-Thread studio IDE开发stm32F407(实现adc多通道采集),RT-Thread,stm32,单片机,嵌入式硬件

 使用RT-Thread studio IDE开发stm32F407(实现adc多通道采集),RT-Thread,stm32,单片机,嵌入式硬件

然后把串口收发的引脚配置一下(是个人应该都会)

 使用RT-Thread studio IDE开发stm32F407(实现adc多通道采集),RT-Thread,stm32,单片机,嵌入式硬件

 接下来是时钟,只需要在下图两个位置输入数字然后enter,系统会自动帮你计算分频系数使用RT-Thread studio IDE开发stm32F407(实现adc多通道采集),RT-Thread,stm32,单片机,嵌入式硬件

 使用RT-Thread studio IDE开发stm32F407(实现adc多通道采集),RT-Thread,stm32,单片机,嵌入式硬件

使用RT-Thread studio IDE开发stm32F407(实现adc多通道采集),RT-Thread,stm32,单片机,嵌入式硬件

最后一步,生成代码就可以直接关闭cubmx了,返回studio

 使用RT-Thread studio IDE开发stm32F407(实现adc多通道采集),RT-Thread,stm32,单片机,嵌入式硬件

 step3:以上准备工作做完了(实际操作起来很快的,你这是不熟悉而已),下面就可以愉快的码代码了,不多废物,直接看图

在编写主函数之前,先改一下工程(相当于移植工程),我们之前在配置好cubmx之后,会在studio 里面的cubmx文件夹生成相应的初始化代码,我们只需移植即可食用。

将cubmx->src->msp.下的这两个函数剪切到divers->board.c里面(最好放在最下面)

使用RT-Thread studio IDE开发stm32F407(实现adc多通道采集),RT-Thread,stm32,单片机,嵌入式硬件

 使用RT-Thread studio IDE开发stm32F407(实现adc多通道采集),RT-Thread,stm32,单片机,嵌入式硬件

 使用RT-Thread studio IDE开发stm32F407(实现adc多通道采集),RT-Thread,stm32,单片机,嵌入式硬件

 然后在cubmx->conf.h里面把adc的这个使能注释可去掉(一般是已经帮你弄好了的,不过最好还是看一眼)使用RT-Thread studio IDE开发stm32F407(实现adc多通道采集),RT-Thread,stm32,单片机,嵌入式硬件

 最后一步将drivers->board.h下的BSP USING ADC注释取消掉(看你用哪一个或者是那几个adc)使用RT-Thread studio IDE开发stm32F407(实现adc多通道采集),RT-Thread,stm32,单片机,嵌入式硬件

然后就是main.c部分(开始编写业务逻辑代码)


#include <rtthread.h>
#include <rtdbg.h>
#include <board.h>
#include <rtdevice.h>
#define DBG_TAG "main"
#define DBG_LVL DBG_LOG
#define ADC_DEV_NAME        "adc1"      /* ADC 设备名称 */
#define REFER_VOLTAGE       330         /* 参考电压 3.3V,数据精度乘以100保留2位小数*/
#define CONVERT_BITS        (1 << 12)   /* 转换位数为12位 */

rt_thread_t Adc_thread1= RT_NULL;
rt_thread_t Adc_thread2= RT_NULL;
static void Adc_entry(void* paremeter);

int main(void)
{   /*创建第一个线程,用于采集IN8的值*/
    Adc_thread1 = rt_thread_create("adc1",
            Adc_entry,
            (void*)8,
            512,
            16,
            20);
    if(Adc_thread1 != RT_NULL)
        rt_thread_startup(Adc_thread1);
    else
        return -1;
    /*创建第二个线程,用于采集IN9的值*/
    Adc_thread2= rt_thread_create("adc1",
                Adc_entry,
               (void*)9,
                512,
                16,
                20);
        if(Adc_thread2 != RT_NULL)
            rt_thread_startup(Adc_thread2);
        else
            return -1;
}

static void Adc_entry(void* paremeter)
{
    rt_adc_device_t adc_dev;
    rt_uint32_t value,vol;
    rt_err_t ret = RT_NULL;
    adc_dev = (rt_adc_device_t)rt_device_find(ADC_DEV_NAME);
    if (adc_dev == RT_NULL)
    {
        rt_kprintf("adc sample run failed! can't find %s device!\n", ADC_DEV_NAME);
    }
    /* 使能设备 */
    ret = rt_adc_enable(adc_dev, paremeter);
    while(1)
    {
        /* 读取采样值 */
        value = rt_adc_read(adc_dev,paremeter);
        /* 转换为对应电压值 */
        vol = value * REFER_VOLTAGE / CONVERT_BITS;
        rt_kprintf("the  ch%d value is :%d.%02d \n", paremeter,vol/ 100, vol % 100);
        rt_thread_delay(500);
    }
}



 最后编译,下载,烧录注入灵魂(我用的是ST-LINK)

使用RT-Thread studio IDE开发stm32F407(实现adc多通道采集),RT-Thread,stm32,单片机,嵌入式硬件

 编译是这个小锤子(没有问题)

使用RT-Thread studio IDE开发stm32F407(实现adc多通道采集),RT-Thread,stm32,单片机,嵌入式硬件

使用RT-Thread studio IDE开发stm32F407(实现adc多通道采集),RT-Thread,stm32,单片机,嵌入式硬件

 使用RT-Thread studio IDE开发stm32F407(实现adc多通道采集),RT-Thread,stm32,单片机,嵌入式硬件

 使用RT-Thread studio IDE开发stm32F407(实现adc多通道采集),RT-Thread,stm32,单片机,嵌入式硬件

 这是测试结果,接3.3和gnd都没有问题,chl8我接的压力传感器,没有动它就默认高电阻3.3v,存在少许漂移现象和工频干扰。(后续可以加入DMA和滤波算法)文章来源地址https://www.toymoban.com/news/detail-704237.html

到了这里,关于使用RT-Thread studio IDE开发stm32F407(实现adc多通道采集)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Clion开发STM32之I2C驱动(参考RT-Thread)

    本章是根据RT-Thread源码中的I2C组件进行抽离,主要不习惯用RT-Thread 然后在结合at24cxx模块补充测试 也为了方便移植和独立于框架的限制。 操作gpio部分 头文件 源码 头文件 源文件

    2024年02月10日
    浏览(37)
  • RT-Thread NUCLEO-STM32L452RE开发板BSP说明

    本文档为 NUCLEO-L452RE 开发板提供的 BSP (板级支持包) 说明。 主要内容如下: 开发板资源介绍 BSP 快速上手 进阶使用方法 通过阅读快速上手章节开发者可以快速地上手该 BSP,将 RT-Thread 运行在开发板上。在进阶使用指南章节,将会介绍更多高级功能,帮助开发者利用 RT-Thread

    2024年01月22日
    浏览(43)
  • RT-Thread NUCLEO-STM32H563ZI开发板BSP说明

    本文档为 yuanzihao为 NUCLEO-STM32H563ZIT6 开发板提供的 BSP (板级支持包) 说明。 主要内容如下: 开发板资源介绍 BSP 快速上手 注意事项及参考资料 通过阅读快速上手章节开发者可以快速地上手该 BSP,将 RT-Thread 运行在开发板上。 NUCLEO-STM32H563ZIT6是 ST 推出的一款基于 ARM Cortex-M33 内

    2024年02月03日
    浏览(38)
  • 【STM32&RT-Thread零基础入门】 2. 新建RT-Thread项目

    硬件:STM32F103ZET6、ST-LINK、usb转串口工具 RT-Thread的全称是Real Time Thread,顾名思义,它是一个嵌入式实时多线程操作系统。相较于 Linux 操作系统,RT-Thread 体积小,成本低,功耗低、启动快速,除此之外 RT-Thread 还具有实时性高、占用资源小等特点,非常适用于各种资源受限(

    2024年02月13日
    浏览(37)
  • RT-Thread GD32F4xx CAN驱动

      在RT-Thread的bsp文档中没有找到GD32F4xx的CAN驱动文件,此处参考STM32的drv_can编写CAN驱动。

    2024年02月02日
    浏览(42)
  • RT-Thread STM32L431 Bear-Pi开发板BSP说明

    本文档为Bear-Pi 开发板的 BSP (板级支持包) 说明。 主要内容如下: 开发板资源介绍 BSP 快速上手 进阶使用方法 通过阅读快速上手章节开发者可以快速地上手该 BSP,将 RT-Thread 运行在开发板上。在进阶使用指南章节,将会介绍更多高级功能,帮助开发者利用 RT-Thread 驱动更多板

    2024年02月04日
    浏览(38)
  • RT-Thread STM32G070RB-Nucleo开发板的BSP说明

    本文档为 STM32G070RB-Nucleo 开发板的 BSP (板级支持包) 说明。 主要内容如下: 开发板资源介绍 BSP 快速上手 进阶使用方法 通过阅读快速上手章节开发者可以快速地上手该 BSP,将 RT-Thread 运行在开发板上。在进阶使用指南章节,将会介绍更多高级功能,帮助开发者利用 RT-Thread 驱

    2024年02月03日
    浏览(40)
  • 【STM32&RT-Thread零基础入门】 3. PIN设备(GPIO)的使用

    硬件:STM32F103ZET6、ST-LINK、usb转串口工具、4个LED灯、1个蜂鸣器、4个1k电阻、2个按键、面包板、杜邦线 在嵌入式系统中,GPIO是最常用的一种设备,在RT-Thread操作系统中,把GPIO命名为PIN设备。 RT-Thread通过PIN设备对芯片的GPIO引脚进行管理,应用程序可以通过其提供的一组PIN设备

    2024年02月13日
    浏览(38)
  • RT-Thread GD32F4xx PWM设备驱动

      PWM(Pulse Width Modulation,脉冲宽度调制) 是一种对模拟信号电平进行数字编码的方法,通过不同频率的脉冲使用方波的占空比用来对一个具体模拟信号的电平进行编码,使输出端得到一系列幅值相等的脉冲。在具体的芯片中,PWM功能的实现一般定时器绑定,借助定时器的计数

    2024年02月10日
    浏览(35)
  • 【STM32&RT-Thread零基础入门】8. 基于 CubeMX 移植 RT-Thread Nano

    硬件:STM32F103ZET6、ST-LINK、usb转串口工具、4个LED灯、1个蜂鸣器、4个1k电阻、2个按键、面包板、杜邦线 利用RT_Thread操作系统实现三种不同的LED等闪烁 提示:以下是本篇文章正文内容,下面案例可供参考 cubemx配置参考教程: 基于 CubeMX 移植 RT-Thread Nano 后面程序所需的引脚 RT

    2024年02月09日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包