符合rt-thread要求且能上传到github的软件包应该是什么样?

2020-5-4 14:42 [复制链接] 15 166

对于使用rt_thread总会碰到软件包中没有的驱动,此时如何写出能够符合RT_THREAD要求,可ENV配置的IC驱动包是大多数使用者会面对的问题,文档只是给了个指导思想,能否给个具体的示例,比如ADE75313, TM7705等都是基于SPI接口的外置ADC芯片,怎么能写一个符合要求能上传到github的软件包,希望给个视频例子,大家也好依葫芦画瓢* z( {% x0 x" ?+ t
! u/ J$ r$ @/ W, x: z4 j1 e* H
$ I! H7 A6 c, s% \5 E! J
驱动包如下,需要完善9 `, Z+ m4 u5 f$ I$ z% N2 T- p! J6 r: j

stm32f413_ADE7913_0508.7z.001

10 MB, 下载次数: 3

stm32f413_ADE7913_0508.7z.002

8.7 MB, 下载次数: 2

使用道具 举报 显示全部楼层 回复
最新评论 | 正序浏览
显示全部楼层 |楼层直达:
发表于 2020-5-4 15:24:19 | 显示全部楼层
我写了一个AD7606的,但是没提交。https://github.com/whj4674672/ad7606
使用道具 举报 回复
发表于 2020-5-6 14:13:03 | 显示全部楼层
@whj467467222你的例子很有借鉴意义,我的ADE7913可能更复杂一些,涉及到2片级联(级联几片,包括时钟是通过单片机MCO输出/其中那一主片引出,太灵活了这部分,该怎么设计?),中间估计要用到互斥操作,我看有的对转换完成还用到了事件集,如果提交,你example里面的一些设置又是如何通过ENV得到?
使用道具 举报 回复
发表于 2020-5-6 16:21:01 | 显示全部楼层
在ENV下编写ADE7913驱动的时候,系统有STM32提供的API接口函数,RTT在device/drivers下有spi_core.c和spi_dev.c,看RTT文档中studio下,结合cubumx的编写驱动说不要依赖设备驱动框架,搞晕了,究竟是咋样的?
使用道具 举报 回复
发表于 2020-5-8 09:01:40 | 显示全部楼层
我根据你这个思想,编写了我的驱动,但很遗憾没有跑起来,按照这种写法,是不是还需要将STM32CUBMX生成的stm32f4xx_hal_msp.c拷贝到工程中,并调用其函数void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi),我这样做了现在还不行,具体情况是绑定设备查找设备都没报错,调用RTT的SPI函数进行寄存器读写失败,我不知道写进去是否正确,但读出来的和写进去的值不对
使用道具 举报 回复
发表于 2020-5-8 09:27:24 | 显示全部楼层
杰瑞鼠 发表于 2020-5-8 09:012 Z6 R$ a' d! r2 u
我根据你这个思想,编写了我的驱动,但很遗憾没有跑起来,按照这种写法,是不是还需要将STM32CUBMX生成的st ...

  c, [& O, x6 {/ ?可以把你的这个驱动打包发论坛,然后标明存在的问题,看看社区的朋友能不能帮你解决一下
使用道具 举报 回复
发表于 2020-5-8 10:06:51 | 显示全部楼层
RT-Thread小喇叭 发表于 2020-5-8 09:277 M! F4 l# C! N# t. k
可以把你的这个驱动打包发论坛,然后标明存在的问题,看看社区的朋友能不能帮你解决一下 ...

6 N9 c* L* P9 [. J/ A; ^- R怎么添加附件压缩包?
使用道具 举报 回复
发表于 2020-5-8 10:16:27 | 显示全部楼层
问题描述:
- S/ O% o, g2 i        自己在stm32f413rgt6上通过ADE7913对4~20mA进行ADC采集,采用裸机驱动ADC测试没问题(驱动代码见F:\learn\dist\stm32f413_ADE7913_0508\applications\ADE7913_Drive\裸机驱动),而自己改写的RTT下的驱动用SPI读写控制寄存器测试失败(读(0)和写(0x31)的不一致),请大家指点一下。- E) c* Y" m. C7 `4 E
          如果说不同,裸机下的是HAL库的SPI读写函数;RTT下的是设备驱动架构+RTT封装的SPI读写函数。: `4 {' ?( v) F* j" }( @* M
        ADE7913说明:速率最大5.6M,我这个是片1用4.9152MHZ外部晶振在CLKOUT/RDY输出到另一片2的XTAL1,片2的CLKOUT/RDY作为输入到STM32
! f& k* B0 f: M- @: C/ t" n2 t9 Y
$ P& v8 n2 I* ?5 [
使用道具 举报 回复
发表于 2020-5-8 10:42:44 | 显示全部楼层
我在高级模式下添加了压缩包附件,发出去后我自己看不到,你们能看到附件吗?
使用道具 举报 回复
发表于 2020-5-8 14:14:00 | 显示全部楼层
不能看到你发的附件,如果你能编辑你发的主题帖,把附件放到主题帖,而不是楼层中
使用道具 举报 回复
发表于 2020-5-8 14:50:36 | 显示全部楼层
杰瑞鼠 发表于 2020-5-8 10:168 _# E1 N; X' ?7 g+ ~
问题描述:
9 {' e1 n* ]3 F1 C7 t        自己在stm32f413rgt6上通过ADE7913对4~20mA进行ADC采集,采用裸机驱动ADC测试没问题( ...

( H2 Z; K+ W1 x9 d4 S3 m附件在顶楼,大家帮看看
使用道具 举报 回复
发表于 2020-5-8 14:55:37 | 显示全部楼层
本帖最后由 杰瑞鼠 于 2020-5-8 14:56 编辑
# K$ h: s5 Z; `, Q/ a
9 S# Y! e) y; w) N7 a# g+ U这个暂时也没达到软件包得标准,不知道怎么做,这个仿照一个whj467467222给得格式(它也没发表)。裸机下得驱动没问题(基于HAL库函数),而用SPI设备驱动得RTT操作接口函数不成功,大家看看什么问题% w4 j" X! u& x" n  G* H
使用道具 举报 回复
发表于 2020-5-9 15:28:36 | 显示全部楼层
问题已经解决。借了一个逻辑分析仪看了,2种读写函数的字节数不同产生了错位,现在读写寄存器没问题了
使用道具 举报 回复
发表于 2020-5-9 16:33:07 | 显示全部楼层
杰瑞鼠 发表于 2020-5-9 15:28
" P0 ^1 y; d7 B! Z8 r) ^问题已经解决。借了一个逻辑分析仪看了,2种读写函数的字节数不同产生了错位,现在读写寄存器没问题了 ...

! a  z( E( [1 |: p. l可以整理一下帖子 说一下你的解决思路
使用道具 举报 回复
发表于 2020-5-12 11:10:33 | 显示全部楼层
现在的问题是在裸机下的驱动都正常,RTT下的读写配置寄存器也正常,但读ADC寄存器的RDY信号始终不拉低,无法读数据;裸机下没有问题,寄存器的设置也都一样
5 F$ P# f- e$ g1 r8 U" a- @% o
使用道具 举报 回复
发表于 2020-5-12 12:16:51 | 显示全部楼层
杰瑞鼠 发表于 2020-5-12 11:10
! K# `6 S5 [: {: G9 ]现在的问题是在裸机下的驱动都正常,RTT下的读写配置寄存器也正常,但读ADC寄存器的RDY信号始终不拉低,无 ...
" R6 |$ M; f5 V4 x" o
感觉还是API的调用不对,不通的API对于CS处理也是不一样的。可以贴下你的逻辑处理代码和RTT的处理代码
使用道具 举报 回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  1. 19 主题
  2. 245 帖子
  3. 245 积分

Ta的主页 发消息

Archiver|手机版|小黑屋|RT-Thread开发者社区 ( 沪ICP备13014002号-1

有害信息举报电话:021-31165890 手机:18930558079

© 2006-2019 上海睿赛德电子科技有限公司

Powered by RT-Thread

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