OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5967|回复: 2

SPI 在加入延时后,无法使用的问题

[复制链接]

4

主题

10

帖子

0

精华

新手入门

积分
9
金钱
9
注册时间
2019-10-18
在线时间
37 小时
发表于 2021-8-19 17:32:56 | 显示全部楼层 |阅读模式
30金钱

在我添加了FreeRTOS后, 在main函数中,操作系统初始化之前,测试我的发送函数,使其进入while死循环,出现一个头疼的问题。
在我加入HAL_Delay(500)后,SPI发送函数发不出数据,去掉以后可以。这里的FreeRTOS的心跳时钟是TIM5,并非systick。去掉HAL_Delay后正常,我又尝试osDelay()同样的问题,因为操作系统没有初始化,结果并不意外。





但是在我尝试将上述两行代码插入  线程    之中的时候,这里有三个相同优先级的线程,其他两个是空函数,不执行任何东西,同样出现了上述问题,无论是加入HAL_Delay还是osDelay, SPI 均无法发出数据,这里的SPI使用的是普通的发送函数,不是中断和DMA,
从未见过此类问题,希望可以得到解决。

主控芯片是407

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

7

主题

480

帖子

0

精华

高级会员

Rank: 4

积分
773
金钱
773
注册时间
2021-4-15
在线时间
304 小时
发表于 2021-8-20 10:00:22 | 显示全部楼层
FreeRTOS 用硬件SPI 记得要用加锁操作!
日常敲键--头秃一片
回复

使用道具 举报

2

主题

592

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1458
金钱
1458
注册时间
2019-7-28
在线时间
137 小时
发表于 2021-8-20 10:16:07 | 显示全部楼层
这种需要持续通信的,为了防止任务调度打断关键传输,是需要进临界的,防止任务调度
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-27 02:36

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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