【STM32笔记】定时器(TIM1)无法工作

目录

项目场景:

问题描述

原因分析:

解决方案:


项目场景:

编译环境:keil uverison5

初次学习stm32(stm32f103xx)控制舵机(mg90s)时,舵机不转动(代码逻辑没有问题)。

注:博客是记录我解决问题以及思考过程的,所以不会直接给出答案。


问题描述

这是我的舵机

这是我的代码,执行这个代码舵机不会动(可以确定代码是没有问题的):

void dj_init(){

	GPIO_InitTypeDef GPIO_Initstructure;
	RCC_APB2PeriphClockCmd (RCC_APB2Periph_GPIOA,ENABLE);
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE);
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
	GPIO_PinRemapConfig (GPIO_Remap_SWJ_JTAGDisable,ENABLE);
	
	GPIO_Initstructure.GPIO_Pin = GPIO_Pin_11;
	GPIO_Initstructure.GPIO_Mode = GPIO_Mode_AF_PP;
	GPIO_Initstructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init (GPIOA,&GPIO_Initstructure);
	
	// APB2 TIM1_CH4
	
	// 2. 选择外部时钟源
	TIM_InternalClockConfig(TIM1);
	
	// 3.定时器参数配置
	TIM_TimeBaseInitTypeDef timeBaseInitTypeDef;
	timeBaseInitTypeDef.TIM_ClockDivision = TIM_CKD_DIV1;
	timeBaseInitTypeDef.TIM_Period = 10000 - 1;
	timeBaseInitTypeDef.TIM_Prescaler = 144 - 1;
	timeBaseInitTypeDef.TIM_CounterMode = TIM_CounterMode_Up;
	timeBaseInitTypeDef.TIM_RepetitionCounter = 0;  // 高级tim(1,8)才有

	
	// 4.定时器初始化
	TIM_TimeBaseInit (TIM1,&timeBaseInitTypeDef) ;

	// 5. tim 通道
	TIM_OCInitTypeDef TIM_ocInitstructure;
	TIM_ocInitstructure.TIM_OCMode = TIM_OCMode_PWM1;
	TIM_ocInitstructure.TIM_OCPolarity = TIM_OCPolarity_High;
	TIM_ocInitstructure.TIM_OutputState = TIM_OutputState_Enable;
	TIM_ocInitstructure.TIM_Pulse = 5000;
	
	// 6. tim 通道初始化
	TIM_OC4Init(TIM1, &TIM_ocInitstructure);
	TIM_OC4PreloadConfig(TIM1, TIM_OCPreload_Enable);
	
	// 7.开启定时器
	TIM_Cmd(TIM1, ENABLE);
}


原因分析:

PA11是否对应TIM1?

在查阅资料之后确定PA11对应TIM1的第四通道。

舵机是否损坏?

在更换舵机之后仍然不运动。

代码哪里有问题?

代码量不多,PWM控制也没有问题,psc等频率计算也没有问题(apb1总线频率为36mhz) 


解决方案:

对于高级定时器(TIM1、TIM8),需要额外加入一句话来使能PWM功能。

TIM_CtrlPWMOutputs(TIM1, ENABLE);

加入这句话之后舵机成功转动!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/910442.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Spark 程序开发与提交:本地与集群模式全解析

Spark 的介绍与搭建:从理论到实践-CSDN博客 Spark 的Standalone集群环境安装与测试-CSDN博客 PySpark 本地开发环境搭建与实践-CSDN博客 目录 一、本地开发与远程提交测试 (一)问题背景 (二)解决方案 集群环境准…

利用亚马逊AWS IoT核心和MQTT进行数据采集的综合指南

论文标题:A Comprehensive Guide on Data Acquisition Utilizing Amazon AWS IOT Core and MQTT 中文标题:利用亚马逊AWS IoT核心和MQTT进行数据采集的综合指南 作者信息: Tanishq. I. KohliPradip R. Selokar 两位作者均来自印度那格浦尔…

鸿萌数据迁移服务: 企业服务器整机在线热迁移, 实现不停机业务转移

天津鸿萌科贸发展有限公司从事数据安全服务二十余年,致力于为各领域客户提供专业的数据存储、数据恢复、数据备份、数据迁移等解决方案与服务,并针对企业面临的数据安全风险,提供专业的相关数据安全培训。 鸿萌数据迁移业务为众多企业顺利高效…

软件工程笔记一

目录 软件的概念、特性和分类 软件与程序 软件的特性 软件的分类 软件危机与软件工程 软件危机 如何摆脱软件危机? 软件工程概念的提出 什么是软件工程? 软件工程的若干定义 系统工程的目标 软件工程的基本原理 软件工程的目标 软件的质量特性 软件生存…

使用VS Code 安装VUE.js开发环境的搭建并创建第一个项目

初步掌握VUE.js开发环境的搭建并创建第一个项目的操作方法和实验步骤 题目 安装Visual Studio Code。安装VS Code汉化插件。安装Vue官方支持插件。使用VS Code运行第一个HTML页面。安装Node.js并验证其版本。验证npm版本。配置npm的下载镜像源。配置Yarn的下载镜像源。使用Vi…

Java | Leetcode Java题解之第541题反转字符串II

题目&#xff1a; 题解&#xff1a; class Solution {public String reverseStr(String s, int k) {int n s.length();char[] arr s.toCharArray();for (int i 0; i < n; i 2 * k) {reverse(arr, i, Math.min(i k, n) - 1);}return new String(arr);}public void reve…

【物联网技术】ESP8266 WIFI模块STA、AP、STA+AP、TCP/UDP透传工作模式介绍与AT指令介绍

