当前位置: 首页 > news >正文

下载一个网站wordpress教程 吾爱

下载一个网站,wordpress教程 吾爱,常德网站建设案例教程,多语言网站系统一、程序简介 该程序是基于OpenHarmony标准系统编写的基础外设类#xff1a;RGB LED。 目前已在凌蒙派-RK3568开发板跑通。详细资料请参考官网#xff1a;https://gitee.com/Lockzhiner-Electronics/lockzhiner-rk3568-openharmony/tree/master/samples/b02_hdf_rgb_led。 …一、程序简介 该程序是基于OpenHarmony标准系统编写的基础外设类RGB LED。 目前已在凌蒙派-RK3568开发板跑通。详细资料请参考官网https://gitee.com/Lockzhiner-Electronics/lockzhiner-rk3568-openharmony/tree/master/samples/b02_hdf_rgb_led。 详细资料请参考OpenHarmony官网 GPIO平台驱动开发GPIO应用程序开发 二、硬件设计 RGB LED灯整体硬件电路如下图所示,硬件电路中包含了三个GPIO控制管脚控制RGB LED灯低电平点亮LED灯高电平熄灭LED灯。电路简单这边不对此进行多余的说明。 三、程序解析 1、目录结构 b02_hdf_rgb_led ├── config # HDF资源配置文件目录├── config.hcs # 接口IO配置文件├── device_info.hcs # 设备信息配置文件 ├── drivers # 内核HDF驱动程序目录├── rgb_led_drv.c # 内核HDF驱动程序├── Makefile # 内核HDF驱动编译脚本 ├── figures # MD文档图片 ├── BUILD.gn # GN文件 ├── rgb_led.c # 应用层控制程序 2、内核HDF驱动程序 1接口函数 函数名HdfRgbLedDriverInit.功能说明HDF初始化注册读取HDF资源配置文件获取三色灯控制GPIO管脚。 int32_t HdfRgbLedDriverInit(struct HdfDeviceObject *deviceObject) {if (deviceObject NULL) {HDF_LOGE(g_rgbLedDriverEntry: %s failed, __func__);return HDF_ERR_INVALID_OBJECT;}struct DeviceResourceIface *CfgOps NULL;CfgOps DeviceResourceGetIfaceInstance(HDF_CONFIG_SOURCE);if (CfgOps NULL || CfgOps-GetUint32 NULL) {HDF_LOGE(%s: DeviceResourceGetIfaceInstance failed, __func__);return HDF_FAILURE;}if (CfgOps-GetUint32(deviceObject-property, rgb_led_version, g_rgbLedCfg.rgb_led_version, 0) ! HDF_SUCCESS) {HDF_LOGE(%s: read rgb_led_version failed, __func__);return HDF_FAILURE;}if (CfgOps-GetUint32(deviceObject-property, rgb_led_red, g_rgbLedCfg.rgb_led_red, 0) ! HDF_SUCCESS) {g_rgbLedCfg.rgb_led_version 0;HDF_LOGE(%s: read rgb_led_red failed, __func__);return HDF_FAILURE;}if (CfgOps-GetUint32(deviceObject-property, rgb_led_green, g_rgbLedCfg.rgb_led_green, 0) ! HDF_SUCCESS) {g_rgbLedCfg.rgb_led_version 0;HDF_LOGE(%s: read rgb_led_green failed, __func__);return HDF_FAILURE;}if (CfgOps-GetUint32(deviceObject-property, rgb_led_blue, g_rgbLedCfg.rgb_led_blue, 0) ! HDF_SUCCESS) {g_rgbLedCfg.rgb_led_version 0;HDF_LOGE(%s: read rgb_led_blue failed, __func__);return HDF_FAILURE;}HDF_LOGI(g_rgbLedDriverEntry: %s success, __func__);return HDF_SUCCESS; } 函数名HdfRgbLedDriverRelease。功能说明HDF去注册。 void HdfRgbLedDriverRelease(struct HdfDeviceObject *deviceObject) {if (deviceObject NULL) {HDF_LOGE(g_rgbLedDriverEntry: %s failed, __func__);return;}HDF_LOGI(g_rgbLedDriverEntry: %s success, __func__);return; } 函数名HdfRgbLedDriverBind。功能说明HDF绑定解析函数。 int32_t HdfRgbLedDriverBind(struct HdfDeviceObject *deviceObject) {if (deviceObject NULL) {HDF_LOGE(g_rgbLedDriverEntry: %s failed, __func__);return HDF_ERR_INVALID_OBJECT;}static struct IDeviceIoService ledDriverServ {.Dispatch rgbLedDriverDispatch,};deviceObject-service (struct IDeviceIoService *)(ledDriverServ);HDF_LOGI(g_rgbLedDriverEntry: %s success NodeName[%s], __func__,deviceObject-property-name);return HDF_SUCCESS; } 函数名rgbLedDriverDispatch。功能说明解析函数解析应用层下发的命令执行命令对应操作RGB_LED_WRITE控制三色灯亮灭。 int32_t rgbLedDriverDispatch(struct HdfDeviceIoClient *client, int32_t cmdId,struct HdfSBuf *dataBuf, struct HdfSBuf *replyBuf) {int32_t result HDF_FAILURE;int32_t rgbLedMode 0;if (client NULL || client-device NULL) {HDF_LOGE(driver device is NULL);return HDF_ERR_INVALID_OBJECT;}if (g_rgbLedCfg.rgb_led_version ! RGB_LED_VERSION) {HDF_LOGE(driver rgb_led_version not match);return HDF_FAILURE;}switch (cmdId) {case RGB_LED_WRITE:result HdfSbufReadInt32(dataBuf, rgbLedMode);if (result) {HDF_LOGI(%s: mode:[0x%X][%s%s%s], __func__, rgbLedMode,(rgbLedModeRGB_LED_RED_BIT)?R:-,(rgbLedModeRGB_LED_GREEN_BIT)?G:-,(rgbLedModeRGB_LED_BLUE_BIT)?B:-);LedGpioCtrl(g_rgbLedCfg.rgb_led_red, (rgbLedModeRGB_LED_RED_BIT)?LED_ON:LED_OFF);LedGpioCtrl(g_rgbLedCfg.rgb_led_green, (rgbLedModeRGB_LED_GREEN_BIT)?LED_ON:LED_OFF);LedGpioCtrl(g_rgbLedCfg.rgb_led_blue, (rgbLedModeRGB_LED_BLUE_BIT)?LED_ON:LED_OFF);}break;default:HDF_LOGE(%s: receiving unknown command, __func__);break;}return result; } 函数名LedGpioCtrl。功能说明LED GPIO控制函数低电平点亮LED高电平熄灭LED。 static int32_t LedGpioCtrl(uint16_t gpio, int32_t mode) {uint16_t level GPIO_VAL_HIGH;if (HDF_SUCCESS ! GpioSetDir(gpio, GPIO_DIR_OUT)) {HDF_LOGE(%s: GpioSetDir failed, __func__);return HDF_FAILURE;}if (mode LED_ON) {level GPIO_VAL_LOW;} else if (mode LED_OFF) {level GPIO_VAL_HIGH;}if (HDF_SUCCESS ! GpioWrite(gpio, level)) {HDF_LOGE(%s: GpioWrite failed, __func__);return HDF_FAILURE;}return HDF_SUCCESS; } 3、应用层程序 1应用层代码分析 程序启动后获取命令行参数如果命令行不带参数RGB三色灯运行跑马灯如果命令行带参数根据传入的参数的低三位映射点亮对应的红灯、绿灯和蓝灯通过HdfIoServiceBind绑定RGB三色灯HDF服务获取HDF空间缓冲区向缓冲区写入需要控制的RGB三色灯低三位数据通过RGB_LED_WRITE命令下发到HDF驱动中从而控制RGB三色灯亮灭。程序运行结束回收HDF空间缓冲区和HDF服务。 int main(int argc, char* argv[]) {int ret HDF_SUCCESS;int32_t mode -1;if (argc ARGS_NUM) {mode atoi(argv[1]);/*low-3bits*/mode 0x7;HILOG_INFO(LOG_APP, [%s] main enter: mode[%s%s%s][0x%X],LOG_TAG,(modeRGB_LED_BLUE_BIT)?B:-,(modeRGB_LED_GREEN_BIT)?G:-,(modeRGB_LED_RED_BIT)?R:-,mode);printf(RGB mode[%s%s%s][0x%X]\n,(modeRGB_LED_BLUE_BIT)?B:-,(modeRGB_LED_GREEN_BIT)?G:-,(modeRGB_LED_RED_BIT)?R:-,mode);} else {HILOG_INFO(LOG_APP, [%s] main enter: auto test RGB LED, LOG_TAG);printf(auto test RGB LED\n);}struct HdfIoService *serv HdfIoServiceBind(RGB_LED_SERVICE_NAME);if (serv NULL) {HILOG_ERROR(LOG_APP, get service %s failed, RGB_LED_SERVICE_NAME);return -1;}struct HdfSBuf *data HdfSbufObtainDefaultSize();if (data NULL) {HILOG_ERROR(LOG_APP, obtain data failed);return -1;}if (mode -1) {mode 0x8;while (mode) {HdfSbufFlush(data);if (!HdfSbufWriteInt32(data, --mode)) {HILOG_ERROR(LOG_APP, write data failed);return -1;}ret serv-dispatcher-Dispatch(serv-object, RGB_LED_WRITE, data, NULL);sleep(1);}} else {if (!HdfSbufWriteInt32(data, mode)) {HILOG_ERROR(LOG_APP, write data failed);return -1;}ret serv-dispatcher-Dispatch(serv-object, RGB_LED_WRITE, data, NULL);}HdfSbufRecycle(data);HdfIoServiceRecycle(serv);HILOG_INFO(LOG_APP, [%s] main exit., LOG_TAG);return ret; } 四、运行程序 系统启动后命令行运行命令 rgb_led 五、运行结果 运行结果 # rgb_led auto test RGB LED# rgb_led 1 RGB mode[--R][0x1] # rgb_led 2 RGB mode[-G-][0x2] # rgb_led 3 RGB mode[-GR][0x3] # rgb_led 4 RGB mode[B--][0x4] # rgb_led 5 RGB mode[B-R][0x5] # rgb_led 6 RGB mode[BG-][0x6] # rgb_led 7 RGB mode[BGR][0x7] 最后推荐一款应用开发神器 扯个嗓子关于目前低代码在技术领域很活跃 低代码是什么一组数字技术工具平台能基于图形化拖拽、参数化配置等更为高效的方式实现快速构建、数据编排、连接生态、中台服务等。通过少量代码或不用代码实现数字化转型中的场景应用创新。它能缓解甚至解决庞大的市场需求与传统的开发生产力引发的供需关系矛盾问题是数字化转型过程中降本增效趋势下的产物。 这边介绍一款好用的低代码平台——JNPF快速开发平台。近年在市场表现和产品竞争力方面表现较为突出采用的是最新主流前后分离框架SpringBootMybatis-plusAnt-DesignVue3。代码生成器依赖性低灵活的扩展能力可灵活实现二次开发。 以JNPF为代表的企业级低代码平台为了支撑更高技术要求的应用开发从数据库建模、Web API构建到页面设计与传统软件开发几乎没有差异只是通过低代码可视化模式减少了构建“增删改查”功能的重复劳动还没有了解过低代码的伙伴可以尝试了解一下。 应用https://www.jnpfsoft.com/?csdn 有了它开发人员在开发过程中就可以轻松上手充分利用传统开发模式下积累的经验。所以低代码平台对于程序员来说有着很大帮助。
http://www.dnsts.com.cn/news/199324.html

