切换到宽版
爱科技/爱创意/爱折腾/爱极致;技术知识分享平台,点击进入新版数码之家网站
  • 1760阅读
  • 2回复

[照明]正点原子F407/103,接入机智云,点亮LED [复制链接]

上一主题 下一主题
离线机智小子
 

发帖
32
M币
-12
专家
2
粉丝
7
只看楼主 倒序阅读 我要置顶 楼主  发表于: 2017-10-19
这次要做的是用正点原子的探索者接入机智云并点亮LED

任务:
  1. 准备材料,探索者开发板,esp8266(我用的是正点原子的)
  2. GAgent固件
  3. 建立数据点,下载MCU代码
  4. 创建工程,移植机智云的MCU代码到新建的工程
  5. 连接机智云



1.材料 正点原子F407/103,接入机智云,点亮LED

2.烧GAgent固件,这个过程我就详细展开了,可以参考STM32F407 机智云开发手册V1.0http://club.gizwits.com/forum.ph ... =%E6%AD%A3%E7%82%B9

3.创建数据点 正点原子F407/103,接入机智云,点亮LED

  下载机智云自动生成的MCU代码,这里选择的是F407的
正点原子F407/103,接入机智云,点亮LED正点原子F407/103,接入机智云,点亮LED

正点原子F407/103,接入机智云,点亮LED


开始重点了

机智云生成MCU代码和STM32F407 机智云开发手册V1.0中的已经有所不同了,所以我这里是根据最新的生成MCU代码来实现连接机智云
4.创建工程,移植机智云的MCU代码到新建的工程
  • 这里我就直接引用正点原子F407实验8 定时器中断实验的例程 正点原子F407/103,接入机智云,点亮LED实验8 定时器中断实验.zip (478.1 KB, 下载次数: 1)
  • 我们需要把机智云自动生成的MCU代码文件中的Gizwits和Utils复制到引用的正点原子例程中
  • 正点原子F407/103,接入机智云,点亮LED
  • 在例程的HARDWEAR文件下建立KEY和USART3文件夹,并且分别在这两个文件夹下加入key.h,   key.c和usart3.h  usart3.c
  • (在正点原子F407的其他例程中直接复制这两个c文件和头文件)
  • 正点原子F407/103,接入机智云,点亮LED 正点原子的例程是没有上面要添加的文件的
  • 添加文件,完成后正点原子F407/103,接入机智云,点亮LED正点原子F407/103,接入机智云,点亮LED
  • 现在修改进行修改
  • 把#include "Hal_Usart/hal_uart.h"修改为#include "usart3.h"   USART3的配置在usart3.c实现
  • 并且把usart3.c中的中断服务函数void USART3_IRQHandler(void)注释掉,因为在#include "gizwits_product.c"中有实现


  • 把timer.c中的void TIM3_IRQHandler(void)也注释的,因为#include "gizwits_product.c"中有实现



  • 在gizwits_product.c中的
  • int8_t gizwitsEventProcess(eventInfo_t *info, uint8_t *data, uint32_t len)添加我们的用户事件逻辑





  • 修改main.c
  • 添加
  • #include "usart3.h"
  • #include "key.h"
  • #include "gizwits_product.h"
  • 写初始化协议函数和数据采集函数
  • 正点原子F407/103,接入机智云,点亮LED
  • 再写main函数,在main中初始化外设并且进行用户数据采集和协议处理就可以了
  • 正点原子F407/103,接入机智云,点亮LED
  • 还需要把gizwits_product.c中的void userHandle(void)注释掉,因为在main.c中再次定义了



  • 有写注意事项,要把c99选上正点原子F407/103,接入机智云,点亮LED


  • 我这里还加上了控制LED的亮度,要添加pwm.c和pwm.h这两个文件,并且配置pwm
  • 正点原子F407/103,接入机智云,点亮LED正点原子F407/103,接入机智云,点亮LED
  • 然后再main.c中初始化,就可以了记得加#include“pwm.h”
  • 最后在int8_t gizwitsEventProcess(eventInfo_t *info, uint8_t *gizdata, uint32_t len)函数中的亮度事件里面写入pwm的输出就可以了
  • 正点原子F407/103,接入机智云,点亮LED


  • 效果图
  • 正点原子F407/103,接入机智云,点亮LED正点原子F407/103,接入机智云,点亮LED正点原子F407/103,接入机智云,点亮LED正点原子F407/103,接入机智云,点亮LED


本教程适用于F103
离线一瞬の空

发帖
308
M币
634
专家
5
粉丝
17
只看该作者 1楼 发表于: 2017-10-19
离线lqi520
发帖
1
M币
0
专家
0
粉丝
0
只看该作者 2楼 发表于: 2018-04-11
请登录后查看
快速回复
限80 字节
温馨提示:欢迎交流讨论,请勿发布纯表情、纯引用等灌水帖子;以免被删除
 
上一个 下一个