前言:本文对ESP8266 WIFI模块STA、AP、STA+AP、TCP/UDP透传工作模式进行介绍;以及AT指令介绍,包括基础AT指令,WIFI功能AT指令、TCP/IP相关AT指令、常用AT指令实例进行介绍。 ESP8266 WIFI模块的接线及固件烧写可参考我的这篇博客:正点原子ATK-ESP8266 WIFI模块接线及固件…

【大数据学习 | kafka】kafka的数据存储结构

以上是kafka的数据的存储方式。 这些数据可以在服务器集群上对应的文件夹中查看到。 [hexuanhadoop106 __consumer_offsets-0]$ ll 总用量 8 -rw-rw-r--. 1 hexuan hexuan 10485760 10月 28 22:21 00000000000000000000.index -rw-rw-r--. 1 hexuan hexuan 0 10月 28 …

软件测试面试题——移动端

一、常用的adb命令有哪些&#xff1f; 命令含义adb devices展示当前电脑连接的设备&#xff0c;如果电脑上有多个手机&#xff0c;需要adb -s指定对应设备adb install xxx.apk直接安装xxx.apk到手机中&#xff0c;注意&#xff1a;必须打开手机设置里的USB安装adb install -r …

软考教材重点内容 信息安全工程师 第1章 网络信息安全概述

第 1 章 网络信息安全概述 1.1.1 网络信息安全相关概念 狭义上的网络信息安全特指网络信息系统的各组成要素符合安全属性的要求&#xff0c;即机密性、完整性、可用性、抗抵赖性、可控性。 广义上的网络信息安全是涉及国家安全、城市安全、经济安全、社会安全、生产安全、人身安…

Perforce《2024游戏技术现状报告》Part2:游戏引擎、版本控制、IDE及项目管理等多种开发工具的应用分析

游戏开发者一直处于创新前沿。他们的实践、工具和技术受到各行各业的广泛关注&#xff0c;正在改变着组织进行数字创作的方式。 近期&#xff0c;Perforce发布了《2024游戏技术现状报告》&#xff0c;通过收集来自游戏、媒体与娱乐、汽车和制造业等高增长行业的从业者、管理人…

网站架构知识之密钥认证(day020)

1.密钥认证 两个节点&#xff0c;通过密钥形式进行访问&#xff0c;不要输入密码&#xff0c;单向。 应用场景&#xff1a;部分服务使用前要求我们做密钥认证。 1.使用rsa算法创建公钥私钥 ssh-keygen -t rsa /root/.ssh/id_rsa&#xff0c; 私钥地址 /root/.ssh/…

《重学Java设计模式》之 工厂方法模式

《重学Java设计模式》之 建造者模式 《重学Java设计模式》之 原型模式 《重学Java设计模式》之 单例模式 模拟发奖多种商品 工程结构 奖品发放接口 package com.yys.mes.design.factory.store;public interface ICommodity {/*** Author Sherry* Date 14:20 2024/11/6**/voi…

微信小程序的汽车维修预约管理系统

文章目录 项目介绍具体实现截图技术介绍mvc设计模式小程序框架以及目录结构介绍错误处理和异常处理java类核心代码部分展示详细视频演示源码获取 项目介绍 系统功能简述 前台用于实现用户在页面上的各种操作&#xff0c;同时在个人中心显示各种操作所产生的记录&#xff1a;后…

Oh My Posh安装

nullSet up your terminalhttps://ohmyposh.dev/docs/installation/windows Git ee oh-my-posh: Windows上的oh-my-zsh&#xff0c;源地址 https://github.com/JanDeDobbeleer/oh-my-posh.git (gitee.com)https://gitee.com/efluent/oh-my-posh

unity 镜面 反射

URP 镜面 资源绑定 下载 namespace UnityEngine.Rendering.Universal { [ExecuteInEditMode]public class PlanarURP : MonoBehaviour{public bool VR false;public int ReflectionTexResolution 512;public float Offset 0.0f;[Range(0, 1)]public float Reflecti…

深度学习(十):伦理与社会影响的深度剖析(10/10)

深度学习&#xff1a;伦理与社会影响的深度剖析 一、深度学习的伦理挑战 &#xff08;一&#xff09;数据隐私之忧 深度学习模型的训练往往需要大量数据&#xff0c;而数据的收集过程可能会侵犯个人隐私。例如&#xff0c;据统计&#xff0c;面部识别技术在全球范围内每天会收…

网络安全从入门到精通(特别篇I):应急响应之APT事件处置流程

应急响应 应急响应之APT处置流程1.现场询问1.1 了解威胁事件表现1.2 了解威胁事件发现时间1.3 了解系统架构,如服务器类型、业务架构、网络拓扑等2 判断安全事件状态3 确认事件对象4 确定事件时间5 问题排查应急响应之APT处置流程 1.现场询问 1.1 了解威胁事件表现 1.C&…

美格智能5G车规级通信模组: 5G+C-V2X连接汽车通信未来十年

自2019年5G牌照发放开始&#xff0c;经过五年发展&#xff0c;我国5G在基础设施建设、用户规模、创新应用等方面均取得了显著成绩&#xff0c;5G网络建设也即将从基础的大范围覆盖向各产业融合的全场景应用转变。工业和信息化部数据显示&#xff0c;5G行业应用已融入76个国民经…

鸿蒙next打包流程

鸿蒙打包 下载团结引擎添加开源鸿蒙打包支持 团结引擎版本要和sdk版本相对应,图中最新版1.3.1团结引擎,需要sdk12,直接在模块里自动下载即可。 打包报错 在unity社区搜索到,是burst的问题,在package manager里将burst升级到1.8.18就打包成功了,不知道为啥。 团结引擎打包…