OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3163|回复: 2

STM8S003F输出PWM波

[复制链接]

7

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2016-11-18
在线时间
16 小时
发表于 2016-11-23 11:01:16 | 显示全部楼层 |阅读模式
2金钱
用示波器检测没有PWM波输出
PWM波输出程序如下:

PC_DDR=0X30;  //PC4(TIM1_CH4),PC5(TIM2_CH1)为PWM波的输出,设置为推挽输出模式,其他没用到的I/O口上拉输入
PC_CR1=0XFF;
PC_ODR = 0X00;

CLK_PCKENR1=0xA0;           //使能外部时钟TIM1,TIM2;
  TIM2_PSCR=0x03;           //计数器的时钟频率为1MHz  8/2^3=1
  TIM2_CCMR1 |= 0x70;  // PWM 模式 2  通道1输出
  TIM2_CCER1 |= 0x03;         // CC1配置为输出
  TIM2_ARRH = (u8)(PWM_Hz>>8);           // 配置PWM分辨率为10位,PWM_Hz=500
  TIM2_ARRL = (u8)(PWM_Hz);           // PWM频率=1M/500=2KHz   0x01f4 频率为2K
  TIM2_CCR1H = (u8)(P_CCR1>>8);
  TIM2_CCR1L = (u8)(P_CCR1);   //高8位直接舍去
  TIM2_CR1 |= 0x01;      

TIM1_PSCRH=0X00;
TIM1_PSCRL=0x07;            //计数器的时钟频率为1MHz   8/(7+1)=1
TIM1_CCMR4 |= 0x70;
TIM1_CCER2 |=0x30;
TIM1_ARRH = (u8)(PWM_Hz>>8);
TIM1_ARRL = (u8)(PWM_Hz);
TIM1_CCR4H =(u8)(P_CCR2>>8);
TIM1_CCR4L =(u8)(P_CCR2);
TIM1_CR1 |= 0x01;

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2016-4-28
在线时间
4 小时
发表于 2016-11-23 11:27:18 | 显示全部楼层
要配置复用功能的,不然肯定没有波形出来。
回复

使用道具 举报

7

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2016-11-18
在线时间
16 小时
 楼主| 发表于 2016-11-23 12:02:26 | 显示全部楼层
1399866558 发表于 2016-11-23 11:27
要配置复用功能的,不然肯定没有波形出来。

PWM为输出时,这里没有映射到其他引脚,TIM_CCRM里直接配置相应的输出(TIM1_CCRM4的位1:0为0,就是通道4输出)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-23 04:49

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表