完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我是新手小白,我有裸机调试好的可以实现ADC+DMA+TIM采集电压电流数据并做FFT然后显示在液晶上的程序,现在想实现多线程操作,把采集数据、FFT变换和显示数据分成三个线程操作。我现在移植好了BSP,知道了如何在main.c里创建线程,现在无法着手的问题是这套裸机程序要怎么配合RTthread系统,初始化DMA、ADC、TIM?是不是还是按照裸机一样将这些驱动放在board.c里初始化好,然后在main函数前调用初始化函数,再将实现功能的代码放入线程入口函数。想想也不太对劲,这样的话不就和裸机差不了多少。看了官方的入门视频,有介绍了I/O设备的操作。在RTthread里,调用API函数rt_pin_mode操作I/O口。那ADC+DMA+TIM是否也可以这样操作啊?怎样整合起来让整体协调呢?希望大神给我指点迷津,感谢 |
|
相关推荐
3个回答
|
|
最开始使用实时系统时都有这样的疑惑。系统这个东西是拿来用的,一切以实现功能为目的。如果是学习,建议由简单到复杂尽可能多的加入。在这个过程中会慢慢摸索出来哪些地方该用什么样的系统功能来解决什么样的问题。慢慢的会对这个东西爱不释手
先让系统运行,然后把前后台任务分配到两个线程里去,比如屏幕和键盘一个线程,采集一个线程。 之后再考虑任务间通信,各种模块间的标志位,全局变量传递可不可以用信号量等等线程同步或者通讯手段来实现。 然后再考虑内存管理,吧以前静态分配的缓冲区临时内存尝试使用系统内存管理函数动态分配。 最后再考虑外设驱动,让功能模块不直接访问硬件,尝试使用系统的设备操作函数,配合现有的设备驱动。 至于什么在哪里初始化外设这个问题开始先随便放哪里都行。等加了外设驱动后就由设备管理器负责初始化了,也就不需要考虑了。 |
|
|
|
用裸机代码的话,可以试试和nano的结合
|
|
|
|
rt的设备框架目前不能实现这种功能,你可以使用你自己的设备初始化,糅合进系统里,我做过相关应用
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1111 浏览 0 评论
AI模型部署边缘设备的奇妙之旅:如何在边缘端部署OpenCV
3930 浏览 0 评论
tms320280021 adc采样波形,为什么adc采样频率上来波形就不好了?
1534 浏览 0 评论
2287 浏览 0 评论
1730 浏览 0 评论
75579 浏览 21 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-31 06:31 , Processed in 0.424091 second(s), Total 42, Slave 37 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号