完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
大家好,我把FW从PIC24F传送到PIC32 MX570F512L,但是当通过UART2发送一个字节时,没有中断。main.c的简单代码如下:ReadTask()是用UART接收的数据进行处理的一个函数。我观察到引脚49(RF4)上的信号存在,外围时钟是Fosc/2=4MHz……但是没有发生中断。您建议做什么?谢谢你的支持
|
|
相关推荐
12个回答
|
|
您是否检查过是否需要将任何模拟引脚切换到数字模式?
|
|
|
|
从数据表看来,外围引脚选择仅仅是数字的。事实上,寄存器ANSELF没有用于UART通信的ANSF04和ANSF05。无论如何,即使我清除了ANSELF寄存器,中断也不工作。
|
|
|
|
你是否在中断控制器中优先考虑中断?默认情况下,所有中断的优先级都是0,这意味着它们永远不会触发。一个小的设计问题:如果您的接收处理程序函数指针是NULL,则中断标志将保持设置,ISR将只是在循环中触发。
|
|
|
|
我注意到U2STA的乌克兰人被清除了。这个位应该在设置U2MODE的ON位之后设置。在我的例子中,U2MODEbits.ON=1和U2STAbits.URXEN=0;所以我设置URXEN位,并且每次在UART2上接收到字节时都设置中断标志。但是这次FW执行在中断例程中不会停止(我放置断点)。中断定义的SunCube可能不正确吗?这个定义是正确的吗?ValueAyAtditTyx((中断(IPL4SUM)))u2RX中断(无效){//List}命令}
|
|
|
|
正如我提到的,您还需要在中断控制器的IPCX寄存器中配置中断优先级。此优先级必须与您的ISR的IPLX指令中使用的优先级相同。
|
|
|
|
嗨,是这样的。我在这个函数中定义了优先级:
|
|
|
|
您没有设置中断优先级以匹配ISR优先级。IPC7位28∶26(IPC7BIT.U2IP?)需要设置为匹配ISR定义中的优先级(在您的情况4中)。此外,我看不到您已经启用了全局中断,或者启用了多向量中断。LP防止我们浪费时间研究并给出错误的答案。
|
|
|
|
伟大的123,现在的代码我工作得很好!只有一个问题:因为对于UART2,只有一个向量编号等于36,如果我要为RX和TX事件区分两个不同的代码,唯一的解决方案应该是:谢谢你的支持
|
|
|
|
您好,Serafino,您已经启用了USART,启用了RX,并在RXBUF不为空时选择了URXISEL用于中断。轮询IFS1位。当在管脚上接收到数据时,轮询U2RXIF位(您说可以看到信号)。没有。如果没有,那么引脚设置就不合适。如果发生了,中断设置就不合适。自己试试,解决你的问题:-)
|
|
|
|
是的,你必须在一个ISR中测试和重置各个标志。
|
|
|
|
哦,你的问题在我打字时解决了。-没看到帖子,反正是第二个案子;
|
|
|
|
非常感谢,你的帮助非常宝贵。祝你有美好的一天。
|
|
|
|
只有小组成员才能发言,加入小组>>
5150 浏览 9 评论
1994 浏览 8 评论
1924 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3165 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2221 浏览 5 评论
716浏览 1评论
602浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
488浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
617浏览 0评论
515浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-15 12:21 , Processed in 1.370963 second(s), Total 99, Slave 82 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号