数码之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 665|回复: 18

[STM] 使用STM32CubeMX初始化STM32F103程序代码,系统会默认打开哪些中断?

[复制链接]
发表于 2023-12-2 20:09:32 | 显示全部楼层 |阅读模式

爱科技、爱创意、爱折腾、爱极致,我们都是技术控

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x
使用STM32CubeMX初始化STM32F103程序代码,
在不使用任何外设中断的情况下,系统会默认打开哪些中断?
这些中断又可以怎样暂时性关闭?

谢谢各位大佬的指导!
发表于 2023-12-3 09:51:21 | 显示全部楼层
很羡慕懂单片机的!
回复 支持 反对

使用道具 举报

发表于 2023-12-3 09:51:40 | 显示全部楼层
很羡慕懂单片机的!
回复 支持 反对

使用道具 举报

发表于 2023-12-3 09:52:01 | 显示全部楼层
很羡慕懂单片机的!
回复 支持 反对

使用道具 举报

发表于 2023-12-3 10:15:05 | 显示全部楼层
应该就只会打开SysTick中断,这个是ARM架构自带的外设
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-12-3 16:49:25 | 显示全部楼层
深寒刺骨 发表于 2023-12-3 10:15
应该就只会打开SysTick中断,这个是ARM架构自带的外设

那该如何暂时性关闭SysTick中断?
回复 支持 反对

使用道具 举报

发表于 2023-12-3 18:27:50 | 显示全部楼层
nvic_disable(XXX_IRQn);
回复 支持 反对

使用道具 举报

发表于 2023-12-4 04:36:48 | 显示全部楼层
默认不会开什么吧?
回复 支持 反对

使用道具 举报

发表于 2023-12-13 15:42:37 | 显示全部楼层
本帖最后由 inthsunshine 于 2023-12-13 15:45 编辑

应该不会有所谓的默认,这个要用户自己选择。 hal库也有一堆函数,各种功能,有手册可查,不过我习惯直接在寄存器上操作,那些函数太多,参数也很多,记不住,名字又长,书写不方便
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-12-13 19:19:25 | 显示全部楼层
inthsunshine 发表于 2023-12-13 15:42
应该不会有所谓的默认,这个要用户自己选择。 hal库也有一堆函数,各种功能,有手册可查,不过我习惯直接在 ...

直接操作寄存器,那寄存器更多,很难记住。操作hal库我都不熟悉,寄存器就更不用说了。
回复 支持 反对

使用道具 举报

发表于 2023-12-13 22:03:46 | 显示全部楼层
本帖最后由 inthsunshine 于 2023-12-13 22:15 编辑
lmn2005 发表于 2023-12-13 19:19
直接操作寄存器,那寄存器更多,很难记住。操作hal库我都不熟悉,寄存器就更不用说了。 ...

一个外设寄存器其实没几个,如果熟悉了,会发现套路差不多,比如都有1个状态寄存器,每位代表各种正常异常的状态,其中会有1-2个状态位和中断相关,如果中断配置好且打开,只要这些位被置位,就会触发中断;每个外设也有单独的中断允许位(NVIC也要设置,总的中断开关),DMA允许位,启动/关闭外设也有对应的位。

而hal库(甚至标准库)里,一个寄存器可以造出一堆的函数和参数,这些参数在头文件宏定义跳来跳去,眼花缭乱,之前学习计数器/定时器那会,里面的函数非常多,而且还很多看起来相似,看了库的原型,才知道他们之间的具体区别(具体控制哪个寄存器的哪一位)

hal库的唯一好处,就是方便移植,比如它的一个配置函数,可以把不同寄存器结构的型号统统强行整合到同一个函数里,所以里面会有很多的条件判断,这个型号这么处理,那个型号那么处理,分支很多, cube mx工具不熟悉,不知道会不会自动优化,只抽取同型号的处理代码

diy的话,需要移植的情况很少

当然cube mx入门比较容易,现在估计很少人直接寄存器操作了,举个例子吧,下面这短短几句,就完成了SPI口的初始化

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-12-14 18:33:56 | 显示全部楼层
inthsunshine 发表于 2023-12-13 22:03
一个外设寄存器其实没几个,如果熟悉了,会发现套路差不多,比如都有1个状态寄存器,每位代表各种正常异常 ...

我使用51单片机基本就是操作寄存器的,那是因为51单片机的寄存器少,现在玩32系列,感觉寄存器太多。要实现某一个功能,你得先知道需要什么样的配置流程,需要哪些寄存器,而STM的使用手册又是英文的,根本就看不懂。所以就使用HAL库,而HAL库现在还没有深入了解其构造,所以使用起来也觉得很费力。
回复 支持 反对

使用道具 举报

发表于 2023-12-14 20:47:42 | 显示全部楼层
lmn2005 发表于 2023-12-14 18:33
我使用51单片机基本就是操作寄存器的,那是因为51单片机的寄存器少,现在玩32系列,感觉寄存器太多。要实 ...

英文要会点,不但st资料英文,甚至国产的很多英文资料,脑子抽了

st中国公司,会翻译部分型号英文版为中文,F1, F4, F7都有
回复 支持 反对

使用道具 举报

发表于 2023-12-17 20:04:24 | 显示全部楼层
51的寄存器不多,可STM32的太多了。

经常看寄存器看的头晕
回复 支持 反对

使用道具 举报

发表于 2023-12-18 13:33:06 | 显示全部楼层
默认什么中断也不打开。你可以在左侧栏看一下,什么中断都没有打开的。
回复 支持 反对

使用道具 举报

发表于 2023-12-18 14:48:45 | 显示全部楼层
我也想学。。。但看了之后直接放弃了
果断 arduino 写 stm32
即使速度比 hal 或者 标准库 慢,但是不用花大把时间去研究 挺好
不过用国产的 xx32 最后还是跑不了得学 hal
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-12-18 21:18:42 | 显示全部楼层
firseve 发表于 2023-12-18 14:48
我也想学。。。但看了之后直接放弃了
果断 arduino 写 stm32
即使速度比 hal 或者 标准库 慢,但是不用花大 ...

是的,凭自己摸索的确有点难度。
回复 支持 反对

使用道具 举报

发表于 2023-12-18 22:56:38 | 显示全部楼层
默认应该不会开什么中断,中断是你自己配置打开的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-12-19 07:53:52 | 显示全部楼层
eric_yangsen 发表于 2023-12-18 22:56
默认应该不会开什么中断,中断是你自己配置打开的。

我觉得5楼的坛友说得对,SysTick中断应该是默认开着的,不然的话,HAL延时函数可以直接用。
回复 支持 反对

使用道具 举报

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

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-9-28 04:47 , Processed in 0.093600 second(s), 8 queries , Gzip On, Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

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