找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2008|回复: 0
打印 上一主题 下一主题
收起左侧

STM32F103R6单片机定时器1控制舵机演示程序与Proteus仿真图

[复制链接]
跳转到指定楼层
楼主
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)


单片机源程序如下:
如图,定时器1的四个通道输出PWM脉冲驱动四个舵机到不同角度,一号舵机由于输入的PWM的宽度在主函数中循环调整,可以来回转动。主函数如下:
int main(void)
{
  /* USER CODE BEGIN 1 */
    uint8_t i = 0;
  /* USER CODE END 1 */

  /* MCU Configuration--------------------------------------------------------*/

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* USER CODE BEGIN Init */

  /* USER CODE END Init */

  /* Configure the system clock */
  SystemClock_Config();

  /* USER CODE BEGIN SysInit */

  /* USER CODE END SysInit */

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_TIM2_Init();
  MX_TIM1_Init();
  /* USER CODE BEGIN 2 */
    HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1);
    HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_2);
    HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_3);
    HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_4);
    HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_1);
    HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_2);
    HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_3);
    HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_4);
  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
    while (1)
    {
    /* USER CODE END WHILE */
while (1)
        {
            HAL_Delay(10);
            if(i < 200)
            {
                __HAL_TIM_SET_COMPARE(&htim1, TIM_CHANNEL_1, 50+i);
                i++;
            }
            else
                break;

        }

        while (1)
        {
            HAL_Delay(10);
            if(i > 0)
            {
                __HAL_TIM_SET_COMPARE(&htim1, TIM_CHANNEL_1, 50+i);
                i--;
            }
            else
                break;
                                        }
    /* USER CODE BEGIN 3 */
    }

  /* USER CODE END 3 */
}
在proteus中对舵机的属性进行了修改:重新设定最小PWM宽度为0.5ms与2.5ms。

需要说明的是先前想使用定时器2,但是不知什么原因,PA0(定时器2的默认通道1一直没输出),其余三个通道正常,CubeEMX的各通道配置方法也没看出问题。三个软件的设计与proteus仿真文件全部奉上
望大神明示: 仿真和代码.7z (312.84 KB, 下载次数: 49)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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