11

帖子

0

TA的资源

一粒金砂(中级)

1361
 
我一直在寻找关于直接操作寄存器的  谢谢楼主  受用了
此帖出自stm32/stm8论坛
 

回复

7

帖子

0

TA的资源

一粒金砂(初级)

1362
 
有PDF吗
此帖出自stm32/stm8论坛
 
 

回复

551

帖子

181

TA的资源

纯净的硅(初级)

1363
 

下载看看~

下载看看~
此帖出自stm32/stm8论坛
 
 

回复

3

帖子

0

TA的资源

一粒金砂(初级)

1364
 
学习一下
此帖出自stm32/stm8论坛
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

1365
 
感谢分享啊~!
此帖出自stm32/stm8论坛
 
 
 

回复

17

帖子

0

TA的资源

一粒金砂(中级)

1366
 
好贴啊!!!!!!
此帖出自stm32/stm8论坛
 
 
 

回复

954

帖子

0

TA的资源

纯净的硅(初级)

1367
 
楼主写的太好了,看来几遍,感觉懂了很多
此帖出自stm32/stm8论坛
 
 
 

回复

16

帖子

0

TA的资源

一粒金砂(中级)

1368
 
牛~~~
此帖出自stm32/stm8论坛
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(中级)

1369
 

回复 楼主 losingamong 的帖子

stm32的pwm输出/*******************************************************************************
* 文件名                  : main.c
* 作者                     : Losingamong
* 生成日期                  : 17/09/2010
* 描述                        : 主程序
********************************************************************************/



/* 头文件 ------------------------------------------------------------------*/

#include "stm32f10x_lib.h"

/* 自定义同义关键字    --------------------------------------------------------*/

/* 自定义参数宏        --------------------------------------------------------*/

/* 自定义函数宏        --------------------------------------------------------*/

/* 自定义全局变量          ----------------------------------------------------*/

vu16 CCR1_Val = 60000;                                                /* 初始化输出比较通道1计数周期变量 */
vu16 CCR2_Val = 30000;                                                /* 初始化输出比较通道2计数周期变量 */
vu16 CCR3_Val = 15000;                                                   /* 初始化输出比较通道3计数周期变量 */
vu16 CCR4_Val = 7500;                                                /* 初始化输出比较通道4计数周期变量 */

/* 自定义函数声明      --------------------------------------------------------*/

void RCC_Configuration(void);
void GPIO_Configuration(void);
void TIM_Configuration(void);



/*******************************************************************************
* 函数名                 : main
* 函数描述       : main 函数
* 输入参数       : 无
* 输出结果       : 无
* 返回值         : 无
*******************************************************************************/

int main(void)
{
        /* 设置系统时钟 */
        RCC_Configuration();
       
        /* 设置 GPIO 端口 */
        GPIO_Configuration();

        /* 设置 TIM */
        TIM_Configuration();
       
        while (1);
}

/*******************************************************************************
* 函数名                : RCC_Configuration
* 函数描述          : 设置系统各部分时钟
* 输入参数          : 无
* 输出结果          : 无
* 返回值            : 无
*******************************************************************************/

void RCC_Configuration(void)
{
        /* 定义枚举类型变量 HSEStartUpStatus */
        ErrorStatus HSEStartUpStatus;

          /* 复位系统时钟设置 */
          RCC_DeInit();

          /* 开启 HSE */
          RCC_HSEConfig(RCC_HSE_ON);

          /* 等待 HSE 起振并稳定 */
          HSEStartUpStatus = RCC_WaitForHSEStartUp();
       
        /* 判断 HSE 起是否振成功,是则进入if()内部 */
          if(HSEStartUpStatus == SUCCESS)
          {
            /* 选择 HCLK(AHB)时钟源为SYSCLK 1分频 */
            RCC_HCLKConfig(RCC_SYSCLK_Div1);
  
            /* 选择 PCLK2 时钟源为 HCLK(AHB) 1分频 */
            RCC_PCLK2Config(RCC_HCLK_Div1);

            /* 选择 PCLK1 时钟源为 HCLK(AHB) 2分频 */
            RCC_PCLK1Config(RCC_HCLK_Div2);

            /* 设置 FLASH 延时周期数为2 */
            FLASH_SetLatency(FLASH_Latency_2);

            /* 使能 FLASH 预取缓存 */
            FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);

            /* 选择锁相环(PLL)时钟源为HSE 1分频,倍频数为9,则PLL输出频率为 8MHz * 9 = 72MHz */
            RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);

            /* 使能 PLL */
            RCC_PLLCmd(ENABLE);

            /* 等待 PLL 输出稳定 */
            while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);

            /* 选择 SYSCLK 时钟源为 PLL */
            RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);

            /* 等待 PLL 成为 SYSCLK 时钟源 */
            while(RCC_GetSYSCLKSource() != 0x08);
          }

          /* 打开 TIM2 时钟 */
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2 , ENABLE);
          /* 打开 APB 总线上的 GPIOA,USART1 时钟 */
          RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA , ENABLE);
}



