频率 10K,占空比可以达到1%变化的精度,100K只能是10%的变化精度。
#define PWM_CLK1M_ARR_10K 100-1
void IzADCPWMInit(uint8_t duty)//10%~90%
{
if(duty>90)
{
duty = 90;
}
if(duty<10)
{
duty = 10;
}
//reset
/* TIM4 enable counter */
TIM_Cmd(TIM4, DISABLE);
/* TIM4 Main Output Enable */
TIM_CtrlPWMOutputs(TIM4, DISABLE);
//end of reset
/* System Clocks Configuration */
RCCPWMADCConfiguration();
/* GPIO Configuration */
GPIOPWMADCConfiguration();
/* -----------------------------------------------------------------------
TIM3 Configuration: generate 4 PWM signals with 4 different duty cycles:
The TIM3CLK frequency is set to SystemCoreClock (Hz), to get TIM3 counter
clock at 24 MHz the Prescaler is computed as following:
- Prescaler = (TIM3CLK / TIM3 counter clock) - 1
SystemCoreClock is set to 72 MHz for Low-density, Medium-density, High-density
and Connectivity line devices and to 24 MHz for Low-Density Value line and
Medium-Density Value line devices
The TIM3 is running at 36 KHz: TIM3 Frequency = TIM3 counter clock/(ARR + 1)
= 24 MHz / 666 = 36 KHz
TIM3 Channel1 duty cycle = (TIM3_CCR1/ TIM3_ARR)* 100 = 50%
TIM3 Channel2 duty cycle = (TIM3_CCR2/ TIM3_ARR)* 100 = 37.5%
TIM3 Channel3 duty cycle = (TIM3_CCR3/ TIM3_ARR)* 100 = 25%
TIM3 Channel4 duty cycle = (TIM3_CCR4/ TIM3_ARR)* 100 = 12.5%
----------------------------------------------------------------------- */
/* Compute the prescaler value */
//PrescalerValue = (uint16_t) (SystemCoreClock / 24000000) - 1;//24M
//TIM3 Frequency=1MHz/(9999+1) =100Hz
PrescalerValue = (uint16_t) (SystemCoreClock / 1000000) - 1; //TIM3 counter clock: 1MHz
/* Time base configuration */
//TIM_TimeBaseStructure.TIM_Period = 665;//(ARR)
//TIM3 Frequency=1MHz/(9999+1) =100Hz
//TIM_TimeBaseStructure.TIM_Period = 10000-1; //TIM3 counter clock/TIM3 Frequency
//TIM3 Frequency=1MHz/(99+1) =10 000Hz
TIM_TimeBaseStructure.TIM_Period = PWM_CLK1M_ARR_10K;//PWM_CLK1M_ARR_100; //TIM3 counter clock/TIM3 Frequency
TIM_TimeBaseStructure.TIM_Prescaler = PrescalerValue;
TIM_TimeBaseStructure.TIM_ClockDivision = 0;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM4, &TIM_TimeBaseStructure);
/* PWM1 Mode configuration: Channel1 */
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
//CCR1_Val =TIM3_ARR*duty/100;
// TIM_OCInitStructure.TIM_Pulse = CCR1_Val;
// TIM_OCInitStructure.TIM_Pulse = (uint16_t)(10000-1)*duty/100;
TIM_OCInitStructure.TIM_Pulse = (uint16_t)(PWM_CLK1M_ARR_10K)*duty/100;
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
// TIM_OC1Init(TIM3, &TIM_OCInitStructure);
// TIM_OC1PreloadConfig(TIM3, TIM_OCPreload_Enable);
//PB6: TM4 Channel1
TIM_OC1Init(TIM4, &TIM_OCInitStructure);
TIM_OC1PreloadConfig(TIM4, TIM_OCPreload_Enable);
//PB8: TM4 Channel3
/* PWM1 Mode configuration: Channel3 */
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
TIM_OCInitStructure.TIM_Pulse = (uint16_t)(PWM_CLK1M_ARR_10K)*duty/100;
TIM_OC3Init(TIM4, &TIM_OCInitStructure);
TIM_OC3PreloadConfig(TIM4, TIM_OCPreload_Enable);
//PB7: TM4 Channel2
/* PWM1 Mode configuration: Channel2 */
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
TIM_OCInitStructure.TIM_Pulse = (uint16_t)(PWM_CLK1M_ARR_10K)*duty/100; ;
TIM_OC2Init(TIM4, &TIM_OCInitStructure);
TIM_OC2PreloadConfig(TIM4, TIM_OCPreload_Enable);
#if 0
/* PWM1 Mode configuration: Channel4 */
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
TIM_OCInitStructure.TIM_Pulse = CCR4_Val;
TIM_OC4Init(TIM3, &TIM_OCInitStructure);
TIM_OC4PreloadConfig(TIM3, TIM_OCPreload_Enable);
#endif
TIM_ARRPreloadConfig(TIM4, ENABLE);
/* TIM4 enable counter */
TIM_Cmd(TIM4, ENABLE);
/* TIM4 Main Output Enable */
TIM_CtrlPWMOutputs(TIM4, ENABLE);
}
上一篇:对STM32的CAN1模块的总结
下一篇:ARM中的RO段、RW段和ZI段的区别
推荐阅读
史海拾趣
机顶盒,全称为数字视频变换盒,是现代家庭娱乐中不可或缺的重要设备。从广义上讲,任何与电视机连接的网络终端设备均可视为机顶盒,其发展历程涵盖了从模拟频道增补器到数字卫星、地面及有线电视机顶盒的广泛范畴。而从狭义角度看,机顶盒特指那些具备数字处理能力的设备,如IPTV机顶盒、DVB-S卫星机顶盒、DVB-T地面机顶盒及DVB-C有线电视机顶盒等。
机顶盒的核心功能在于接收并转换数字电视信号,使之能在传统或智能电视上播放。它不仅能接收来自有线电缆、卫星天线及宽带网络的信号,还能提供电子节目指南、网页浏览等增值服务。通过机顶盒,用户能够享受到高清乃至4K超高清的电视节目,体验更为细腻的画面和震撼的音效。此外,机顶盒还具备网络交互能力,支持在线购物、观看网络视频、玩游戏等多元化活动,使电视机从单向接收信息的设备转变为智能互动终端。
随着技术的不断进步,机顶盒正朝着高清化、智能化方向发展。未来,机顶盒将不仅限于基本的信号接收与解码功能,还将融入更多智能推荐、语音识别等先进技术,为用户提供更加个性化、便捷的娱乐体验。总之,机顶盒作为连接电视与互联网的桥梁,正以其丰富的功能和广泛的应用场景,不断满足用户日益增长的娱乐需求。
在光通信领域,EUDYNA凭借其10Gb/s速率的光调制集成DFB激光器模块,取得了重要突破。这款模块采用了先进的封装技术和内置光学隔离器,确保了信号的稳定性和可靠性。EUDYNA的这一创新,不仅提高了光通信的传输速度和效率,也为整个行业树立了新的标杆。
随着电子行业的快速发展,德立电子意识到技术创新的重要性。公司加大研发投入,不断推出高频贴片绕线电感、立式电感、磁环电感等新产品,满足市场多样化需求。同时,德立电子还注重知识产权保护,申请多项专利,确保技术领先。
面对日益激烈的市场竞争,德立电子积极拥抱数字化转型。公司引进先进的生产管理系统和智能设备,实现生产过程的自动化和智能化。通过数字化改造,德立电子提高了生产效率,缩短了生产周期,降低了成本,进一步增强了市场竞争力。
EMMICRO公司始终将产品质量视为企业的生命线。公司建立了严格的质量管理体系,从原材料采购到生产流程,再到成品检验,每一个环节都严格把控,确保产品的品质稳定可靠。这种对品质的执着追求赢得了客户的信任和好评,也为公司赢得了更多的市场份额。
随着全球对环保问题的日益关注,HANBIT Electronics积极响应,将绿色生产纳入公司发展战略。2020年,公司投资建立了绿色生产线,采用环保材料和清洁能源进行生产,实现了生产过程中的节能减排。同时,公司还推出了多款环保型电子产品,满足消费者对绿色、低碳生活的需求。这一举措不仅提升了公司的品牌形象,也为其在可持续发展的道路上赢得了更多机遇。
全国2010年最新数据,以下数据全部是MAPINFO格式源代码矢量数据,支持二次开发,是GPS,GIS项目的专业运用矢量数据根据客户需求可以转SHP,CAD,GST等格式,主要应用于交通物流、通讯、导航定位、城市规划、空间资源、河流、林业 ...… 查看全部问答∨ |
大家都知道,GPS卫星发射无线信号,GPS接收器的RF单元接收这些无线信号。 请问各位,GPS卫星发射无线信号时候的频率是多少,就是这些无线信号在什么频率上进行传输?… 查看全部问答∨ |
针对我们目前的项目,我想问以下问题: 1.我们用的实验箱是PXA270,ARM10,在烧写内核时先格式化FLASH。 但是同先前情况相同的是,按下实验箱上的reset重启后,出现以下错误: INFO: Loading image ...… 查看全部问答∨ |
|
近日,ULMAY与合作伙伴签署了系列协议,宣布加强电子无铅焊接领域的合作。系列合约的签署均体现了双方利用先进产品和技术优势,加强战略合作,着眼于长期商业机遇的战略。这些合作将使合作企业产品达到国际环保标准,帮助企业解决制造工艺难题,并提 ...… 查看全部问答∨ |
|
JTAG 口当I/O 用后,用仿真器下载不进程序了。。 识别不了设置,No Cortex-M Device found in JTAG Chain 咋整的呀。?大家遇到过吗》?… 查看全部问答∨ |
以前在IAR 下 编译 AVR的程序是低字节在前,高字在后。 在COSMIC下 变成了,高字节在前,低字节在后。 这样通讯时,上位机的又得改。 在STVD 下可否设置 为 低字节在前,高字节在后?… 查看全部问答∨ |
本帖最后由 dontium 于 2015-1-23 13:35 编辑 采用5509A 和AIC23实现音频采集,I2C通信配置AIC23,然后通过McBSP0接受数据。并通过DMA传输到内存处理。现在的问题是DMA中断有时可以进去,有时进不去。大多时候是进不去。可以确定AIC23和McBSP0在正 ...… 查看全部问答∨ |