收藏官网首页
查看: 1741|回复: 0

stm32连接机智云,代码移植,NTP实时时间获取(一)

106

主题

115

帖子

4674

积分

论坛元老

Rank: 8Rank: 8

积分
4674
 楼主| 发表于 2024-11-11 15:06:51 | 显示全部楼层 |阅读模式
汉枫LPB120模块
STM32连接机智云,代码移植,NTP实时时间获取(一)


目录

一、机智云介绍
二、固件下载
三、项目例程下载
四、代码移植
五、现在通过第五点配置好了,现在开始正式写代码,嘿嘿~~
六、配对连接
七、NTP(网络获取实时时间)的实现
九。网盘资料链接


机智云介绍

广州机智云物联网科技有限公司旗下品牌,全球领先的智能IoT开发及云服务平台,国内首个物联网自助开发平台,第三方物联网云平台代表企业,工业互联网平台解决方案商,国家高新技术企业,国家级特色专业型工业互联网平台,工信部第五批服务型制造示范平台,广东省专精特新中小企业、广东省工业互联网产业生态供给资源首批工业互联网平台服务商、广东省工业互联网应用服务平台供应商、广东省服务型制造示范平台,广州市“四化”赋能重点平台、广州市科技创新小巨人、广州市科技服务示范机构。


固件下载

在这一篇文章中有讲到:记录:esp8266-01/01s如何下载固件(下载教程)_esp8266固件下载-CSDN博客

项目例程下载

1.创建项目


登录机智云,创建一个账号,,再创建一个项目



1.png

产品名称可以自定义,其他的按照片里的设置就行。


2.png


2.添加数据点



3.png

编辑要创建的数据点,其中标志名命名跟c语言的命名规则一样,尽量命名自己看得懂的,后需要用到;显示名称可以是中文,数据点建立好后可以在网站中看到;由于温度时模块检测再传到机智云APP中,所以只需要只读类型就可以。其他的类型小伙伴们可以自己去试着玩玩。



4.png

这个就是建立好的数据点,左右拖动进度条可以看到有重新编辑或是删除数据点的功能



5.png

3.获取标准库例程,硬件平台选其他平台,红框的产品秘钥在左上角需要验证账号密码才能获取,输入完成后点击生成代码包,等待生成完成将他下载下来



6.png

4.下载完成后,红框的部分是我们需要的,还附带有一份开始指南,有兴趣的可以自己研究下



7.png

代码移植
1.移植代码之前要确保你的MCU具备一个串口负责打印信息(调试),一个串口负责与esp8266-01S模块通信和一个1ms定时的定时器功能。


2.将从机智云下载的例程中的Gizwits和Uilts文件夹复制到自己的项目文件夹中,并导入到工程里,记得将文件夹的路径也添加好。

8.png


3.然后开始修改gizwits_product.c文件

(1)首先在gizwits_product.c找到这句代码复制到main.c文件,在gizwits_product.c中在这代码前加extern **。


9.png

10.png


main文件中报错先不管他。

(2)在gizwits_product.c找到这个mcuRestart函数,在函数里面加上这两句话

  1.     __set_FAULTMASK(1); // 关闭所有中断
  2.    NVIC_SystemReset(); // 复位
复制代码

11.png

由于用到32的库函数,所以需要在gizwits_product.c文件顶部加上32的头文件,就不会报错



(3)将int32_t uartWrite(uint8_t *buf, uint32_t len)函数里for循环替换掉


  1. for(i=0; i<len; i++)    {        USART_SendData(USART3,buf[i]);//这个是使用串口三跟8266模块通信,可以根据自己需求改变        while(USART_GetFlagStatus(USART3,USART_FLAG_TC) == RESET);        if(i >=2 && buf[i] == 0xFF)        {            USART_SendData(USART3, 0x55);            while(USART_GetFlagStatus(USART3,USART_FLAG_TC) == RESET);        }    }
复制代码

12.png

至此,gizwits_product.c文件需要修改的地方就都写完了。


4.我们将两个串口,1ms定时器代码加进来

(1)先添加一个time3定时器的初始化文件进来,记得把文件路径加上哦。



13.png

然后加串口1跟串口3初始化文件,我用的串口三跟wifi模块通信,所以在串口三的中断函数里加上红框的代码,以及一个机智云头文件,大家若是串口1跟串口3没被占用,可以直接无脑复制我的串口初始化文件进工程,在底部网盘链接里哦。



  1. #include "usart3.h"#include "gizwits_product.h"void USART3_IRQHandler(void){    u8 res;    if(USART_GetITStatus(USART3, USART_IT_RXNE) != RESET)//接收到数据    {        res = USART_ReceiveData(USART3);        gizPutData(&res, 1); // 数据写入到缓冲区    }}
复制代码





您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

加入Q群 返回顶部

版权与免责声明 © 2006-2024 Gizwits IoT Technology Co., Ltd. ( 粤ICP备11090211号 )

快速回复 返回顶部 返回列表