关于STM8S 的TIM1 PWM输出不了的问题
1、我参考了 STM8S_StdPeriph_Lib\Project\STM8S_StdPeriph_Examples\TIM1\TIM1_7PWM_Output的例程2、照着库函数提供的去写,并没有PWM输出
3、我写的程序如下:
#include "stm8s.h"
void GPIO_Configuration(void)
{
GPIO_DeInit(GPIOC);
GPIO_Init(GPIOC, GPIO_PIN_6, GPIO_MODE_OUT_PP_LOW_SLOW); //PC6低速推完输出 低电平
GPIO_Init(GPIOC, GPIO_PIN_7, GPIO_MODE_OUT_PP_LOW_SLOW); //PC7低速推完输出 低电平
//GPIO_WriteHigh(GPIOC, GPIO_PIN_7);
}
//PC6 TIM1_CH1
//PC7 TIM_CH2
void TIM1_Configuraiton(void)
{
TIM1_DeInit();
TIM1_TimeBaseInit(1-1, TIM1_COUNTERMODE_UP, 8000-1, 0x00); //2kHz(8000*1)/16000000
TIM1_OC1Init(TIM1_OCMODE_PWM2, TIM1_OUTPUTSTATE_ENABLE, TIM1_OUTPUTNSTATE_DISABLE,
2000, TIM1_OCPOLARITY_LOW, TIM1_OCNPOLARITY_HIGH, TIM1_OCIDLESTATE_SET,
TIM1_OCNIDLESTATE_RESET);
TIM1_OC2Init(TIM1_OCMODE_PWM2, TIM1_OUTPUTSTATE_ENABLE, TIM1_OUTPUTNSTATE_DISABLE, 2000,
TIM1_OCPOLARITY_LOW, TIM1_OCNPOLARITY_HIGH, TIM1_OCIDLESTATE_SET,
TIM1_OCNIDLESTATE_RESET);
TIM1_Cmd(ENABLE);
TIM1_CtrlPWMOutputs(ENABLE);
}
int main(void)
{
CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);//内部时钟16M
GPIO_Configuration();
TIM1_Configuraiton();
__enable_interrupt(); //打开中断
while (1)
{
}
}
#ifdef USE_FULL_ASSERT
void assert_failed(u8* file, u32 line)
{
while (1)
{
}
}
#endif
已经自行解决了:victory: 说说怎么解决的啊,分享下经验啊 对呀,给大家分享下解决的方法 你好我好大家好! 发表于 2015-7-25 15:22
说说怎么解决的啊,分享下经验啊
I/O的配置问题 苏柚 发表于 2015-7-27 08:43
对呀,给大家分享下解决的方法
I/O的配置问题 liangaaaaaaaaa 发表于 2015-7-27 14:32
I/O的配置问题
目前也正在配置这块,可以贴出I/O配置源码吗 你好我好大家好! 发表于 2015-7-27 16:44
目前也正在配置这块,可以贴出I/O配置源码吗
需要把TIM1的CH1、CH2重映射一下,不重新映射CH1、CH2是用不了的,https://www.stmcu.org.cn/module/forum/thread-600460-1-1.html I/O的配置问题 Thanks.
页:
[1]