完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 一只耳朵怪 于 2018-6-13 15:24 编辑
SPI初始化如下: SpiaRegs.SPICCR.bit.SPISWRESET=0; // Reset SPI SpiaRegs.SPICCR.all=0x0007; //8-bit character,上升沿发,下降沿入 SpiaRegs.SPICTL.all=0x0007; //Interrupt enabled, Master/Slave XMIT enabled SpiaRegs.SPIBRR=0x028; // Baud rate LSPCLK/(4+1)=20M/40=0.5M SpiaRegs.SPIFFTX.all=0xC004; // Enable FIFO's, set TX FIFO level to 4 SpiaRegs.SPIFFRX.all=0x0024; // Set RX FIFO level to 4 SpiaRegs.SPIFFCT.all=0x00; SpiaRegs.SPIPRI.all=0x0010; SpiaRegs.SPISTS.all = 0x00; SpiaRegs.SPICCR.bit.SPISWRESET=1; // Enable SPI SpiaRegs.SPIFFTX.bit.TXFIFO=1; SpiaRegs.SPIFFRX.bit.RXFIFORESET=1; F28069的SPI引脚都悬空,这种情况下,用示波器看出SOMI引脚和SIMO引脚电平无变化,但用仿真器仿真却能进入接收中断,为什么? 初充中断子程序中处理: interrupt void spiRxFifoIsr(void) [ Uint16 i; Uint8 spicksum; SpiaRegs.SPIFFRX.bit.RXFFOVFCLR=1; // Clear Overflow flag SpiaRegs.SPIFFRX.bit.RXFFINTCLR=1; // Clear Interrupt flag PieCtrlRegs.PIEACK.all|=0x20; // Issue PIE ack 。 ] |
|
相关推荐
3个回答
|
|
怎么 TI的技术支持部也不忙吧回答一下。气死人了
|
|
|
|
Hi Sam,
首先我想明确你主程序有没有持续在发送SPI数据,还是你主程序没有发送数据啥也没做? 如你所说用示波器看出SOMI引脚和SIMO引脚电平无变化,但用仿真器仿真却能进入接收中断,看起来你主程序并没有发送数据出去。 有一种情况会引起接收中断,当你发送4个数据出去后,RX FIFO会自动接收到4个数据,由于你的RX引脚悬空,所以读进来的是脏数据,但是,这个时候由于SpiaRegs.SPIFFTX.bit.TXFFST =4 会引起中断。 另外,在你中断接收函数内请读出4个RX FIFO数据,读一个SpiaRegs.SPIFFTX.bit.TXFFST 自减1,你不读,退出中断后SpiaRegs.SPIFFTX.bit.TXFFST依然为4,马上又进入RX中断。 我给的建议是: 比较你的程序和TI例程,首先确定发送输出出去没有问题,在示波器上可以踩到相应波形,然后再接收数据。 Michael Qian |
|
|
|
vctwetrwer 发表于 2018-6-13 03:30 kqian, 谢谢你我解答与建议, 我针对TI的例程进行了多次尝试,发现只有把字符长度改为16位就可以发出数据了,示波器能踩到波形。而8位字符长度怎么改设置SIMO的电平都无变化,这是什么原因? 针对这种无数据而进入接收中断的情况应该如何解决呢? SpiaRegs.SPICCR.bit.SPISWRESET=0; // Reset SPI SpiaRegs.SPICCR.all=0x000F; //16-bit character,上升沿发,下降沿入 SpiaRegs.SPICTL.all=0x0007; //Interrupt enabled, Master/Slave XMIT enabled SpiaRegs.SPIBRR=0x028; // Baud rate LSPCLK/(4+1)=20M/40=0.5M SpiaRegs.SPIFFTX.all=0xC004; // Enable FIFO's, set TX FIFO level to 4 SpiaRegs.SPIFFRX.all=0x0024; // Set RX FIFO level to 4 SpiaRegs.SPIFFCT.all=0x00; SpiaRegs.SPIPRI.all=0x0010; SpiaRegs.SPISTS.all = 0x00; SpiaRegs.SPICCR.bit.SPISWRESET=1; // Enable SPI SpiaRegs.SPIFFTX.bit.TXFIFO=1; SpiaRegs.SPIFFRX.bit.RXFIFORESET=1; 因为发送数据是左边开始移位 |
|
|
|
只有小组成员才能发言,加入小组>>
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
672 浏览 3 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
599 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1052 浏览 1 评论
736 浏览 0 评论
普中科技F28335开发板每次上电复位后数码管都会显示,如何熄灭它?
523 浏览 1 评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
158浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
120浏览 14评论
在使用3254进行录音的时候出现一个奇怪的现象,右声道有吱吱声,请教一下,是否是什么寄存器设置存在问题?
124浏览 13评论
TLV320芯片内部自带数字滤波功能,请问linein进来的模拟信号是否是先经过ADC的超采样?
122浏览 12评论
TPA6304-Q1: TPA6304 两片公用一组I2C的话,其中一片配置不成功怎么办
165浏览 10评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-23 05:29 , Processed in 0.870274 second(s), Total 81, Slave 65 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号