相关文章:

  • 郓城县住房和建设局网站360免费wifi官网
  • 定做专业营销型网站承德网站制作方案
  • wordpress模块化建站wordpress 去掉仪表盘
  • wordpress+资源站模板销售管理系统
  • 官方网站作用现在o2o的平台有哪些
  • 机电网站模板织梦网站如何做伪静态
  • 没有做防注入的网站建网站自学
  • 个人 网站 备案公司名称变更
  • h5网站是什么意思免费微商城平台
  • 成都学生做网站网站二次备案
  • 设计公司网站需要考虑什么软件dw做网站
  • 网站建设qq群骨科医院网站优化服务商
  • 公司建网站费用本科自考最快多久拿证
  • 用自己的电脑做服务器搭建网站无锡建网站价格
  • 四川通江县住房和建设局网站做纸浆的网站
  • 怎样把自己做的网站发布app官网下载
  • 开平网站建设软件商店app下载安装
  • 搭建网站详细步骤字体模板素材免费下载网站
  • 建高铁站赚钱吗免插件优化wordpress
  • 互站网怎么样网页游戏排行大全
  • 如何做简洁网站设计网站的网站地图怎么做
  • 网站建设公司专业网站科技开发威海房产网
  • 企业网站模板源代码长沙网红景点
  • 百度做网站的公司建筑培训网官网证件查询
  • 运城云起时网站建设哪些网站可以做免费答题
  • 360移动建站公司注册网站需要什么条件
  • 中小企业加盟网站建设wordpress能做大型cms
  • 网站外链数怎么查商城网站建设高端
  • 网站建设的公司收费WordPress网站登录邮件提醒
  • 查看网站是否wordpresswordpress新闻类模板下载