完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
//SCI初始化
void InitSci(void) [ InitSciGpio(); SciaRegs.SCIFFTX.all=0xE040; SciaRegs.SCIFFRX.all=0x204f; SciaRegs.SCICCR.all =0x0007; SciaRegs.SCICTL1.all =0x0003; SciaRegs.SCICTL2.bit.TXINTENA =0; //关闭发送中断 SciaRegs.SCICTL2.bit.RXBKINTENA =1; //接收中断使能 SciaRegs.SCIHBAUD =0x0007; // 2400 baud @LSPCLK = 37.5MHz. SciaRegs.SCILBAUD =0x00a0; SciaRegs.SCICTL1.all =0x0023; // Relinquish SCI from Reset SciaRegs.SCIFFRX.bit.RXFIFORESET=1; SciaRegs.SCIFFRX.bit.RXFFINTCLR = 1; IER |= M_INT9; //使能第9中断级 PieCtrlRegs.PIEIER9.bit.INTx1 = 1; //使能SCI-A中断 EINT; //使能全局中断 ERTM; ] //中断服务程序 interrupt void SciaRxIsr(void) [ pp = SciaRegs.SCIRXBUF.all; PieCtrlRegs.PIEACK.all = PIEACK_GROUP9; SciaRegs.SCIFFRX.bit.RXFFINTCLR = 1; SciaRegs.SCIFFRX.bit.RXFFOVRCLR=1; ] 可以看到SCIRXBUF中有数据,但是就是进入不了中断,求各位指导 |
|
相关推荐
5 个讨论
|
|
Emily1225 发表于 2018-10-24 09:07 谢谢你的解答,改了后好用了,但是在中断服务程序中接收会出现乱序的情况,比如发送的是1,2,3,4,5,接收就变成1,4,2,5,3,在主程序中接收不会出现这种情况。 另外还有一个问题我不使用FIFO模式,把关于SCIFFRX的配置注释掉后为什么进不去中断了呢 void InitSci(void) [ InitSciGpio(); SciaRegs.SCICCR.all =0x0007; // 1 stop bit, No loopback SciaRegs.SCICTL1.all =0x0003; // enable TX, RX, internal SCICLK, SciaRegs.SCICTL2.bit.TXINTENA =0; //关闭发送中断 SciaRegs.SCICTL2.bit.RXBKINTENA =1; //接收中断使能 SciaRegs.SCIHBAUD =0x0007; // 2400 baud @LSPCLK = 37.5MHz. SciaRegs.SCILBAUD =0x00a0; SciaRegs.SCICTL1.all =0x0023; // Relinquish SCI from Reset IER |= M_INT9; //使能第9中断级 PieCtrlRegs.PIEIER9.bit.INTx1 = 1; //使能SCI-A中断 EINT; //使能全局中断 ERTM; ] interrupt void SciaRxIsr(void) [ pp = SciaRegs.SCIRXBUF.all; PieCtrlRegs.PIEACK.all = PIEACK_GROUP9; ] |
|
|
|
|
|
bo431129 发表于 2018-10-24 09:15 注释掉之后,其他的地方有重新设置SCIFFRX没有?比如RXFFIENA Receive FIFO interrupt enable要允许。 不应该是乱序,估计发送的时候就是14253,比如发送的是long型0x12345678,按照地址顺序发送就是0x78,0x56,0x34,0x12 |
|
|
|
|
|
Emily1225 发表于 2018-10-24 09:29 现在解决了,是FIFO接收中断等级设置错误,没有完全理解FIFO,现在用了感觉FIFO真不错,但是由于我一次要接收5个数,有三个标志数,在中断数组接收不能保证第一个就是标志数啊,所以用FIFO后还得找标志,这样处理有点麻烦,再问下怎样能确保第一个数就是标志数呢,就是我知道的数,也就是说每次取出来的5个数的顺序都是确定的 |
|
|
|
|
|
bo431129 发表于 2018-10-24 09:46 发给SCI的数据的顺序和读出来的顺序应该是一样的,不应该,发送的是1,2,3,4,5,接收就变成1,4,2,5,3 楼主,您可以参考一下TI例程包中的scia_loopback_interrupts例程,里面发送和接收的顺序是一样的,并且程序中还有校验。 |
|
|
|
|
|
只有小组成员才能发言,加入小组>>
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
566 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1015 浏览 1 评论
651 浏览 0 评论
普中科技F28335开发板每次上电复位后数码管都会显示,如何熄灭它?
492 浏览 1 评论
1012 浏览 0 评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
115浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
89浏览 14评论
在使用3254进行录音的时候出现一个奇怪的现象,右声道有吱吱声,请教一下,是否是什么寄存器设置存在问题?
104浏览 13评论
TLV320芯片内部自带数字滤波功能,请问linein进来的模拟信号是否是先经过ADC的超采样?
97浏览 12评论
TPA6304-Q1: TPA6304 两片公用一组I2C的话,其中一片配置不成功怎么办
124浏览 10评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-3 07:26 , Processed in 0.853311 second(s), Total 64, Slave 54 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号