专栏首页嵌入式程序猿巧用SDK,帮你减少开发时间

巧用SDK,帮你减少开发时间

已经介绍过很多次NXP的SDK在开发中的应用,但多是基于KV系列和K系列的芯片,最近一个小项目用的是Kinetis KE02系列,该系列已经在SDK中支持,如果对SDK熟悉的话,会很容易上手,遗憾的是SDK都不支持Modbus通讯,而Modbus通讯底层最重要的就是对帧结尾t3.5和字节间隔t1.5的检测,而SDK提供了定时器的驱动,所以还是很容易实现,例如我们假定用定时器1来做modbus的两个时间检测,那么就可以配置如下

定义配置定时器结构体,初始化定时器,而定时器定时的装载值跟波特率有关,那么这个时间是怎么算的呢,已经在公众号讲过很多次了,不知道小伙伴门还记得吗?Modbus每一个字节分为启动位,停止位,校验位,数据位,如果配置为没有校验位,那么需用1位停止位占位,保持每一字节有11位,所以t3.5就可以计算出来,t3.5应该为11*3.5/波特率,而t1.5应为11*1.5/波特率,为了节省硬件定时器资源,使用一个定时器同时来检测t1.5和t3.5,那么两者的公约数就是t0.5,所以开一个定时0.5个字节的定时器,进三次就是t1.5时间到,进7次就是t3.5时间到,置检测标志。而SDK中定时器的周期设置函数参数是微秒对应的cycle,所以t0.5转换成微妙就是上图中的变量u32UartTimer_Slave = (1000000u * 11u * 5u) / (config_Slave.baudRate_Bps * 10u)

配置完定时器周期值后还需要使能定时器中断,使能定时器,但是这时候不能启动定时器。需要在UART中断中去操作定时器。

定时器中断中去检测帧标志,首先清中断标志,调用SDK的请标志函数。

Modbus通信中另一个重要的UART中断可以采用SDK提供的函数,但必须修改,也可以自己实现,这里就不在赘述。

本文分享自微信公众号 - 嵌入式程序猿(InterruptISR)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-10-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • ARM coretex M4 系统定时器

    系统定时器SysTick简介 今天我们来讲讲ARM cortex M4核系统定时器system Timer,处理器核有一个24位的系统定时器SysTick,可以...

    用户1605515
  • 【速来围观】IAR环境下代码覆盖率功能的使用

    在设计测试程序,验证是否所有的代码都被执行到时,就要考虑到代码覆盖率,IAR环境下的代码覆盖率是一个在这方面很有用的功能,且使用方便,今天我们就来讲讲这一功能如...

    用户1605515
  • 你的代码敢上Polyspace跑吗?

    嵌入式代码动态验证 在嵌入式开发中,代码静态分析工具相信大家应该都熟悉,都用过像PClint,understand C等,但对于动态验证,运行时错误验证工具还是...

    用户1605515
  • Qt多种定时器

      使用startTimer开启定时器,使用killTimer(int id)接口来关闭指定的定时器。 启动定时器后会在对应间隔时间触发timerEvent事...

    Qt君
  • FreeRTOS 软定时器实现

    考虑平台硬件定时器个数限制的, FreeRTOS 通过一个 Daemon 任务(启动调度器时自动创建)管理软定时器, 满足用户定时需求. Daemon 任务会在...

    orientlu
  • 基于Linux内核的时间轮算法设计实现【附代码】

    对于一个复杂的软件系统,定时器的对任务的管理和调度至关重要,通常定时器的管理已成为一个复杂系统的重要基础设施。

    孙玄@奈学教育
  • 18.5.13日报

    1,找到帧率低的原因了,wkeWake里做的帧率限制。打开后,并且调整每帧的sleep之类,帧率基本和chrome差不多

    龙泉寺扫地僧
  • liteos软件定时器(十)

    软件定时器,是基于系统Tick时钟中断且由软件来模拟的定时器,当经过设定的Tick时钟计数值后会触发用户定义的回调函数。定时精度与系统Tick时钟的周期有关。

    233333
  • 单片机捕捉功能

    输入捕捉:具有此功能的一个管脚,定时器在内部时钟的作用下在运行,此时管脚来了个中断,假如上升沿吧。在中断的作用下,定时器停止工作,此时可以读出定时器的数值,读出...

    用户4645519
  • Jmeter系列(17)- 定时器Timers 的入门介绍

    https://www.cnblogs.com/poloyy/category/1746599.html

    小菠萝测试笔记

扫码关注云+社区

领取腾讯云代金券