方案 | 说明 |
| MCU方案 | 模组负责与云端信息的交互,通过串口与主控板(即MCU)进行通信,需要在MCU上进行协议解析与外设控制的开发。 |
| SoC方案 | 节省一颗MCU芯片,利用模组内部资源完成传感器操作和产品逻辑。 |


文件名 | 说明 |
Driver | 其中包含了所有的库文件 |
Gizwits | 机智云协议处理文件 |
Hal | 外设驱动文件 |
MDK-ARM | MDK 的工程文件 |
Inc | STM32源文件的头文件 |
Src | STM32源文件的 C 文件 |
Utils | 公用工具库文件 |
.mxproject | STM32Cube 的配置文件 |
STM32F103C8.ioc | STM32CubeMX 的工程文件(已STM32F103C8平台为例) |
注:需要移植的目录为Gizwits、Hal、Utils三个文件。


注:这里编译器选择为Keil 5





注:需手动将管脚PG8/PG7设置为LPUART_RX/LPUART_TX类型



注:图上选的是ST-LINK








注:可以在根目录下的 Drivers\STM32F1xx_HAL_Driver\Inc 中找到对应平台的头文件。
| [size=1.33333em]/* USER CODE BEGIN Includes */ #include "hal_key.h" #include "gizwits_product.h" #include "common.h" /* USER CODE END Includes */ |
| [size=1.33333em]/* USER CODE BEGIN PV */ /* Private variables ---------------------------------------------------------*/ #define GPIO_KEY_NUM 2 ///< Defines the total number of key member keyTypedef_t singleKey[GPIO_KEY_NUM]; ///< Defines a single key member array pointer keysTypedef_t keys; /* USER CODE END PV */ |
| [size=1.33333em]/* USER CODE BEGIN 0 */ /** * key1 short press handle * @param none * @return none */ void key1ShortPress(void) { GIZWITS_LOG("KEY1 PRESS ,Production Mode\n"); gizwitsSetMode(WIFI_PRODUCTION_TEST); } /** * key1 long press handle * @param none * @return none */ void key1LongPress(void) { GIZWITS_LOG("KEY1 PRESS LONG ,Wifi Reset\n"); gizwitsSetMode(WIFI_RESET_MODE); } /** * key2 short press handle * @param none * @return none */ void key2ShortPress(void) { GIZWITS_LOG("KEY2 PRESS ,Soft AP mode\n"); #if !MODULE_TYPE gizwitsSetMode(WIFI_SOFTAP_MODE); #endif } /** * key2 long press handle * @param none * @return none */ void key2LongPress(void) { //AirLink mode GIZWITS_LOG("KEY2 PRESS LONG ,AirLink mode\n"); #if !MODULE_TYPE gizwitsSetMode(WIFI_AIRLINK_MODE); #endif } /** * Key init function * @param none * @return none */ void keyInit(void) { singleKey[0] = keyInitOne(NULL, KEY1_GPIO_Port, KEY1_Pin, key1ShortPress, key1LongPress); singleKey[1] = keyInitOne(NULL, KEY2_GPIO_Port, KEY2_Pin, key2ShortPress, key2LongPress); keys.singleKey = (keyTypedef_t *)&singleKey; keyParaInit(&keys); } /* USER CODE END 0 */ |
| [size=1.33333em]/* USER CODE BEGIN 2 */ timerInit(); uartInit(); userInit(); gizwitsInit(); keyInit(); GIZWITS_LOG("MCU Init Success \n"); /* USER CODE END 2 */ |
| [size=1.33333em]/* USER CODE BEGIN 3 */ userHandle(); gizwitsHandle((dataPoint_t *)¤tDataPoint); } /* USER CODE END 3 */ |







| [size=1.33333em]if(HAL_GPIO_ReadPin((GPIO_TypeDef\*)keyS->singleKey.keyPort,keyS->singleKey.keyGpio)) |
| 欢迎光临 OpenEdv-开源电子网 (http://47.111.11.73/) | Powered by Discuz! X3.4 |