如何巧用SDK减少开发时间

本文主要介绍"怎么巧用SDK减少开发时间",希望能够解决您遇到有关问题,下面我们一起来看这篇 "怎么巧用SDK减少开发时间" 文章。

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

如何巧用SDK减少开发时间

定义配置定时器结构体,初始化定时器,而定时器定时的装载值跟波特率有关,那么这个时间是怎么算的呢,已经在公众号讲过很多次了,不知道小伙伴门还记得吗?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的请标志函数。

如何巧用SDK减少开发时间

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

关于 "怎么巧用SDK减少开发时间" 就介绍到这。希望大家多多支持编程宝库

本文主要介绍"gRPC API有哪些类",希望能够解决您遇到有关问题,下面我们一起来看这篇 "gRPC API有哪些类" 文章。gRPC APIGenSeed - 生成加密种子InitWallet - 初始化钱包U ...