完善资料让更多小伙伴认识你,还能领取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例程,里面发送和接收的顺序是一样的,并且程序中还有校验。 |
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
553 浏览 0 评论
1616 浏览 0 评论
2049 浏览 0 评论
为啥BQ7693003DBTR芯片在和BQ769X0盒子通讯时收不到信号?
1516 浏览 0 评论
DSP 28027F 开发板 XDS100v2调试探针诊断日志显示了 Error -150 (SC_ERR_FTDI_FAIL)如何解决
1343 浏览 0 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
1759浏览 29评论
2787浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
1726浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
1637浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
1647浏览 13评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-3 06:34 , Processed in 0.801523 second(s), Total 58, Slave 47 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1896