打印
[APM32F1]

apm32f103ret6在rtthread下的外设驱动问题,dma使用问题

[复制链接]
76|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yinxi12138|  楼主 | 2025-5-25 13:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yinxi12138 于 2025-5-25 13:51 编辑

#技术资源# 老板突发奇想,要将stm32换成apm32,在使用apm32f103ret6进行rtthread开发时,发现驱动代码中并没有dma的驱动代码,是极海没有进行着部分的dma开发么,还是本人没有找到。于是尝试在apm32_msp.c文件中加入串口3rx以及tx的dma使能代码(代码来自极海apm32f103xe串口dma例程)。dma使用失败。后面计划
1.尝试使用adc的dma功能,读取ntc传感器温度,检查adc的dma实行方案。
2.使用rs485的软件包,并启用dma,试验该能否启用芯片的串口dma。

结果:使用rs485软件包并启动dma,提示RT_SERIAL_RB_BUFSZ过小,请增加buff的警告。在增加到2048,仍是警告但是我的发送不到20字节。按照网上办法,增加线程的优先级,仍是出现警报,关闭dma功能仍是出现警报。drv_usart.c文件中,apm32_usart_ops.dma_transmit = RT_NULL,极海没有编写串口dma驱动。最后项目赶,自己写了一个rs485的代码,直接使用中断加定时器方式获取一帧modbus rtu协议的数据。实现每200ms,读取一个寄存器的稳定运行。等后面有时间仿照stm32的dma驱动看能不能成功。
小想法:amp32这一款芯片有着丰富的dma资源,在做物联网方面肯定有优势的,但是在rtthreados,并没有对这一优势进行发挥。要想和stm32系列竞争还是要注重初级开发者的学习上来,尤其是学生群体。



使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

4

帖子

0

粉丝