您的位置 首页 编程

智林STM32程序源代码的剖析和收拾04

一、定时器的配置1、概述STM32的定时器功能比较多、配置也较复杂,我现在了解不多,边用边学吧。智林开发板上有两个用定时器的地方,一个是

一、守时器的装备

1、概述

STM32的守时器功用比较多、装备也较杂乱,我现在了解不多,边用边学吧。智林开发板上有两个用守时器的当地,一个是液晶的背光电源,要求输出必定的PWM波形,用于整流供给电源;二是用于操控喇叭,也是时钟脉冲输出。

守时器首要的挑选是计数、仍是守时,我这儿用的都是守时,输出形式可所以输入时守时器的捕获,可所以比较匹配时设定输出(常常用到这一种)。

2、源程序

void TIMx_Config(void) {

TIM_TimeBaseInitTypeDefTIM_TimeBaseStructure;//时基单元装备数据结构

TIM_OCInitTypeDefTIM_OCInitStructure;//输出形式设置数据结构

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;//PA2,复用输出形式

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;//即用于守时2通道3

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(GPIOA, &GPIO_InitStructure);

TIM_TimeBaseStructure.TIM_Period = CCR3_Val;//40写入主动装载寄存器,150KHz输出。

TIM_TimeBaseStructure.TIM_Prescaler = 2;//分频系数3

TIM_TimeBaseStructure.TIM_ClockDivision = 0;//与什么采样相关,这儿用不到

//向上计数的特点是:从0到加载值,发生溢出;然后从头从0计数。

TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;

TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);

TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_Toggle;//守时器计数与比较通道匹配时翻转

TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;//敞开输出通道

TIM_OCInitStructure.TIM_Pulse = CCR3_Val;//比较通道的计数值

TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;//低电平有用

TIM_OC3Init(TIM2, &TIM_OCInitStructure);

TIM_OC3PreloadConfig(TIM2, TIM_OCPreload_Enable);//主动重装载,预装载

TIM_Cmd(TIM2, ENABLE);

//TIM_ITConfig(TIM2, TIM_IT_CC3, ENABLE);

}

这儿只列出了液晶运用的守时器2通道3的输出,输出150kHz的频率。没用到中止。这个频率是怎样得到的呢?首要是TIM2运用APB1的36M,通过预分频,分频系数为(Prescaler+1)=3,3分频后为12MHz。计数周期为40,计数到40与输出比较寄存器发生匹配,触发输出翻转,然后计数器从头开始计数。故输出通道的频率为12MHz除以80,得到150kHz。

二、串口的装备

按键输入指令不怎样便利,很快我就要编写串口通讯程序,用串口输入指令,操控开发板。串口装备用库函数很便利。

void UART_Config(void){//进行串口的初始化装备

USART_InitTypeDef USART_InitStructure;

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(GPIOA, &GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;

USART1->BRR =0x0271;

USART_Cmd(USART1, ENABLE);

}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/biancheng/256504.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部