完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
主程序文件.
#include "DSP28x_Project.h" void main(void) [ DisableDog(); InitSysCtrl(); InitGpio(); InitSpiaGpio(); DINT; //TO Flash //memcpy(&RamfuncsRunStart, &RamfuncsLoadStart, (size_t)&RamfuncsLoadSize); EALLOW; //使能上拉 GpioCtrlRegs.GPAPUD.bit.GPIO16 = 0; GpioCtrlRegs.GPAPUD.bit.GPIO17 = 0; GpioCtrlRegs.GPAPUD.bit.GPIO18 = 0; GpioCtrlRegs.GPAPUD.bit.GPIO18 = 0; //使能异步端口操作 GpioCtrlRegs.GPAQSEL2.bit.GPIO16 = 3; GpioCtrlRegs.GPAQSEL2.bit.GPIO17 = 3; GpioCtrlRegs.GPAQSEL2.bit.GPIO18 = 3; GpioCtrlRegs.GPAQSEL2.bit.GPIO19 = 3; //使能端口第二功能 GpioCtrlRegs.GPAMUX2.bit.GPIO16 = 1; GpioCtrlRegs.GPAMUX2.bit.GPIO17 = 1; GpioCtrlRegs.GPAMUX2.bit.GPIO18 = 1; GpioCtrlRegs.GPAMUX2.bit.GPIO19 = 1; //使能时钟 SysCtrlRegs.PCLKCR0.bit.SPIAENCLK = 1; //长度使能 SpiaRegs.SPICCR.bit.SPICHAR = 8; //主机模式 SpiaRegs.SPICTL.bit.MASTER_SLAVE = 1; //开启数据传输 SpiaRegs.SPICTL.bit.TALK = 1; //设置波特率(1M) SpiaRegs.SPIBRR = (12<<0); //回环(测试) SpiaRegs.SPICCR.bit.SPILBK = 1; //接收中断 SpiaRegs.SPICTL.bit.OVERRUNINTENA = 1; //SPI全局中断允许 SpiaRegs.SPICTL.bit.SPIINTENA = 1; //存入SPI设置寄存器数值 SpiaRegs.SPICCR.bit.SPISWRESET = 1; //设置运行优先级 SpiaRegs.SPIPRI.bit.FREE = 1; //初始化SPI FIFO通道 SpiaRegs.SPIFFTX.bit.SPIRST = 1; //SPI FIFO使能 SpiaRegs.SPIFFTX.bit.SPIFFENA = 1; //重置发送FIFO SpiaRegs.SPIFFTX.bit.SPIRST = 0; //FIFO发送中断清除 SpiaRegs.SPIFFTX.bit.TXFFINTCLR = 1; //FIFO发送中断层数 SpiaRegs.SPIFFTX.bit.TXFFIL = (1<<0); //FIFO发送中断使能 SpiaRegs.SPIFFTX.bit.TXFFIENA = 1; //重置接收FIFO SpiaRegs.SPIFFRX.bit.RXFIFORESET = 0; //FIFO接收中断清除 SpiaRegs.SPIFFRX.bit.RXFFINTCLR = 1; //FIFO接收中断层数 SpiaRegs.SPIFFRX.bit.RXFFIL = (1<<0); //FIFO接收中断使能 SpiaRegs.SPIFFRX.bit.RXFFIENA = 1; //FIFO发送中断清除 SpiaRegs.SPIFFTX.bit.TXFFINTCLR = 1; //FIFO接收中断清除 SpiaRegs.SPIFFRX.bit.RXFFINTCLR = 1; EDIS; IER = 0x0000; IFR = 0x0000; InitPieCtrl(); InitPieVectTable(); //打开第六组中断 IER |= M_INT6; PieCtrlRegs.PIEIER6.bit.INTx1 = 1; PieCtrlRegs.PIEIER6.bit.INTx2 = 1; EINT; for(;;)[ SpiaRegs.SPITXBUF = 0xAA; IDLE; ] ] 中断向量: interrupt void SPIRXINTA_ISR(void) // SPI-A [ asm (" ESTOP0"); PieCtrlRegs.PIEACK.all = PIEACK_GROUP6; SpiaRegs.SPIFFRX.bit.RXFFINTCLR = 1; ] interrupt void SPITXINTA_ISR(void) // SPI-A [ asm (" ESTOP0"); PieCtrlRegs.PIEACK.all = PIEACK_GROUP6; SpiaRegs.SPIFFTX.bit.TXFFINTCLR = 1; ] 结果执行到IDLE无法继续,资料说是IDLE可以被任何中断唤醒,换成延迟后,也不能进入中断. 可以别让我去看示例吗?我不喜欢用函数封装的开发,我想这样,告诉我如何改改? |
|
相关推荐
2 个讨论
|
|
只有小组成员才能发言,加入小组>>
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
684 浏览 3 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
600 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1055 浏览 1 评论
741 浏览 0 评论
普中科技F28335开发板每次上电复位后数码管都会显示,如何熄灭它?
525 浏览 1 评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
165浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
128浏览 14评论
在使用3254进行录音的时候出现一个奇怪的现象,右声道有吱吱声,请教一下,是否是什么寄存器设置存在问题?
127浏览 13评论
TLV320芯片内部自带数字滤波功能,请问linein进来的模拟信号是否是先经过ADC的超采样?
123浏览 12评论
GD32F303RCT6配置PA4 ADC引脚,将PA2代替key功能,PA2连接时无法实现预期功能,为什么?
48浏览 10评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 21:08 , Processed in 0.821010 second(s), Total 76, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号