/*******************************************************************************
* 函数名                  : GPIO_Configuration
* 函数描述            : 设置各GPIO端口功能
* 输入参数      : 无
* 输出结果      : 无
* 返回值        : 无
*******************************************************************************/

void GPIO_Configuration(void)
{
        /* 定义 GPIO 初始化结构体 GPIO_InitStructure */
        GPIO_InitTypeDef GPIO_InitStructure;

        /* 设置 GPIOA 上的 TIM2 1,2,3,4通道对应引脚 PA.0,PA.1,PA.2,PA.3 为第二功能推挽输出 */
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;       
        GPIO_Init(GPIOA, &GPIO_InitStructure);
}



/*******************************************************************************
* 函数名                  : TIM_Configuration
* 函数描述            : 设置TIM各通道
* 输入参数      : 无
* 输出结果      : 无
* 返回值        : 无
*******************************************************************************/

void TIM_Configuration(void)
{
        /* 定义 TIM_TimeBase 初始化结构体 TIM_TimeBaseStructure */
        TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
        /* 定义 TIM_OCInit 初始化结构体 TIM_OCInitStructure */
        TIM_OCInitTypeDef  TIM_OCInitStructure;
       
        /*
        *          计数重载值为9999
        *          预分频值为(0+ 1 = 1)
        *          时钟分割0
        *          向上计数模式
        */
        TIM_TimeBaseStructure.TIM_Period = 60000;
        TIM_TimeBaseStructure.TIM_Prescaler = 0;
        TIM_TimeBaseStructure.TIM_ClockDivision = 0;
        TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;       
        TIM_TimeBaseInit(TIM2 , &TIM_TimeBaseStructure);

        /*         设置 OC1,OC2,OC3,OC4 通道
        *          工作模式为 PWM 输出模式
        *          使能比较匹配输出极性
        *          时钟分割0
        *          向上计数模式
        *
        *        设置各匹配值分别为 CCR1_Val, CCR1_Val, CCR1_Val, CCR1_Val
        *        得到的占空比分别为 50%, 37.5%, 25%, 12.5%  
        */

        TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
        TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;       
        TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;

        TIM_OCInitStructure.TIM_Pulse = CCR1_Val;       
        TIM_OC1Init(TIM2, &TIM_OCInitStructure);
               
        TIM_OCInitStructure.TIM_Pulse = CCR2_Val;       
        TIM_OC2Init(TIM2, &TIM_OCInitStructure);
       
        TIM_OCInitStructure.TIM_Pulse = CCR3_Val;       
        TIM_OC3Init(TIM2, &TIM_OCInitStructure);
               
        TIM_OCInitStructure.TIM_Pulse = CCR4_Val;       
        TIM_OC4Init(TIM2, &TIM_OCInitStructure);

        /* 使能预装载寄存器 */
        TIM_OC1PreloadConfig(TIM2 , TIM_OCPreload_Enable);
        TIM_OC2PreloadConfig(TIM2 , TIM_OCPreload_Enable);
        TIM_OC3PreloadConfig(TIM2 , TIM_OCPreload_Enable);
        TIM_OC4PreloadConfig(TIM2 , TIM_OCPreload_Enable);

        TIM_ARRPreloadConfig(TIM2, ENABLE);
       
        /* 启动 TIM 计数 */
        TIM_Cmd(TIM2 , ENABLE);       
}
此帖出自stm32/stm8论坛
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

1370
 

123

谢谢分享了
此帖出自stm32/stm8论坛
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(初级)

1371
 
楼主辛苦了
此帖出自stm32/stm8论坛
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

1372
 
学习
此帖出自stm32/stm8论坛
 
 
 

回复

4

帖子

0

TA的资源

一粒金砂(初级)

1373
 
很好的解说,下回来看
此帖出自stm32/stm8论坛
 
 
 

回复

4

帖子

0

TA的资源

一粒金砂(初级)

1374
 
好东西,新手入门必经之路
此帖出自stm32/stm8论坛
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

1375
 
学习一下。
此帖出自stm32/stm8论坛
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(初级)

1376
 
楼主好人啊
此帖出自stm32/stm8论坛
 
 
 

回复

17

帖子

0

TA的资源

一粒金砂(中级)

1377
 
分析的很到位,帮顶了
此帖出自stm32/stm8论坛
 
 
 

回复

4

帖子

0

TA的资源

一粒金砂(中级)

1378
 

回复 楼主 losingamong 的帖子

谢谢了!
此帖出自stm32/stm8论坛
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(初级)

1379
 

回复 楼主 losingamong 的帖子

恩恩
此帖出自stm32/stm8论坛
 
 
 

回复

10

帖子

0

TA的资源

一粒金砂(中级)

1380
 

看看不错 ,pdf在哪?

看看不错 ,pdf在哪?
此帖出自stm32/stm8论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表