硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1363|回复: 7
收起左侧

[ThreadX全家桶] STM32单片机标准库移植完Threadx操作系统后ADC+DMA传输数据不正确

[复制链接]

2

主题

14

回帖

20

积分

新手上路

积分
20
发表于 2023-3-18 14:01:35 | 显示全部楼层 |阅读模式
1、裸机未移植Threadx时ADC采集+DMA传输是正确的
2、移植完Threadx后,创建了两个任务,运行正常
3、在一个任务中打印ADC采集DMA搬运的数据,数据错误3.3V电压AD值为65530,0V电压AD值为0
4、有大神能帮我看看移植的正确吗


V1.00_Threadx.zip

27.15 MB, 下载次数: 12

回复

使用道具 举报

2

主题

14

回帖

20

积分

新手上路

积分
20
 楼主| 发表于 2023-3-18 14:44:13 | 显示全部楼层
使用STMCUBEMX生成的HAL库移植Threadx操作系统,没有这个问题
回复

使用道具 举报

2

主题

14

回帖

20

积分

新手上路

积分
20
 楼主| 发表于 2023-3-18 14:56:19 | 显示全部楼层
两个任务已经跑起来了,延时都是正确的,HAL库也是这样移植的就没出现这个问题
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115878
QQ
发表于 2023-3-18 15:20:16 | 显示全部楼层
ADC+DMA传输和ThreadX毫无关系,估计你的程序配置在裸机正好可以,到了RTOS下不行了。
回复

使用道具 举报

0

主题

275

回帖

275

积分

高级会员

积分
275
发表于 2023-3-18 15:30:45 | 显示全部楼层
直接看ADC的各个寄存器在两种情况下有啥不一样。
回复

使用道具 举报

2

主题

14

回帖

20

积分

新手上路

积分
20
 楼主| 发表于 2023-3-20 16:17:39 | 显示全部楼层
regbbs 发表于 2023-3-18 15:30
直接看ADC的各个寄存器在两种情况下有啥不一样。

下载+(2).png

1、不经意间找到原因了,这个标准库不带操作系统的版本,也有这个问题
2、移植操作系统必须开启这个半主机模式,裸机没有开启数据是正常的,裸机开启后数据也不正常了,问题就在这里
3、在线仿真我用的不太熟练,暂时没这样去查寄存器




回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115878
QQ
发表于 2023-3-21 09:00:57 | 显示全部楼层
masure 发表于 2023-3-20 16:17
1、不经意间找到原因了,这个标准库不带操作系统的版本,也有这个问题
2、移植操作系统必须开启这个 ...

确实是移植的有问题。这个主要的还是使用C标准库和微库问题。不管那种库,ThreadX都是没有问题的。
回复

使用道具 举报

2

主题

14

回帖

20

积分

新手上路

积分
20
 楼主| 发表于 2023-3-23 13:21:16 | 显示全部楼层
eric2013 发表于 2023-3-21 09:00
确实是移植的有问题。这个主要的还是使用C标准库和微库问题。不管那种库,ThreadX都是没有问题的。

暂时不纠结标准库的移植了,先用HAL库的学起来
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-5-24 13:46 , Processed in 0.661689 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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