标题:
基于stm32F103的pwm源码
[打印本页]
作者:
chenjunmf
时间:
2018-3-27 10:45
标题:
基于stm32F103的pwm源码
基于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
作者:
dillinllp
时间:
2018-3-31 09:13
谢谢分享,下来学习。。。
作者:
Sooofia
时间:
2018-3-31 18:57
谢谢分享 想请问一下 这个程序可以用于PWM充电控制嘛
作者:
sfdsg
时间:
2019-7-17 16:20
感觉不错
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1