手机兼职在哪个网站做,做外国网站买域名,3d装修效果图制作软件,企业做外贸网站常用术语本文章是基于BES2700 芯片#xff0c;其他BESxxx 芯片可做参考#xff0c;如有不当之处#xff0c;欢迎评论区留言指出。仅供参考学习用#xff01;
BES 平台 SDK之代码架构讲解二_谢文浩的博客-CSDN博客
关于SDK 系统框架简介可参考上一篇文章。链接如上所示#xff01…本文章是基于BES2700 芯片其他BESxxx 芯片可做参考如有不当之处欢迎评论区留言指出。仅供参考学习用
BES 平台 SDK之代码架构讲解二_谢文浩的博客-CSDN博客
关于SDK 系统框架简介可参考上一篇文章。链接如上所示
一LED配置
1. 根据原理图确认led 控制引脚GPIO找到SDK 关于led配置的.c 源文件。/config/best1306_ibrt/target.h 和 /config/best1306_ibrt/target.c,如下截图所示
target.h 文件 target.c 文件 此处只用了一个LED .
二初始化LED
LED 会在main 函数进行参考源文件目录/platform/main/main.cpp。如下截图所示 三LED 调用
参照如下源文件
/app/main/app_status_ind.h
/config/_default_cfg_src_/app_status_ind.c
/app/pwl/app_pwl.h
/app/pwl/app_pwl.cpp
1.在app_pwl 源文件对led 做了如下工作
1. 创建一个定时器 2.启动定时器并且置位初始状态。 3. int app_pwl_stop(enum APP_PWL_ID_T id)
暂停指定ID 定时器并熄灭led
4.int app_pwl_close(void) 暂停所有led 相关定时器并熄灭led
5.int app_pwl_setup(enum APP_PWL_ID_T id, struct APP_PWL_CFG_T *cfg)
配置指定定时器id 相关参数。参考两个结构体
struct APP_PWL_CFG_T { struct PWL_CYCLE_ONCE { uint8_t level; // 电平状态 uint32_t time; // 持续时间 }part[10]; // 总共变化次数和parttotal 保持一致 uint8_t parttotal; // 总共循环次数 uint8_t startlevel;// 起始电平状态 bool periodic; // 循环周期 };
struct APP_PWL_T { enum APP_PWL_ID_T id; // 定时器ID 一个LED 对应一个ID struct APP_PWL_CFG_T config; // 配置参数 uint8_t partidx; // 变化次数用于和partotal 做比较。也作为part 的下标 osTimerId timer; // 定时器句柄 };
2.在app_status_ind 源文件真正调用的地方 1.截图如下所示 该函数会根据上层应用设置的状态来进行led 显示状态配置实际调用的是app_pwl_setup和app_pwl_start 函数。
相关配置参数可见 解释如下总共有六次变化起始状态亮运行一个周期结束。 亮200ms-灭200ms-亮200ms-灭200ms-亮200ms-灭200ms