历史上的今天
今天是:2024年09月22日(星期日)
2018年09月22日 | STM32的定时器(含中断)配置样例
2018-09-22 来源:eefocus
1. 系统时钟配置
void RCC_Configuration(void)
{
ErrorStatus HSEStartUpStatus;
RCC_DeInit();
RCC_HSEConfig(RCC_HSE_ON);
HSEStartUpStatus = RCC_WaitForHSEStartUp();
if (HSEStartUpStatus == SUCCESS)
{
RCC_HCLKConfig(RCC_SYSCLK_Div1); //设置AHB(HCLK)时钟为系统时钟
RCC_PCLK2Config(RCC_HCLK_Div1); //设置高速AHB时钟(APB2)为HCLK时钟
RCC_PCLK1Config(RCC_HCLK_Div2); //设置低速AHB时钟(APB1)为HCLK的2分频
RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);//选择PLL时钟源为HSE1分频,倍频为
//9,PLLCLK = 8MHz * 9 = 72 MHz
RCC_PLLCmd(ENABLE);
while (RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
while (RCC_GetSYSCLKSource() != 0x08);
}
}
2. 为产生PWM脉冲的定时器配置
void TIMER2_Cfg(void)
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
TIM_DeInit(TIM2);
TIM_InternalClockConfig(TIM2);
TIM_TimeBaseStructure.TIM_Prescaler = 720-1; //预分频系数, 此时TIMER的频率=100k
TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; //设置时钟分割
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //设置计数器模式为向上计数模式
TIM_TimeBaseStructure.TIM_Period = 1000 - 1; //设置计数溢出大小,每计1000个脉冲就
//产生一个更新事件。TIM_Period时长意味着TIM_Prescaler分频后脉冲频率的再分频。
TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure); //把配置写入寄存器
//以下是TIM2中断配置
TIM_ClearFlag(TIM, TIM_FLAG_Update); //清中断,以免一启用中断后立即产生中断
TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE); //使能TIM2中断源
}
3. TIM3产生更新时间的中断配置
void NVIC_Cfg(void)
{
NVIC_InitTypeDef NVIC_InitStructure;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); //设置中断组为1
NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn; //更新事件,TIM2中断通道
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; //抢占优先级0
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; //响应优先级1
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //允许中断
NVIC_Init(&NVIC_InitStructure); //写入设置
}
4.定时器初始化
void PWM_Init(void)
{
RCC_Configuration();
TIMER_Cfg();
NVIC_Cfg();
}
7. 打开定时器2
TIM_Cmd(TIM2, ENABLE);
史海拾趣
|
C8051F+OLED+SHT21设计原理图(第二稿),欢迎大家提出宝贵意见 花了几天时间,总算把本次设计的原理图初稿完成了一下,希望关注的朋友们提点意见以助修改。 目前情况是这样的,本设计,我和空灵准备做一个更趋向于产品的小东西,所以可以做得小巧细致。目前方案如下: 1,锂电池组供电,USB通讯供电(目前锂电 ...… 查看全部问答> |
|
在wince开发程序遇到了问题,个人判断应该是unicode 编码问题 在wince开发程序遇到了问题,个人判断应该是unicode 编码问题,比如有如下问题; CString a(\"$ABCDE\"); 个人认为a.left(6)应该是=\"$ABCDE\",结果返回值是\"$\",难道CString 不支持unicode?,left函数参数不应该是字符数量吗? 另外希望本人自己 ...… 查看全部问答> |
|
首先,我用kmalloc(30*sizeof(char),GFP_DMA)分配了两段存储空间,分别作为源地址和目的地址,就是想要通过dma方式把源地址的数据传送到目的地址。 我采用的是信道0,设置了其相应寄存器, (源地址和目的地址寄存器的值是通过 virt_to_phys(mem) ...… 查看全部问答> |
|
本帖最后由 jameswangsynnex 于 2015-3-3 19:59 编辑 中国互联网巨头盛大推出的电子书内测价格让整个电子阅读器产业感到了前所未有的“寒意”,而友达大规模进军电子书屏幕市场使得电子书屏幕一直被一家企业垄断的格局即将被打破,加上其他企业也 ...… 查看全部问答> |
|
小弟最近在做dsp5509向sd卡写入速度的测试实验,可是实验结果相当的不理想,要么是写的数据不完整,要么是写入速度太慢了,用的芯片是5509.有没有哪位大侠做过相关这方面的测试,能和小弟交流下么qq:106703178email:lovejy984@163.com不胜感激啊 ...… 查看全部问答> |
|
简述: 德州仪器 (TI) 电源管理 IC有着各种解决方案。其中TPS65053x 是集成型电源管理 IC,面向那些由单节锂离子电池或锂聚合物电池供电、需要多个电源轨的应用。TPS65053X 在转换器提供了高达1A的输 图1 IC架构 主要特性: TPS65053x 是集成 ...… 查看全部问答> |




