2474|0

9790

帖子

24

TA的资源

版主

楼主
 

用SensorTile DIY一个无线路由器——软件设计 [复制链接]

 

SensorTile官方提供了MOTENV1工程和BlueMS APP

例程里实现了通过手机控制STLCS01V1板子上的LED灯的功能

所以BlueMS APP可以直接拿来用,省去开发APP的过程

MOTENV1工程只需做简单修改

找一个不使用的I/O

在控制I/O的函数添加到MOTENV1工程中控制LED的函数内

先看一下STLCS01V1半孔焊盘的引脚定义

 

MOTENV1例程里没有麦克风操作所以 MIC_CLK这个引脚应该不会用到

先确认一下

查找到MIC_CLK对应的引脚,看到对应了PC2

MOTENV1工程里查找GPIO_PIN_2确定工程中没有使用PC2这个引脚

只找到一个使用GPIO_PIN_2的地方

stm32l4xx_hal_rcc_ex.c

GPIO_PIN_2对应的端口是GPIOA

所以PC2可以放心使用

Projects\Multi\Applications\MOTENV1\Src目录下建一个router_power.c文件

将其添加到工程的User文件夹中

 

router_power.c里输入下面内容

 

/* Includes ------------------------------------------------------------------*/

#include "stm32l4xx_hal.h"

 

void BSP_ROUTER_Init(void)

{

  GPIO_InitTypeDef  GPIO_InitStruct;

 

  __HAL_RCC_PWR_CLK_ENABLE();

  HAL_PWREx_EnableVddIO2();

 

  __GPIOC_CLK_ENABLE(); 

 

  GPIO_InitStruct.Pin = GPIO_PIN_2;

  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;

  GPIO_InitStruct.Pull = GPIO_NOPULL;

  GPIO_InitStruct.Speed = GPIO_SPEED_FAST;

 

  HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);

}

void BSP_ROUTER_On(void)

{

    HAL_GPIO_WritePin(GPIOC, GPIO_PIN_2, GPIO_PIN_SET);

}

void BSP_ROUTER_Off(void)

{

    HAL_GPIO_WritePin(GPIOC, GPIO_PIN_2, GPIO_PIN_RESET);

}

 

 

再建立一个router_power.h文件

输入下边内容

#ifndef __ROUTER_POWER_H

#define __ROUTER_POWER_H

 

extern void BSP_ROUTER_Init(void);

extern void BSP_ROUTER_On(void);

extern void BSP_ROUTER_Off(void);

#endif

 

 

sensor_service.cTargetPlatform.c文件中引用router_power.h

 

sensor_service.c里找到函数static void ConfigCommandParsing(uint8_t * att_data, uint8_t data_length)

这个函数是用来接收BlueMS APP发来的开关LED指令的

  BSP_ROUTER_On();添加在LedOnTargetPlatform();后边

  BSP_ROUTER_Off();添加在LedOffTargetPlatform();后边    

这样在开关LED的时候PC2就会跟着变化 

TargetPlatform.c里找到InitTargetPlatform函数

这个函数是用来初始化的

BSP_ROUTER_Init();添加进去

 

编译后下载到SensorTile

使用APP控制switch开关再用万用表测量一下PC2的电平变化

功能正常

码修改完成

赞赏

1

查看全部赞赏

点赞 关注
个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾
 
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表