1. 程式人生 > >STM32機智雲開發程式移植教程

STM32機智雲開發程式移植教程

今天移植以機智雲智慧燈為例 我之前在學習STM32機智雲平臺的時候參考的是正點原子的教程,可他的移植庫是舊版的方法了,現在自動生成的程式碼已經有些不同,所以移植方法也有些不一樣。 這裡我就不進行前面的一系列建立了,前面的就參照正點原子機智雲的開發使用者手冊來就行,我這裡直接從自動生成程式碼開始講。

1.硬體平臺這選擇其他平臺,然後生成程式碼包 這裡寫圖片描述

2.開啟裡面有五個檔案,我們把前三個檔案複製到自己的工程裡(在這裡替換main.c),我選擇的是正點原子定時器中斷的實驗,用的是正點原子的探索者 這裡寫圖片描述

3.因為是通過串列埠進行資料傳輸,還要用到按鍵,所以在這直接找了現成的KEY檔案和USART檔案放在HARDWARE資料夾下 這裡寫圖片描述

4.開啟工程,把之前的都新增進來,然後新增標頭檔案 這裡寫圖片描述

5.配置gizwits_product.c檔案,具體看程式碼,看行數就能快速找到 增加標頭檔案宣告

#include "led.h"

配置gizwitsEventProcess(eventInfo_t *info, uint8_t *gizdata, uint32_t len) 這裡寫圖片描述

配置mcuRestart(void) 這裡寫圖片描述

配置uartWrite(uint8_t *buf, uint32_t len) 這裡寫圖片描述

6.配置HARDWARE資料夾下的檔案,我就把要加的地方弄出來,其他的直接看我最後發的原始碼吧 這裡寫圖片描述

這裡寫圖片描述

7.最後就是main.c檔案

#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "led.h"
#include "timer.h"
#include "key.h"
#include "usart3.h"
#include "gizwits_product.h" 

//Gizwits協議初始化
void Gizwits_Init(void)
{
    TIM3_Int_Init(10-1,8400-1); //1MS系統定時 
    usart3_init(9600);//WIFI初始化 
    memset((uint8_t*)&currentDataPoint, 0
, sizeof(dataPoint_t));//裝置狀態結構體初始化 gizwitsInit();//緩衝區初始化 } /** * @brief main * In this function, the user - associated initialization and the main logical loop are completed * @param none * @return none */ int main(void) { int key; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設定系統中斷優先順序分組2 delay_init(168); //初始化延時函式 uart_init(115200); //初始化USART LED_Init(); //初始化LED埠 KEY_Init(); //初始化按鍵 Gizwits_Init(); //協議初始化 printf("--------機智雲IOT-協議移植LED測試實驗----------\r\n"); printf("KEY1:AirLink連線模式\t KEY_UP:復位\r\n\r\n"); while(1) { gizwitsHandle((dataPoint_t *)&currentDataPoint);//協議處理 key = KEY_Scan(0); if(key==KEY1_PRES)//KEY1按鍵 { printf("WIFI進入AirLink連線模式\r\n"); gizwitsSetMode(WIFI_AIRLINK_MODE);//Air-link模式接入 } if(key==WKUP_PRES)//KEY_UP按鍵 { printf("WIFI復位,請重新配置連線\r\n"); gizwitsSetMode(WIFI_RESET_MODE);//WIFI復位 } } }