对于使用rt_thread总会碰到软件包中没有的驱动,此时如何写出能够符合RT_THREAD要求,可ENV配置的IC驱动包是大多数使用者会面对的问题,文档只是给了个指导思想,能否给个具体的示例,比如ADE75313, TM7705等都是基于SPI接口的外置ADC芯片,怎么能写一个符合要求能上传到github的软件包,希望给个视频例子,大家也好依葫芦画瓢
驱动包如下,需要完善
我写了一个AD7606的,但是没提交。https://github.com/whj4674672/ad7606
@whj467467222你的例子很有借鉴意义,我的ADE7913可能更复杂一些,涉及到2片级联(级联几片,包括时钟是通过单片机MCO输出/其中那一主片引出,太灵活了这部分,该怎么设计?),中间估计要用到互斥操作,我看有的对转换完成还用到了事件集,如果提交,你example里面的一些设置又是如何通过ENV得到?
在ENV下编写ADE7913驱动的时候,系统有STM32提供的API接口函数,RTT在device/drivers下有spi_core.c和spi_dev.c,看RTT文档中studio下,结合cubumx的编写驱动说不要依赖设备驱动框架,搞晕了,究竟是咋样的?
我根据你这个思想,编写了我的驱动,但很遗憾没有跑起来,按照这种写法,是不是还需要将STM32CUBMX生成的stm32f4xx_hal_msp.c拷贝到工程中,并调用其函数void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi),我这样做了现在还不行,具体情况是绑定设备查找设备都没报错,调用RTT的SPI函数进行寄存器读写失败,我不知道写进去是否正确,但读出来的和写进去的值不对
我根据你这个思想,编写了我的驱动,但很遗憾没有跑起来,按照这种写法,是不是还需要将STM32CUBMX生成的st …
可以把你的这个驱动打包发论坛,然后标明存在的问题,看看社区的朋友能不能帮你解决一下
问题描述:
自己在stm32f413rgt6上通过ADE7913对4~20mA进行ADC采集,采用裸机驱动ADC测试没问题(驱动代码见F:\learn\dist\stm32f413_ADE7913_0508\applications\ADE7913_Drive\裸机驱动),而自己改写的RTT下的驱动用SPI读写控制寄存器测试失败(读(0)和写(0x31)的不一致),请大家指点一下。
如果说不同,裸机下的是HAL库的SPI读写函数;RTT下的是设备驱动架构+RTT封装的SPI读写函数。
ADE7913说明:速率最大5.6M,我这个是片1用4.9152MHZ外部晶振在CLKOUT/RDY输出到另一片2的XTAL1,片2的CLKOUT/RDY作为输入到STM32