富芮坤FR800X系列之PWM输出程序应用设计


前言

版权归作者所有、未经允许、请勿转载。

读者对象:
本文档主要适用以下工程师:
嵌入式系统工程师
单片机软件工程师
IOT固件工程师
BLE固件工程师

相关文章
富芮坤FR800X系列之按键检测模块设计

1.设计背景

例子:用嵌入式FR800X蓝牙MCU中,设计一个PWM控制直流电机转速的应用程序。

2.简介

在实现项目开发中,许多应用场合会用户PWM控制输出。如PWM控制LED指示灯,呼吸灯,直流电机驱动等。

3.如何设计控制调光的接口呢

基于FR800X系列SDK中,如何设计控制调光的接口呢?抽象设计思考:一般设计两个函数,一个是PWM初始化LED_pwm_init(),另外一个是调节PWM等级的函数接口LED_pwm_level(),设计程序时,先将两个函数接口代码写好;接着还需要考虑,参数定义GPIO管脚作为PWM输出口、PWM时钟使能、PWM频率等。设计PWM为1KHz、输出端扣为PD1。

4.硬件设计

芯片工作在3.3V稳压电源,直流电机工作电源为5V,用低电压驱动高电压,电路关键器件:一个MOS管,D2为保护电路、R7限流电阻,R6下拉稳定三级管默认为关闭状态,P3为接电机端口,PWM控制电机电路图如下所示:
在这里插入图片描述

图4-1

5.软件设计

5.1.软件流程图

PWM初始化流程图如下:
在这里插入图片描述
图5-1

5.2.软件代码

用户程序设计需要结合SDK相关函数,文件为Driver_pwm.c和Driver_pwm.h。添加到该工程里面,相关代码如下:

///Duty: /* 0% ~ 100% */
void LED_pwm_level(uint8_t Duty)
{
    struct_PWM_DAC_Config_t DAC_Config={0};

	co_printf("SET_level:%d\r\n",Duty);
    if(Duty<=100)
    {
        DAC_Config.PulseDIV = 11;
        DAC_Config.Duty     = Duty;
        pwm_dac_config(PWM_CHANNEL_1, DAC_Config);

        pwm_output_enable(PWM_CHANNEL_1);
    }
}

void LED_pwm_init(void)
{
    // PWM gpio INIT
    GPIO_InitTypeDef GPIO_Handle={0};

    GPIO_Handle.Pin       = GPIO_PIN_1;
    GPIO_Handle.Mode      = GPIO_MODE_AF_PP;
    GPIO_Handle.Pull      = GPIO_PULLUP;
    GPIO_Handle.Alternate = GPIO_FUNCTION_6;
    gpio_init(GPIO_D, &GPIO_Handle);

    // en pwm clk enable
    __SYSTEM_PWM_CLK_ENABLE();

    struct_PWM_DAC_Config_t DAC_Config={0};

    DAC_Config.PulseDIV = 11;
    DAC_Config.Duty     = 0;
    pwm_dac_config(PWM_CHANNEL_1, DAC_Config);

    pwm_output_enable(PWM_CHANNEL_1);

    LED_pwm_level(0);
}

6.小结

PWM控制电机电路设计非常简单、实用、低成本。程序设计接口是根据用户需要实用型接口,在PWM控制调节设计一个范围如0-100、或0-1000等。应用时将参数传进去即可。

### 芮坤 FR800X 系列工程技术文档与开发指南 #### 1. 概述 芮坤 FR800X 系列是一款高性能嵌入式处理器,广泛应用于工业控制、智能家居等领域。为了帮助开发者更好地理解和使用这款产品,官方提供了详细的工程技术文档和支持资源。 #### 2. 技术规格与特性 FR800X 系列具备多种先进的硬件特性和接口支持,包括但不限于高速处理能力、丰的外设接口以及低功耗设计[^1]。这些特点使其成为众多应用场景的理想选择。 #### 3. 开发环境搭建 对于初次接触 FR800X 的开发者来说,建立合适的开发环境至关重要。通常情况下,建议按照以下步骤操作: - 安装必要的工具链和 IDE; - 下载并配置 SDK (Software Development Kit),以便能够编译运行示例程序; - 连接目标板至主机电脑,并确保调试器正常工作; ```bash # 示例命令用于安装依赖项 sudo apt-get install build-essential git cmake ``` #### 4. 编程指导 编写应用程序时需遵循一定的编程规范和技术标准。具体而言,在实现特定功能模块之前应先熟悉相关 API 接口说明及其用法实例。此外,还应注意代码结构的设计原则以提高可读性和维护性。 #### 5. 调试技巧 当遇到问题无法顺利解决时,有效的调试方法可以帮助快速定位错误所在位置。利用集成开发环境中自带的断点设置、变量监视等功能往往能起到事半功倍的效果。 #### 6. 应用案例分析 通过学习实际项目中的成功经验可以加深对产品的理解程度。例如,某些公开的应用案例展示了如何基于 FR800X 构建复杂的控制系统或物联网节点设备。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小武编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值