完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
周立功给的spi传输,用的查询方式,如下:uint8 SPI_RW_Byte(uint8 data)
{ uint8 back; while ( (SSP1SR & 0x02) == 0 ); // 发送FIFO未满时跳出循环 SSP1DR = (uint16)data ; // ADE7878读命令 while ((SSP1SR & 0x10) == 0x10); // 接受FIFO不为空时跳出循环 back = SSP1DR; // 将数据寄存器中数据读出 return back; } 由于传输数据量较大,想用ssp的中断方式进行传输,而ssp的中断就四种中断,我想用第三种,即接受FIFO一半为满时, 相应位中断使能会有产生中断,然后再编写中断服务子程序完成数据的读出,可是不知道我编完程序后,进步去中断服 务子程序,关于IRQ的已经使能了(总程序里还有一个timer1中断,程序能进入服务子程序),下面附部分需要设置的 相关程序,求帮忙,毕设迫在眉睫。 VICVectPri8 = 8; // 3 // 设置SSPI1中断高优先级 VICVectAddr8 = (uint32)IRQ_SSP1; // 设置中断服务程序地址 VICIntEnable = 1 << 11; // 使能SSP1器1中断 void __irq IRQ_SSP1(void) { BEEPON(); SPI1rcvdata1=SSP1DR; SPI1rcvdata2=SSP1DR; SPI1rcvdata3=SSP1DR; SPI1rcvdata4=SSP1DR; // VICSoftIntClr = 0x000008000; VICVectAddr = 0x00; // 通知VIC中断处理结束 } void SPI_R32Byte(void) { while((SSP1RIS & 0x04)== 0);//判断Rx FIFO是否有一半为满 SSP1IMSC=0x04; //当满足中断条件时,使能中断 } void SPI_W8Byte(uint8 data) { while ( (SSP1SR & 0x02) == 0 ); // 发送FIFO未满时跳出循环 SSP1DR = (uint16)data; // ADE7878读命令 } uint32 Read_ADE7878(uint16 add) { uint32 outdata; static uint32 temp; uint8 add_h, add_l; add_h = (uint8)(add>>8); add_l = (uint8)(add&0x00FF); SS_1; // SPI_Delay(20); SS_0; SPI_W8Byte(0x01); // 读命令 SPI_W8Byte(add_h); // ADE7878寄存器高地址 SPI_W8Byte(add_l); // ADE7878寄存器低地址 SPI_R32Byte(); // 读出ADE7878寄存器中高8位数据 temp = SPI1rcvdata1; outdata = (temp<<24); temp = SPI1rcvdata2; // 读出ADE7878寄存器中次高8位数据 outdata += (temp<<16); temp = SPI1rcvdata3; // 读出ADE7878寄存器中低8位数据 outdata += (temp<<8); temp = SPI1rcvdata4; // 读出ADE7878寄存器中最低8位数据 outdata += (temp<<0); SS_1; return (outdata); } |
|
相关推荐
1 个讨论
|
|
只有小组成员才能发言,加入小组>>
1936个成员聚集在这个小组
加入小组我的项目我做主,使用GN+Ninja来完成构建系统(VSCode开发RT106X)
36437 浏览 0 评论
NXP IMX8应用处理器快速入门必备:技巧、使用、设计指南
5097 浏览 1 评论
6121 浏览 1 评论
6825 浏览 0 评论
NXP i.MX6UL开发板(linux系统烧录+规格+硬件+模块移植)使用手册
4255 浏览 0 评论
656浏览 2评论
求助,S32G上Core M启动后如何让Core A在Flash指定位置加载uboot?
646浏览 2评论
ESP32-WROVER-IE + LAN8720以太网,GPIO0电压只有1.6v,无法正常进入spi flash boot模式如何解决?
648浏览 2评论
求分享适用于PN7160 Android的NFC工厂测试应用程序
740浏览 2评论
855浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-31 07:39 , Processed in 1.078826 second(s), Total 60, Slave 48 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号