历史上的今天
今天是:2024年09月03日(星期二)
2019年09月03日 | STM32应用简章之PWM输出
2019-09-03 来源:eefocus
① 使能定时器3和相关IO口时钟。
使能定时器3时钟:RCC_APB1PeriphClockCmd();
使能GPIOB时钟:RCC_APB2PeriphClockCmd();
② 初始化IO口为复用功能输出。函数:GPIO_Init();
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
③这里我们是要把PB5用作定时器的PWM输出引脚,所以要重映射配置,
所以需要开启AFIO时钟。同时设置重映射。
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3, ENABLE);
④ 初始化定时器:ARR,PSC等:TIM_TimeBaseInit();
⑤ 初始化输出比较参数:TIM_OC2Init();
⑥ 使能预装载寄存器: TIM_OC2PreloadConfig(TIM3, TIM_OCPreload_Enable);
⑦ 使能定时器。T
void TIM3_PWM_Init(u16 arr,u16 psc)
{
GPIO_InitTypeDef GPIO_InitStructure;
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
TIM_OCInitTypeDef TIM_OCInitStructure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); //使能定时器3时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE); //使能GPIO外设和AFIO复用功能模块时钟
GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3, ENABLE); //Timer3部分重映射 TIM3_CH2->PB5
//设置该引脚为复用输出功能,输出TIM3 CH2的PWM脉冲波形 GPIOB.5
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; //TIM_CH2
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //复用推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);//初始化GPIO
//初始化TIM3
TIM_TimeBaseStructure.TIM_Period = arr; //设置在下一个更新事件装入活动的自动重装载寄存器周期的值
TIM_TimeBaseStructure.TIM_Prescaler =psc; //设置用来作为TIMx时钟频率除数的预分频值
TIM_TimeBaseStructure.TIM_ClockDivision = 0; //设置时钟分割:TDTS = Tck_tim
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //TIM向上计数模式
TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); //根据TIM_TimeBaseInitStruct中指定的参数初始化TIMx的时间基数单位
//初始化TIM3 Channel2 PWM模式
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; //选择定时器模式:TIM脉冲宽度调制模式2
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //比较输出使能
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; //输出极性:TIM输出比较极性高
TIM_OC2Init(TIM3, &TIM_OCInitStructure); //根据T指定的参数初始化外设TIM3 OC2
TIM_OC2PreloadConfig(TIM3, TIM_OCPreload_Enable); //使能TIM3在CCR2上的预装载寄存器
TIM_Cmd(TIM3, ENABLE); //使能TIM3
}
IM_Cmd();
⑧ 不断改变比较值CCRx,达到不同的占空比效果:TIM_SetCompare2();
史海拾趣
|
经过这些天的查找资料,基本上人脸识别的算法都搞清了。。。下面简述一下各种算法: (1) FPGA硬件选型采用Xilinx公司的Vertex芯片。该单元由视频采集模块、异步FIFO模块、视频解码模块、I2C 配置接口模块、图像帧存控制模块、图像低级处理模块、通 ...… 查看全部问答> |
|
我用的是Quartus11.0版本,它本身不带仿真,在调用Modelsim时,只能进行Gata level级仿真,而不能进行RTL级的仿真,晚辈很是纳闷,这是怎么回事 麻烦各位了… 查看全部问答> |
|
CC1101、CC2530都写的最大电压3.9V,工作电压为1.8(2.0)~3.6V。 那么如果电压时3.7V,是否能稳定工作?芯片有没有损坏的危险?还是芯片不会坏,单片机有故障等危险? 因为设计需要使用3.7V电池。实际回路中约3.67V。超过3.6V,故有此提问。请大家 ...… 查看全部问答> |
|
本人现有一块S3c6410开发板,有意需要者,可qq联系我941012879,有淘宝链接,和该板一摸一样http://item.taobao.com/item.htm?spm=a230r.1.10.91&id=9549882820… 查看全部问答> |
|
流水燈LED還是要多棵一點,比較有感覺,所以再加一串上去一共14個led,TM1804是可以直接联級擴充的,MCU是用1T的51晶振12Mhz ,實物照:影片如下$(\'swf_fl7\').innerHTML=AC_FL_RunContent(\'width\', \'550\', \'height\', \'400\', \'allowNetworkin ...… 查看全部问答> |
|
分析仪基本参数 1、采样率100MHz 2、采样通道16 3、存储容量(待定) 4、存储深度(待定) 5、测量范围0-5V 6、支持协议(有待开发) 核心芯片选择 1、USB接口芯片(CY7C68013A-100AXC)16位FIFO接口。 2、FPGA (EP2C5Q208C8N orEP2C8Q20 ...… 查看全部问答> |
|
本帖最后由 paulhyde 于 2014-9-15 03:09 编辑 如题,最近在做一个用示波器显示8个递减圆的题目,利用示波器的X-Y去显示,编程都编号的,但实际调试的时候发现两个单片机时钟不能同步,请问有什么办法可以使两片单片机使用同一个时钟啊? &nb ...… 查看全部问答> |
|
关于protel99se在制作原理图时添加元件时,老是添加不进去,并且显示File is not recognized 在网上搜一下,大家说这款软件不适合win7的。另外也有解决办法。 如下改可行:TypeCount=2Count=2File0=d:\\Program Files\\Design Explorer 99 SE\\Li ...… 查看全部问答> |
|
因为是刚学所以很多不刷洗的地方,现在让利用MSP430定时器A输出三路PWM波,之前用中断实现了,现在要求不能用中断,跪求各位大神们,怎么样才能在不用中断的情况下完成MSP430定时器A输出三路PWM波的要求啊,跪求!!! … 查看全部问答> |




