(三) pwm-逐飞TC264库学习(对比STM32 HAL库)

逐飞例程前置设定(其实没这一坨也行)

#define CHANNEL_NUMBER          (4)

#define PWM_CH1                 (ATOM1_CH5_P20_9)
#define PWM_CH2                 (ATOM0_CH7_P20_8)
#define PWM_CH3                 (ATOM0_CH3_P21_5)
#define PWM_CH4                 (ATOM0_CH2_P21_4)

int16 duty = 0;
int16 duty_temp = 0;
uint8 channel_index = 0;
pwm_channel_enum channel_list[CHANNEL_NUMBER] = {PWM_CH1, PWM_CH2, PWM_CH3, PWM_CH4};

/******可能比较像32中cube的配置过程叭,这些命名渠道、引脚的事都是cube帮咱干好了

(温婉持家好cube()

******/

 pwm_init(PWM_CH1, 17000, 0);                        // 初始化 PWM 通道 频率 17KHz 初始占空比 0%

原型:void pwm_init (pwm_channel_enum pwmch, uint32 freq, uint32 duty)

//-------------------------------------------------------------------------------------------------------------------
// 函数简介     PWM 初始化
// 参数说明     pin             选择 PWM 引脚
// 参数说明     freq            设置频率 同个模块只有最后一次设置生效
// 参数说明     duty            设置占空比
// 返回参数     void
// 使用示例     pwm_init(ATOM0_CH7_P02_7, 50, 1000);   // ATOM 0模块的通道7 使用P02_7引脚输出PWM  PWM频率50HZ  占空比百分之1000/PWM_DUTY_MAX*100
// 备注信息     PWM_DUTY_MAX宏定义在zf_driver_pwm.h  默认为10000
//-------------------------------------------------------------------------------------------------------------------
/*****这玩意功能搞得比较整合,相当于32中

        HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_1);

       +修改频率( TIM2->ARR = xxx + TIM2->PSC = xxx )

       +修改占空比( __HAL_TIM_SetCompare(&htim5,TIM_CHANNEL_1,CCR);

                                或者直接上 TIM2->CCR2=TIM2->ARR*0.8;   )

*****************/

pwm_set_duty(channel_list[channel_index], duty_temp);

原型:void pwm_set_duty (pwm_channel_enum pwmch, uint32 duty)

//-------------------------------------------------------------------------------------------------------------------
// 函数简介     PWM占空比设置
// 参数说明     pin             选择 PWM 引脚
// 参数说明     duty            设置占空比
// 返回参数     void
// 使用示例     pwm_set_duty(ATOM0_CH7_P02_7, 5000); // 设置占空比为百分之5000/PWM_DUTY_MAX*100
// 备注信息     GTM_ATOM0_PWM_DUTY_MAX宏定义在zf_driver_pwm.h  默认为10000
//-------------------------------------------------------------------------------------------------------------------

/******这个就相当于32中纯更改CCRx的过程了,同上“修改占空比”过程**********/

翻看"zf_driver_pwm.h",发现逐飞声明给用户使用的还有一个函数

void pwm_all_channel_close      (void);

//-------------------------------------------------------------------------------------------------------------------
//  函数简介      关闭所有通道的PWM输出
//  返回参数      void
//  使用示例      pwm_all_channel_close();
//  备注信息
//-------------------------------------------------------------------------------------------------------------------

/**********盲猜32里其实也有类似的函数,不过因为其实只要把所有打开的pwm渠道的占空比调为0就可以实现相同的效果,所以几乎用不上,师兄也压根没有讲(笑),所以不知也罢************/

  • 29
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值