为什么这个程序仿真输出的PWM波最多只有400Hz

野火STM32 那个教程里 pwm的程序 PA.06端改成PA.02端输出为什么没有输出波??_百度知道
野火STM32 那个教程里 pwm的程序 PA.06端改成PA.02端输出为什么没有输出波??
TIM_ClockDivision = TIM_CKD_DIV1 .TIM_Period =17279; u16 CCR1_Val = 576;
TIM_OCInitStructure.TIM_Prescaler = 0;}static void TIM2_Mode_Config(void){ TIM_TimeBaseInitTypeDef
TIM_TimeBaseS
TIM_TimeBaseStructure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2.GPIO_Pin =
GPIO_Pin_2, ENABLE).TIM_OCMode = TIM_OCMode_PWM1.TIM_CounterMode = TIM_CounterMode_Up, ENABLE);
TIM_OC3PreloadConfig(TIM2, &TIM_OCInitStructure);
TIM_OCInitStructure, &GPIO_InitStructure).GPIO_Mode = GPIO_Mode_AF_PP;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA;
GPIO_InitS TIM2_Mode_Config(), ENABLE)static void TIM2_GPIO_Config(void) {
GPIO_InitTypeDef GPIO_InitS
GPIO_InitStructure, ENABLE); TIM_OCInitTypeDef
TIM_OCInitS
TIM_OCInitStructure.TIM_Pulse = CCR1_Val.TIM_OCPolarity = TIM_OCPolarity_H
TIM_TimeBaseS
TIM_TimeBaseS
TIM_Cmd(TIM2, TIM_OCPreload_Enable);
TIM_TimeBaseS
GPIO_Init(GPIOA, &TIM_TimeBaseStructure); 复用推挽输出
GPIO_InitS
TIM_OCInitStructure;
TIM_ARRPreloadConfig(TIM2;
TIM_OC3Init(TIM2;
}void TIM2_PWM_Init(void){ TIM2_GPIO_Config();/
TIM_TimeBaseInit(TIM2.GPIO_Speed = GPIO_Speed_50MHz.TIM_OutputState = TIM_OutputState_Enable
用的定时器是TIM2_CH3通道
不仅仅是要设置IO功能就可以了。STM32的PWM输出都是有几个固定的端口的,是哪一个定时器的哪个通道口,我大概提几点看法,定时器的每个通道对应的端口都不一样,还要看这个IO是不是PWM输出口。所以你要换IO时我现在没空帮你看数据手册
来自:求助得到的回答
其他类似问题
为您推荐:
stm32的相关知识
其他1条回答
上面程序没看出有问题.
用PA2口的TIM2_CH3通道可以实现,我在仿真时设置错了。但PA2口的TIM5_CH3通道不能产生PWM波,是不是此通道不能产生PWM波呀???
TIM5_CH3在PA2,应该可以的
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁AT89C52单片机输出可调 PWM 波,求带仿真电路图_百度知道
AT89C52单片机输出可调 PWM 波,求带仿真电路图
求大神解答啊要求pwm波输出可调带2个按键控制输出占空比,带显示电压的
占空比可以通过改变1\0的憨尝封妒莩德凤泉脯沪时间来改变,1的时间也大占空比越高。另外最好能改变PWM的频率,显示电压的话需要ADC传感器来测量。显示的。仿真使用PROTUES仿真。
其他类似问题
为您推荐:
其他1条回答
你好!仿真可以实现,程序什么时候要
谢谢大神,程序尽快吧
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁请问为什么我的这个程序输出2个PWM波 ,P3.0和P3.1口出来的波不一样了。_百度知道
请问为什么我的这个程序输出2个PWM波 ,P3.0和P3.1口出来的波不一样了。
#include &reg52.h&sbit PWMOUT1 = P3^0;sbit PWMOUT2 = P3^1;unsigned char HighRH0 = 0;unsigned char HighRL0 = 0;unsigned char LowRH0 = 0;unsigned char LowRL0 = 0;unsigned char HighRH1 = 0;unsigned char HighRL1 = 0;unsigned char LowRH1 = 0;unsigned char LowRL1 = 0;void ConfigPWM1(unsigned int fr, unsigned char dc);void ConfigPWM2(unsigned int fr, unsigned char dc);void main(){
ConfigPWM1(640, 70);
ConfigPWM2(640, 70);
}void ConfigPWM1(unsigned int fr, unsigned char dc)
//fr为频率
dc为占空比{
unsigned int high,
tmp = ;12/ high = (tmp*dc)/100; low = tmp - high = 65536 - high + 12; low = 65536 - low + 12; HighRH0 = (unsigned char)(high &&8); HighRL0 = (unsigned char) LowRH0 = (unsigned char)(low && 8); LowRL0 = (unsigned char) TMOD &= 0xF0; TMOD |= 0x01; TH0 = HighRH0; TL0 = HighRL0; ET0 = 1; TR0 = 1; PWMOUT1 = 1; }void ConfigPWM2(unsigned int fr, unsigned char dc){
unsigned int high, tmp = ;12/ high = (tmp*dc)/100; low = tmp - high = 65536 - high + 12; low = 65536 - low + 12; HighRH1 = (unsigned char)(high &&8); HighRL1 = (unsigned char) LowRH1 = (unsigned char)(low && 8); LowRL1 = (unsigned char) TMOD &= 0xF0; TMOD |= 0x10; TH1 = HighRH1; TL1 = HighRL1; ET1 = 1; TR1 = 1; PWMOUT2 = 1; }void InterruptTimer0() interrupt 1{
if (PWMOUT1 == 1)
//当前输出为高电平时,装载低电平值并输出低电平
TH0 = LowRH0;
TL0 = LowRL0;
PWMOUT1 = 0;
//当前输出为低电平时,装载高电平值并输出高电平
TH0 = HighRH0;
TL0 = HighRL0;
PWMOUT1 = 1;
}}void InterruptTimer1() interrupt 3{ if (PWMOUT2 == 1)
//当前输出为高电平时,装载低电平值并输出低电平
TH1 = LowRH1;
TL1 = LowRL1;
PWMOUT2 = 0;
//当前输出为低电平时,装载高电平值并输出高电平
TH1 = HighRH1;
TL1 = HighRL1;
PWMOUT2 = 1;
您的回答被采纳后将获得:
系统奖励20(财富值+经验值)+难题奖励10(财富值+经验值)+提问者悬赏5(财富值+经验值)请问这个程序可以输出占空比改变的PWM波吗?我用的是430单片机,如果这个错误很多请见谅,初学者。。_百度知道
请问这个程序可以输出占空比改变的PWM波吗?我用的是430单片机,如果这个错误很多请见谅,初学者。。
/使能全局中断
for(;改变占空比
CCR1=0.h&中断程序__interrupt void Timer_A (void){
if (CCR1&/
&#47#include
/msp430x14x; PWM Period
CCTL1 = OUTMOD_7;
}}# pragma vector =TIMERA0_VECTOR
&#47.2 TA1/ CCR1 reset///)
_BIS_SR(LPM3_bits); P1; Stop WDT
P1DIR |= 0x04;SMCLK.2
P1SEL |= 0x04; CCR1 PWM duty cycle
///
/ ; Enter LPM3
_NOP();//2 otions
CCR0 =501-1;
void main(void){
WDTCTL = WDTPW + WDTHOLD;/
/&#47, up mode
// P1;set
TACTL = TASSEL_2 + MC_1+TACLR;&#47
提问者采纳
电位器两端接5V电压 然后单片机用AD采集电位器中间一端的电压 单片机利用这个电压值的变化来控制PWM波占空比的变化其中AD可以外接 也可以是单片机内部的 PWM波 单片机可以直接输出
提问者评价
其他类似问题
为您推荐:
请见谅的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁stc12 关于pwm的问题 大侠们求救啊。。。!_百度知道
stc12 关于pwm的问题 大侠们求救啊。。。!
给CH和 CL赋值么,想输出20khz的可调占空比的波。 这个频率怎么设置啊我用stc12系列的单片机的pwm功能
400hz TL0=0x94; CMOD=0X04;&#47,如果timer0用在方式1(16位)时,经过计算timer0初值为0xFF94; TMOD=0x21; CH=0。我想输出400Hz的脉冲;/ CR=1,实际输出的脉冲是330Hz左右。程序如下; AUXR=0x80; ET0=1; while(1) { }}void TINMER0() interrupt 1{ TH0=0xFF; CCAPM0=0X42;/ CCAP0H=CCAP0L=0X80,我到底错哪了;400hz TL0=0x94?void main(){ CCON=0; CL=0,按照所给的公式; EA=1;/ PCAPWM1=0X03; CCAPM1=0X42,可是我把初值装进去; TR0=1数据手册上说用PWM输出脉宽可变的方波就要用TIMER0做PCA时钟源; TH0=0x94; CCAP1H=CCAP1L=0XFF
其他类似问题
为您推荐:
stc12的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 pwm整流器matlab仿真 的文章

 

随机推荐