你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

spi通讯 死机

[复制链接]
weiji 提问时间:2022-2-24 17:00 / 未解决
stm32f401和热电偶芯片max31855通过spi通讯,如果没有将spi的相关中断优先级置于最高优先级,程序运行几秒后就会死机,将spi中断设置为最高优先级,程序可正常运行
收藏 评论8 发布时间:2022-2-24 17:00

举报

8个回答
xmshao 回答时间:2022-2-24 17:28:11
根据你的描述,SPI的中断优先级较低时可能导致死机,你看看SPI中断服务程序里代码没有及时运行而可能导致死机的。
weiji 回答时间:2022-2-24 18:25:12
spi中断服务子程序很简单,只有几行数**算,应该不会导致死机。 我主要怀疑spi是属于同步通讯,同步时钟频率很高,会不会对时序要求非常严格。
weiji 回答时间:2022-2-24 19:16:48
xmshao 发表于 2022-2-24 17:28
根据你的描述,SPI的中断优先级较低时可能导致死机,你看看SPI中断服务程序里代码没有及时运行而可能导致死 ...

spi中断服务子程序很简单,只有几行数**算,应该不会导致死机。 我主要怀疑spi是属于同步通讯
废鱼 回答时间:2022-2-25 09:12:25

理论上是不会的。可能是代码应用的问题。楼主是否开启了允许中断抢占的功能了?

butterflyspring 回答时间:2022-2-25 10:48:09

从应用上推测,F401应该做主,所以理论上中断时间长点就会导致通讯速度慢一点。 所以多半是其他中断打断SPI的中断服务程序,有可能影响了程序的运行结果,也就是逻辑冲突。这个需要检查不同中断间代码的影响或通过优先级设置避开影响。 可以考虑一下这方面的因素。

weiji 回答时间:2022-2-25 13:00:52

废鱼 发表于 2022-2-25 09:12
理论上是不会的。可能是代码应用的问题。楼主是否开启了允许中断抢占的功能了?
...

我程序中,中断比较多,中断不是根据各自的优先级,安排执行顺序吗?中断抢占功能在哪里开启?

weiji 回答时间:2022-2-25 13:04:05
butterflyspring 发表于 2022-2-25 10:48
[md]从应用上推测,F401应该做主,所以理论上中断时间长点就会导致通讯速度慢一点。 所以多半是其他中断打 ...

你好,我现在很想知道,如果其他中断的优先级比spi的优先级高,打断了spi中断,那是否会造成spi通讯异常?另一方面spi通讯异常,又是否会造成程序死机
废鱼 回答时间:2022-2-25 16:20:04

NVIC_PriorityGroupConfig设置的是几?

NVIC_PriorityGroup_4:不同组优先级别间,依据优先级强弱,优先级别高的组的中断源可以打断优先级别低的组的正在做的事情;(即:不同组优先级间,可以中断嵌套)

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版