基于stm32F103的pwm源碼
單片機源程序如下:
- /**
- ************************************************************
- * @file main.c
- * @brief MCU版 入口文件
- * @author Gizwits
- * @date 2016-09-05
- * @version V03010101
- * @copyright Gizwits
- *
- * @note 機智云.只為智能硬件而生
- * Gizwits Smart Cloud for Smart Products
- * 鏈接|增值ֵ|開放|中立|安全|自有|自由|生態
- * www.gizwits.com
- *
- ***********************************************************/
- #include <string.h>
- #include "Hal_key/hal_key.h"
- #include "Hal_Usart/hal_uart.h"
- #include "Hal_Watchdog/hal_watchdog.h"
- #include "gizwits_protocol.h"
- /** 用戶區當前設備狀態結構體*/
- dataPoint_t currentDataPoint;
- /**@name 按鍵相關定義
- * @{
- */
- #define GPIO_KEY_NUM 2 ///< 定義按鍵成員總數
- keyTypedef_t singleKey[GPIO_KEY_NUM]; ///< 定義單個按鍵成員數組指針
- keysTypedef_t keys; ///< 定義總的按鍵模塊結構體指針
- /**@} */
- /**
- * 用戶初始化函數
- * 在該函數中完成了外設驅動初始化以及用戶相關數據的初始
- * @param none
- * @return none
- * @note 開發者可在此函數內添加新的驅動初始及狀態初始化
- */
- void userInit(void)
- {
- uartxInit(); //printf打印串口初始化
- watchdogInit(2); //看門狗復位時間2s
- memset((uint8_t*)¤tDataPoint, 0, sizeof(dataPoint_t));
- }
- /**
- * 用戶數據獲取
- * 此處需要用戶實現除可寫數據點之外所有傳感器數據的采集,可自行定義采集頻率和設計數據過濾算法
- * @param none
- * @return none
- */
- void userHandle(void)
- {
- /*
- */
- }
- /**
- * key1按鍵短按處理
- * @param none
- * @return none
- */
- void key1ShortPress(void)
- {
- //AirLink mode
- printf("KEY1 PRESS ,Wifi AirLink\n");
- gizwitsSetMode(WIFI_AIRLINK_MODE);
- }
- /**
- * key1按鍵長按處理
- * @param none
- * @return none
- */
- void key1LongPress(void)
- {
- printf("KEY1 PRESS LONG ,Wifi Reset\n");
- gizwitsSetMode(WIFI_RESET_MODE);
- }
- /**
- * key2按鍵短按處理
- * @param none
- * @return none
- */
- void key2ShortPress(void)
- {
- printf("KEY2 PRESS ,Soft AP mode\n");
- gizwitsSetMode(WIFI_SOFTAP_MODE);
- }
- /**
- * key2按鍵長按處理
- * @param none
- * @return none
- */
- void key2LongPress(void)
- {
- //AirLink mode
- printf("KEY2 PRESS LONG ,AirLink mode\n");
- gizwitsSetMode(WIFI_AIRLINK_MODE);
- }
- /**
- * 按鍵初始化
- * @param none
- * @return none
- */
- void keyInit(void)
- {
- singleKey[0] = keyInitOne(RCC_APB2Periph_GPIOC, GPIOC, GPIO_Pin_13, key1ShortPress, key1LongPress);
- singleKey[1] = keyInitOne(RCC_APB2Periph_GPIOA, GPIOA, GPIO_Pin_8, key2ShortPress, key2LongPress);
- keys.singleKey = (keyTypedef_t *)&singleKey;
- keyParaInit(&keys);
- }
- /**
- * @brief程序入口函數
- * 在該函數中完成用戶相關的初始化,及主邏輯循環
- * @param none
- * @return none
- */
- int main(void)
- {
- SystemInit();
-
- userInit();
- keyInit();
- timerInit();
- uartInit();
- motorInit();
- gizwitsInit();
-
- printf("MCU Init Success \n");
- while(1)
- {
- watchdogFeed();
-
- userHandle();
-
- gizwitsHandle((dataPoint_t *)¤tDataPoint);
- }
- }
復制代碼
所有資料51hei提供下載:
GizwitsMCUSTM32F103C8x201706130809184111c26370.zip
(6.74 MB, 下載次數: 20)
2018-3-27 10:44 上傳
點擊文件名下載附件
PWM 下載積分: 黑幣 -5
|