搭建Stm32遇到的问题汇总

news2024/11/20 7:25:13

问题一:右侧watch窗口无法显示数据动态变化

现象:在main循环中加入累加的数值都不变化

 现象2:单步执行卡在如下函数

原因:一般是因为没有用微库进入半主机模式

解决措施:

措施一:打开勾选下面的。

措施二:上面没办法解决就检查板子供电,不能只是仿真器供电,可能是这个供电功率不足。

措施三:有可能是cubeMx的版本有bug,然后重新安装一个版本的CubeMx。

问题二:CubeMx生成代码卡死

解决措施:打开工程源文件夹,要删除其他所有文件仅保持如下圈圈里文件。

问题三:PWM周期计算不准

为什么时钟频率为18M,经过18倍分频,设置触发值为20000时,周期不是20ms,而是21ms?

此时我的定时器时钟为18M,分频系数为18,counter period为20000,经过18分频后,定时器时钟为1M,电平反转周期等于 20000/1000000 = 1/50 = 0.02s,约为20ms,单个电平持续时间为20ms,两个电平则为40ms左右,因此基本符合,但是为什么不是精确的20ms呢?

而将分频数PSC改为17,counter period的值改为19999后就是正好的20ms,这是为什么呢?

原因是:

1).TIM Period:定时周期,实质是存储到重载寄存器TIMx ARR 的数值,脉冲计数器从0累加到这个值上溢或从这个值自减至0下溢。这个数值加1然后乘以时钟源周期就是实际定时周期。本实验中向该成员赋值为 999,即定时周期为 (999+1) * T为时钟源周期

2).TIM Prescaler:对定时器时钟 TIMxCLK 的预分频值,分频后作为脉冲计数器 TIMxCNT 的驱动时钟,得到脉冲计数器的时钟频率计算方式是 :

fcnt = ftim_clk/ (N+1)

本实验给分频为18分频,即N=18-1 = 17,这个N就是填入到寄存器PSC中的值。已知AHB 时钟频率为18 MHz、TIMxCLK 为1 8MHz,所以输出到脉冲计数器TIMx CNT 的时钟频率为

f_CNT=18 MHz/(17+1)=1 MHz。

最终得到的分频后时钟频率为1MHz

总而言之。STM32存在1分频,分频数 = PSC寄存器值+1,填入寄存器的值是分频数减一。脉冲计数器又是从0开始累加而不是从1开始累加,所以计数20000次的寄存器值为19999。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【HTTP】

目录 🎨1. HTTP 请求 🏰1.1 首行 👑1.2 URL 🚩1.3 Content-Type 和 Content-Length 🍊1.4 User-Agent 🌽1.5 Referer ⚽1.6 Cookie 🍩2. HTTP 响应 🌞2.1 HTTP 响应 首行…

软件工程学习1:软件项目项目管理

