STM32機智雲開發程式移植教程
阿新 • • 發佈:2018-12-10
今天移植以機智雲智慧燈為例 我之前在學習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*)¤tDataPoint, 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 *)¤tDataPoint);//協議處理
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復位
}
}
}