#include "pwm.h"
u16 Right_Forward = 100;
// PB7 TIM4_CH2
void TIM42_PWM_Init(u32 arr,u32 psc , u32 CCR2_Val )
{
GPIO_InitTypeDef GPIO_InitStructure;
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
TIM_OCInitTypeDef TIM_OCInitStructure;
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE);
GPIO_PinAFConfig(GPIOB,GPIO_PinSource7,GPIO_AF_TIM4); //GPIOB7
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7 ; //GPIOB7
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_Init(GPIOB,&GPIO_InitStructure); //PB7,PB6
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4,ENABLE);
TIM_TimeBaseStructure.TIM_Prescaler=psc;
TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;
TIM_TimeBaseStructure.TIM_Period=arr;
TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;
TIM_TimeBaseInit(TIM4,&TIM_TimeBaseStructure);
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;
TIM_OCInitStructure.TIM_Pulse = CCR2_Val;// channel 2
TIM_OC2Init(TIM4, &TIM_OCInitStructure);
TIM_OC2PreloadConfig(TIM4, TIM_OCPreload_Enable);
TIM_ARRPreloadConfig(TIM4,ENABLE);//ARPEʹÄÜ
TIM_Cmd(TIM4, ENABLE); //ʹÄÜTIM4
}
void TIM41_PWM_Init(u32 arr,u32 psc , u32 CCR1_Val )
{
GPIO_InitTypeDef GPIO_InitStructure;
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
TIM_OCInitTypeDef TIM_OCInitStructure;
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE);
GPIO_PinAFConfig(GPIOB,GPIO_PinSource6,GPIO_AF_TIM4);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 ;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_Init(GPIOB,&GPIO_InitStructure);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4,ENABLE);
TIM_TimeBaseStructure.TIM_Prescaler=psc;
TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;
TIM_TimeBaseStructure.TIM_Period=arr;
TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;
TIM_TimeBaseInit(TIM4,&TIM_TimeBaseStructure);
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;
TIM_OCInitStructure.TIM_Pulse = CCR1_Val;
TIM_OC1Init(TIM4, &TIM_OCInitStructure);
TIM_OC1PreloadConfig(TIM4, TIM_OCPreload_Enable);
TIM_ARRPreloadConfig(TIM4,ENABLE);
TIM_Cmd(TIM4, ENABLE);
}
void TIM11_PWM_Init(u32 arr,u32 psc , u32 CCR1_Val )
{
GPIO_InitTypeDef GPIO_InitStructure;
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
TIM_OCInitTypeDef TIM_OCInitStructure;
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1,ENABLE);
GPIO_PinAFConfig(GPIOA,GPIO_PinSource8,GPIO_AF_TIM1);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 ;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_Init(GPIOA,&GPIO_InitStructure);
TIM_TimeBaseStructure.TIM_Prescaler=psc;
TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;
TIM_TimeBaseStructure.TIM_Period=arr;
TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;
TIM_TimeBaseInit(TIM1,&TIM_TimeBaseStructure);
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;
TIM_OCInitStructure.TIM_Pulse = CCR1_Val;// channel 1
TIM_OC1Init(TIM1, &TIM_OCInitStructure);
TIM_OC1PreloadConfig(TIM1, TIM_OCPreload_Enable);
TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Reset;
TIM_ARRPreloadConfig(TIM1,ENABLE);
TIM_Cmd(TIM1, ENABLE); //ʹÄÜTIM4
TIM_CtrlPWMOutputs(TIM1, ENABLE);
}
void TIM92_PWM_Init(u32 arr,u32 psc , u32 CCR2_Val )
{
GPIO_InitTypeDef GPIO_InitStructure;
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
TIM_OCInitTypeDef TIM_OCInitStructure;
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOE, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM9,ENABLE);
GPIO_PinAFConfig(GPIOE,GPIO_PinSource6,GPIO_AF_TIM9);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 ;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_Init(GPIOE,&GPIO_InitStructure);
TIM_TimeBaseStructure.TIM_Prescaler=psc;
TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;
TIM_TimeBaseStructure.TIM_Period=arr;
TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;
TIM_TimeBaseInit(TIM9,&TIM_TimeBaseStructure);
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;
TIM_OCInitStructure.TIM_Pulse = CCR2_Val;
TIM_OC2Init(TIM9, &TIM_OCInitStructure);
TIM_OC2PreloadConfig(TIM9, TIM_OCPreload_Enable);
TIM_ARRPreloadConfig(TIM9,ENABLE);//ARPEʹÄÜ
TIM_Cmd(TIM9, ENABLE); //ʹÄÜTIM4
}
上一篇:STM3的TIM4定时器功能设置
下一篇:stm32中编码器模式读出“负数”的问题
推荐阅读
史海拾趣
在竞争激烈的电子行业中,质量管理是企业生存和发展的关键。Caddell-Burns Manufacturing公司深知这一点,因此他们始终将质量放在首位。公司建立了严格的质量管理体系,从原材料采购到产品生产、检验、包装等各个环节都进行严格把关。同时,公司还定期对员工进行质量培训,提高他们的质量意识和操作技能。这些措施确保了公司产品的稳定性和可靠性,赢得了客户的信赖。
Computer Conversions Corp非常重视人才的培养和团队建设。公司定期组织内部培训和技术交流活动,鼓励员工分享经验和创新想法。同时,公司还建立了完善的激励机制,为员工提供广阔的发展空间。这种以人为本的管理理念,不仅增强了团队的凝聚力和创新力,也为公司的持续发展注入了强大的动力。通过这些举措,Computer Conversions Corp打造出了一支高素质、高效率的技术团队,为公司的长远发展奠定了坚实的基础。
在计算机行业快速发展的时代,Computer Conversions Corp公司凭借其敏锐的市场洞察力和技术实力,成功地把握住了行业发展的脉搏。公司曾面临一个重大挑战:如何使老旧的计算机硬件与新兴的软件兼容。为了解决这一问题,Computer Conversions Corp投入大量资源进行技术研发,最终开发出了一种独特的硬件转换器。这种转换器不仅解决了兼容性问题,还大幅提升了数据处理速度,赢得了市场的广泛认可。
AURORA公司深知自动驾驶技术的商业化落地需要与汽车制造商紧密合作。因此,AURORA积极与大众汽车集团、现代汽车等多家知名汽车制造商建立合作关系。通过共同研发和推广自动驾驶技术,AURORA成功帮助这些汽车厂商加速各自自动驾驶汽车的商用计划。这种深度合作不仅提升了AURORA的市场影响力,也为公司的长期发展奠定了坚实基础。
随着市场竞争的加剧和技术的不断进步,CDIL在15年前作出了重要决策——退出晶圆制造,转而专注于IC封装和电子制造服务。这一转型不仅使CDIL能够更好地适应市场需求,也为其带来了更广阔的发展空间。如今,CDIL的IC封装技术已达到国际先进水平,为全球众多知名电子企业提供优质服务。
1997年,ELESTA继电器有限公司正式成立,专注于制造符合IEC 61810-3标准的强制导向触点继电器。这一战略举措进一步巩固了ELESTA在电子继电器领域的领先地位,并为公司的长期发展奠定了坚实的基础。
搞不定了,不得不发帖求助了!——OV2640 200W 摄像头驱动问题 平台 2440 wince6.0 其实这个驱动是4.2BSP下的,我直接搬上来用了。 是比较简单的那种,是单层的。 初始化代码太多了,我就不发了,我发个图片上来让大家提供点思路。 问题一、摄像头中断产生正常,踩到的图像是一片绿色,在摄像头前面放置任何 ...… 查看全部问答∨ |
|
绝对式编码器的相位对齐对于单圈和多圈而言,差别不大,其实都是在一圈内对齐编码器的检测相位与电机电角度的相位。早期的绝对式编码器会以单独的引脚给出单圈相位的最高位的电平,利用此电平的0和1的翻转,也可以实现编码器和电机的相位对齐,方法 ...… 查看全部问答∨ |
|
我公司是国际领先的光电检测设备研发生产厂商,员工500余人,坐落于美丽的浙江杭州,也是一家拟上市公司。 现急招电子工程师10名,年薪7-25W,要求精通模拟电路,有较强的承压能力与学习能力。   ...… 查看全部问答∨ |
|
CCS5.1 Grace中配置完成后怎么生成头文件?是Refresh后自动生成吗?为什么我编译的时候总是提醒#5 could not open source file \"ti/mcu/msp430/csl/CSL.h\" ? … 查看全部问答∨ |