完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
请问使用ADSP-21479 的SPI,主模式的接收与发送该如何控制? "interrupt(,);" 如何使用?
我有找到一些参考程式,测试硬体使用 ADSP-21479 + MCP3008 的 ADC。 发现一些问题: 1.测试发现SPI_CS会影响CLK,範例裡面没有看到关于CS的控制指令。 2.SPI无法持续动作,参考程式裡有用 "interrupt(SIG_P1, Master_Receive_ISR);",还有 "Enable_interrupt();",不太了解这个程式码。 3.不了解TXSPI与RXSPI要怎么给值,时机跟方式不太了解,就是乱改乱试。 总体而言,使用示波器观察讯号,有收到ADC传回的讯号,但是我不知道怎么接收那些讯号,也不太清楚我下一步要做什么,因为我没有完全理解参考程式在做什么。 还有细部要考虑到的周边,还是不大清楚,例如SDRAM、PLL、timer、watch dog那些。 请问还有没有针对SPI主模式的接收与发送这个功能的参考程式呢? |
|
相关推荐
1个回答
|
|
|
使用ADSP-21479的SPI主模式进行接收和发送数据的控制如下:
1. 配置SPI控制寄存器(SPICR): - 选择主模式:设置SPIMD位为0。 - 配置时钟极性和相位:设置CPOL和CPHA位来选择SPI时钟极性和相位配置。 - 配置数据位宽:设置DF位来选择数据位宽(8位或16位)。 - 设置帧率:设置FRM和FRS位来设置帧率。 2. 控制传输: - 选择设备:通过SPI片选(CS)引脚选择要进行通信的设备。 - 发送数据:将要发送的数据放入SPI数据寄存器(SPITX)。 - 等待发送完成:检查SPITF位,确保数据已经发送完毕。 - 接收数据:从SPI数据寄存器(SPIRX)中读取接收到的数据。 关于"interrupt(SIG_P1, Master_Receive_ISR);"和"Enable_interrupt();"的使用,是针对中断服务程序的使用。 - "interrupt(SIG_P1, Master_Receive_ISR);"用于定义一个中断服务程序,并指定它在指定的中断发生时执行。 - "Enable_interrupt();"用于使能中断。 关于TXSPI和RXSPI的使用,它们分别是用于发送和接收SPI数据的寄存器。发送数据时,将要发送的数据直接写入TXSPI寄存器;接收数据时,从RXSPI寄存器中读取接收到的数据。 请注意,在使用中断方式进行SPI通信时,您需要实现中断服务程序来处理接收数据。您可以在中断服务程序中读取接收到的数据,并在主程序中进行进一步处理。 如果使用示波器观察到收到的ADC信号,那么您可以在接收数据的相关代码中获取并处理这些数据。具体的处理方法取决于您的应用需求。 |
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
【瑞萨RA6E2】瑞萨E2S软件安装过程,等待过程玩下97_e2 studio_ZGZZ
140 浏览 0 评论
483 浏览 0 评论
【原创】【RA4M2-SENSOR开发板评测】低功耗+USB综合测试
815 浏览 0 评论
1346 浏览 2 评论
804 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
16903 浏览 31 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 15:01 , Processed in 0.635237 second(s), Total 75, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1954