0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

rt-thread操作系统下timer使用

嵌入式应用开发 来源:嵌入式应用开发 作者:嵌入式应用开发 2022-08-23 14:16 次阅读

rt-thread 是通过 I/O 设备模型来管理 soc 上的外设,从上到下分为三层:I/O 设备管理层、设备驱动框架层和设备驱动层。stm32 的 HAL 库就属于设备驱动层,比如熟知的 i2c、spi 的外设驱动在用 cubemx 生成代码的时候就已经准备好。中科蓝讯的 ab32vg1 的设备驱动已经在sdk 中由蓝讯的工程师实现。而在设备驱动层之上的设备驱动框架层和设备 I/O 管理层要说明一下:设备驱动框架层提供了一些接口留给设备驱动开发者去实现,只在做驱动移植的时候需要,作为普通用户,只需要关心 I/O 管理层即可,rt-thread 的 I/O 管理层提供了类似于 linux中文件 IO 的 ap,常用的有 rt_device_find、rt_device_open、rt_device_read、rt_device_close等。下面列举了 hwtimer 的 api,结合示例去理解如何将这些 api 用起来实现定时器的功能。

//查找设备
/*
name:设备名称
*/
rt_device_t rt_device_find(const char* name)
//打开定时器设备
/*
dev:定时器设备句柄
oflags:打开模式,一般取 RT_DEVICE_OFLAG_RDWR
*/
rt_err_t rt_device_open(rt_device_t dev, rt_uint16_t oflags);
//设置超时回调
/*
dev:定时器设备句柄
rx_ind:超时回调函数
*/
rt_err_t rt_device_set_rx_indicate(rt_device_t dev, rt_err_t (*rx_ind)(rt_device_t dev,rt_size_t size))
//控制定时器
/*
dev:定时器设备句柄
cmd:控制命令,可取
HWTIMER_CTRL_FREQ_SET 设置计数频率
HWTIMER_CTRL_STOP 停止定时器
HWTIMER_CTRL_INFO_GET 获取定时器特征信息
HWTIMER_CTRL_MODE_SET 设置定时器模式
arg:控制命令参数
设置定时器模式时,可取
HWTIMER_MODE_ONESHOT 单 次 定 时
HWTIMER_MODE_PERIOD 周 期 性 定 时
*/
rt_err_t rt_device_control(rt_device_t dev, rt_uint8_t cmd, void* arg);
//设置定时器超时值
/*
dev:定时器设备句柄
pos:偏移值,未使用,可取 0 值
buffer:指向超时时间结构体
size:超时时间结构体大小
*/
rt_size_t rt_device_write(rt_device_t dev, 
rt_off_t pos, 
const void* buffer,
rt_size_t size);
//获取定时器当前值
/*
dev:定时器句柄
pos:偏移值,未使用,可取 0 值
buffer:超时时间结构体
size:超时时间结构体大小
*/
rt_size_t rt_device_read(rt_device_t dev, 
rt_off_t pos, 
void* buffer, 
rt_size_t size
);
//关闭定时器
/*
dev:定时器句柄
*/
rt_err_t rt_device_close(rt_device_t dev);
poYBAGMEcJ-Abg84AAE6fM31FEg525.png

使用 rt-thread studio 进行 sdk 的开发是一件非常有效率的事情,新建 bsp 工程后只需要在rt-thread setting 配置需要的硬件功能就可以使用 rt-thread 提供的设备 I/O 管理接口对底层的 soc 的外设进行控制。从示例中可以定时器的流程:先用 rt_device_find 根据设备名称查找到定时器句柄、使用定时器句柄打开定时器、接着设置定时器的回调函数、配置完定时器后设置定时器的定时值后定时器启动,之后每当定时器的计数器溢出就会执行一次定时器的回调函数。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 操作系统
    +关注

    关注

    37

    文章

    6284

    浏览量

    121883
  • 定时器
    +关注

    关注

    23

    文章

    3147

    浏览量

    112038
  • Timer
    +关注

    关注

    1

    文章

    58

    浏览量

    12679
  • RT-Thread
    +关注

    关注

    31

    文章

    1148

    浏览量

    38877