假设你被指派作为一个软件公司的项目负责人,任务是开发一个管理系统,人员规模大约为8人,人员角色应如何确定?应如何进行项目管理?(从软件项目管理估算、软件规模、工作量估算、进度计划安排、软件过程模型等…

入行4年,跳槽2次,我好像摸透了软件测试这一行!

很多测试人在行业中摸爬滚打了很多年,时不时给身边新入职的伙伴们一些好的建议,对一部分刚入职起步的测试小白来说,这些建议都是让你少走弯路的捷径,废话不多说,让我们来了解一下,一位入行4年跳槽2次的老测…

JSONException: illegal identifier : \pos 1 异常报错问题

JSONException: illegal identifier : \pos 1 异常报错问题 1.常见情况:1.1 JSON 字符串格式不正确1.2 JSON 字符串中包含了非法字符1.3 解析 JSON 字符串的方式不正确 2.解决办法:2.1 工具类2.2 StringEscapeUtils.unescapeJava3. JSONObject.parseObje…

黑客入门教程从零基础入门到精通,看完这一篇就够了

学前感言: 1.这是一条坚持的道路,三分钟的热情可以放弃往下看了. 2.多练多想,不要离开了教程什么都不会了.最好看完教程自己独立完成技术方面的开发. 3.有时多google,baidu,我们往往都遇不到好心的大神,谁会无聊天天给你做解答. 4.遇到实在搞不懂的,可以先放放,以后再来解决…

Revit建模|怎么创建轴网标高?

大家好,这里是建模助手,今天给大家讲一讲怎么创建轴网标高。 标高用来定义楼层层高以及生成平面视图,轴网用于为构件定位,在Revit中轴网确定了一个不可见的工作平面,轴网编号以及标高符号样式均可定制修改。目前&…

每日练题---C语言

目录 前言: 一.求最小公倍数 1.1公式法 1.2遍历法 1.3乘除法 二.倒置字符串 前言: 今日份题目有:求两个整数的最小公倍数,求倒置字符串,。 一.求最小公倍数 牛客网链接:OJ链接 百度词条:…

Python自动化测试框架怎么搭建?完整框架源码给到你

目录 前言 搭建过程: 一阶段, 二阶段, 三阶段, 四阶段 下面具体的说一下搭建过程 一阶段: 二阶段: 三阶段: 四阶段 前言 背景:公司需要每一个项目组都搭建自己的一套自动…

Vue企业级项目开发思路,附带源码

项目的技术栈展示 以及项目的核心重点部分 项目搭建使用element实现首页布局 顶部导航菜单及与左侧导航联动的面包屑实现 封装一个ECharts组件 封装一个Form表单组件和Table表格组件 企业开发之权限管理思路讲解 项目搭建使用element实现首页布局 顶部导航菜单及与左侧导…

技术分享 | OB 慢查询排查思路

本文汇总了项目实践中前辈的经验和笔者的理解,旨在帮助初学 OceanBase(以下简称 OB)的工程师,快速解决 SQL 执行缓慢等性能问题。当遇到性能问题时,很多工程师可能会感到无从下手,本文将根据关键日志提供多…

14_Uboot图形化配置

目录 U-Boot图形化配置体验 make menuconfig过程分析 Kconfig语法简介 Mainmenu menu/endmenu条目 config条目 depends on和select choice/endchoice Menuconfig Comment Source 添加自定义菜单 U-Boot图形化配置体验 uboot或Linux内核可以通过输入"make menu…

计算机组成原理-存储系统-外部存储虚拟存储器

目录 一、外部存储 1.1磁盘组成 1.2性能指标 1.3磁盘地址 1.4硬盘的工作原理 1.5磁盘阵列 二、 固态硬盘SSD 三、虚拟存储器(存储系统详细知识点) 3.1 页式存储器 逻辑地址-》主存(物理)地址 加入块表(TLB)的转换过程 3.2 段式存储器 3.3 段页式存储器 一、外部存储 又称…

一个非系统工程师所关心的——Android开机流程

一、Loader层 1. Boot ROM: 上电后,BootRom会被激活,引导芯片代码开始从预定义的地方(固化在ROM)开始执行,然后加载引导程序到RAM。 2. Boot Loader引导程序 Android是基于Linux系统的,它没有BIO…

路由器端口映射-原理+图解

文章目录 1. 前言2. 内部服务器3. 内网IP3.1 含义3.2 查询内网IP方法3.3 直观法判断内网IP 4. 内部端口5. 外部端口6. 远程桌面连接7. 端口映射原理图8. 欢迎纠正~ 1. 前言 端口映射就是可将N台主机的内网IP地址映射成一个公网IP地址,从而让外网可以访问到局域网内…

Linux 学习笔记(九):基于 TSS 的进程切换

一、TSS 基本概念 1、什么是 TSS ? TSS(Task State Segment)即任务状态段。具体的说,在设计 “Intel 架构”(即 x86 系统结构)时,每个任务(进程or线程)都对应有一个独立…

Java经典笔试题—day13

Java经典笔试题—day13 🔎选择题🔎编程题🍭参数解析🍭跳石板 🔎结尾 🔎选择题 (1)一个关系数据库文件中的各条记录 () A. 前后顺序不能任意颠倒,一定要按照输入的顺序排…

测试4-数据库设计

测试4-数据库设计 目录 测试4-数据库设计选择题简答题1. 画E-R图并将其转换为适当的关系模型题目E-R图关系模型 2. 画E-R图并将其转换为关系模型题目E-R图关系模型 选择题 下列关于数据库运行和维护的叙述中,正确的是D。 A .只要数据库正式投入运行&…

网狐大联盟服务端源码分析之服务核心-ServiceCore-Base64编解码实现

工程属性分析: 1.工程属性->动态链接库 2.dll类型->MFC共享DLL 3.字符集->Unicode 4.库导出类型->使用模块定义文件def 5.生成的导出模块函数与对应的地址定义lib文件 源码分析: 头文件分析: 头文件与对应含义表示如下:

shell变量类型含义 长方形面积计算 截取相应字段方法

1.总结变量的类型及含义? 2.实现课堂案例计算长方形面积?(6种方式) 3.定义变量urlhttps://blog.csdn.net/weixin_45029822/article/details/103568815(通过多种方法实现) 1)截取网站访问的协议 …

spring之spring入门程序

1.创建Maven Module 2.pom.xml引入依赖 此图引用于https://www.cnblogs.com/Zz-maker/p/11199331.html Maven种的依赖的传递性&#xff0c;spring-context依赖于core,beans,aop,expression等模块&#xff0c;但是在pom.xml中只引用spring-context即可&#xff1a; <?xml v…