如何注册spi的发送和接收回调函数?

Viewed 184

技术支持提问请严格按照以下格式提供对应信息,否则会影响回复时效,一定要描述清楚,以免一次回复无法解决问题

(提问前请先自查自己是否很仔细看过教程了,教程中的每句话都很重要,教程都是经过验证的,不会有问题的)

一、描述你遇到的问题

想要实现spi接收中断的功能,调用spi.h的用于注册收发回调函数的接口,编译报错。导致无法实现功能。帮忙看一下是步骤有问题,还是需要通过另外的函数接口?

二、你具体做的所有步骤结果截图

1.使用的是spi.h提供的接口,想注册接收和发送完成的回调函数。

2.在spi_master_demo.c中定义了发送和接收函数的具体内容。

3.打开了spi支持中断的宏

4.在spi_master_demo.c中调用了上述提到用于注册的函数,编译后提示未定义。

三、当前开发板状态全景照片

请插入图片

四、开发板串口所有日志

请在此处粘贴串口日志

4 Answers

这是打包库的时候就没有把这部分代码打包进去,需要这部分功能需要拿到完整的SDK才能做,完整的SDK需要走商务合作渠道获取

感谢告知

好的,感谢!

请问版主能帮忙联系一下海思的技术人员咨询一下这个问题吗?

你好,请问你SPI的问题解决了吗?我用了上面朋友提到的git SDK的源码,但是还是卡在 spi_port_register_irq

../../../../drivers/drivers/driver/spi/spi.c: In function 'spi_int_mode_init':
../../../../drivers/drivers/driver/spi/spi.c:388:5: error: implicit declaration of function 'spi_port_register_irq'; did you mean 'dma_port_register_irq'? [-Werror=implicit-function-declaration]
spi_port_register_irq(bus);
^~~~~~~~~~~~~~~~~~~~~

这个函数只有声明没有定义,直接注释就不报错了。spi中断,还是没整出来。调用这个中断注册的函数也没起啥作用,可能这个sdk也有一些bug吧。

是的,spi中断这边驱动还不完整,我翻了一下i2c,那边是有用hal_i2c_xxxxxx() 这样子的函数注册和启用中断的,spi这边根本没有,应该是华为海思SDK的问题。不知道能不能联系上海思的人员解决这个问题,不然海思这个hi2821芯片,SPI部分是根本不能用于产品的

这个好像不是海思官方的SDK吧,或许你可以尝试联系一下作者

找遍了SDK,都没有定义 spi_port_register_irq 这个函数的地方