收藏 人收藏

    评论

    相关推荐

    如何对RT-Thread内核有基本的了解?

    RT-Thread 的时钟管理以时钟节拍为基础,时钟节拍是 RT-Thread 操作系统中最小的时钟单位。
    的头像 发表于 07-19 10:12 6791次阅读
     如何对<b class='flag-5'>RT-Thread</b>内核有基本的了解?

    STm32与RT-thread操作系统的配合使用

    操作系统的配合使用效果还是很不错的,前一段儿我又看了华为的操作系统LiteOS,并参考了野火的教程,完成了STM32项目的移植,两者整体上也是很类似的,感觉没有RT-thread的简
    发表于 08-04 06:29

    RT-Thread Studio操作系统

    stm32f407+rtthread 使用 ec20 ppp拨号开发环境一、工程创建二、模块添加三、参数配置四、测试开发环境IDE:RT-Thread Studio操作系统
    发表于 08-24 07:44

    基于RT-Thread操作系统衍生rt-smart实时操作系统简介

    1、rt-smart 实时操作系统简介RT-Thread Smart(简称 rt-smart)嵌入式实时操作系统是基于
    发表于 06-22 17:56

    RT-Thread操作系统有哪些优势?

    RT-thread是一个轻量级的操作系统,很小,但是也是一个操作系统。主要优势有这些: 跨芯片平台:支持所有主流微控制器,解决设备碎片化问题。 实时操作系统内核:完全自主开发,硬实时,
    发表于 06-28 08:16

    RT-Thread编程指南

    RT-Thread编程指南——RT-Thread开发组(2015-03-31)。RT-Thread做为国内有较大影响力的开源实时操作系统,本文是RT
    发表于 11-26 16:06 0次下载

    RT-Thread用户手册

    RT-Thread用户手册——本书是RT-Thread的编程手册,用于指导在RT-Thread实时操作系统环境下如何进行编 程。
    发表于 11-26 16:16 0次下载

    RT-Thread Smart微内核操作系统发布!

    9月1日,由上海睿赛德电子科技有限公司举办的RT-Thread Smart微内核操作系统发布会于北京圆满落幕,发布会以见微为主题,邀请到中国工程院院士、产业专家、高校教授及行业从业人员100余位莅临
    的头像 发表于 09-09 10:49 2419次阅读

    国民技术携手RT-Thread共同推进MCU与RT-Thread操作系统广泛适配

    日前,国民技术股份有限公司与知名物联网操作系统厂商睿赛德科技(RT-Thread)签署会员合作协议,正式成为RT-Thread高级会员。国民技术将基于通用MCU和RT-Thread物联
    的头像 发表于 12-16 09:56 1988次阅读

    RT-Thread实时操作系统安装向导

    RT-Thread 是一个集实时操作系统(RTOS)内核、中间件组件和开发者社区于一体的技术平台,由熊谱翔先生带领并集合开源社区力量开发而成,RT-Thread 也是一个组件完整丰富、高度可伸缩
    发表于 04-02 09:43 6次下载

    RT-Thread学习笔记 RT-Thread的架构概述

    的种种优越之处。RT-Thread 是一款完全由国内团队开发维护的嵌入式实时操作系统(RTOS),具有完全的自主知识产权。经过 16 个年头的沉淀,伴随着物联网的兴起,它正演变成一个功能强大、组件丰富
    的头像 发表于 07-09 11:27 4000次阅读
    <b class='flag-5'>RT-Thread</b>学习笔记 <b class='flag-5'>RT-Thread</b>的架构概述

    RT-Thread操作系统已经成功部署至芯驰E3

    近日,国内领先的车规芯片企业芯驰科技与国内领先的车载RTOS(实时操作系统)企业睿赛德科技(RT-Thread)共同宣布:RT-Thread操作系统全面支持芯驰科技E3系列 MCU芯片
    的头像 发表于 09-09 09:15 938次阅读

    RT-Thread操作系统的FreeRTOS兼容层

    的兼容项目中。 1 概述 这是一个针对RT-Thread国产操作系统的FreeRTOS操作系统兼容层,可以让原有基于FreeRTOS操作系统的项目快速、无感地迁移到
    的头像 发表于 01-14 00:55 1225次阅读

    RT-Thread斩获“最具影响力IoT操作系统奖”

    2024年3月30日,第十一届开源操作系统年度技术会议(OS2ATC)在西郊宾馆举办!RT-Thread作为国内领先的开源操作系统斩获了“最具影响力IoT操作系统奖”。
    的头像 发表于 04-10 09:51 146次阅读

    RT-Thread荣获“最具影响力IoT操作系统奖”

    2024年3月30日,第十一届开源操作系统年度技术会议(OS2ATC)在西郊宾馆举办!RT-Thread作为国内领先的开源操作系统斩获了“最具影响力IoT操作系统奖”。该奖项是对
    的头像 发表于 04-12 08:37 118次阅读
    <b class='flag-5'>RT-Thread</b>荣获“最具影响力IoT<b class='flag-5'>操作系统</b>奖”