Part Number:EK-TM4C123GXL
如题,谢谢您~
Susan Yang:
这个的话,建议您在线调试一下
1 先单独使用UART2,看是否可以正常工作
2 查看是否有引脚冲突或者中断抢占等问题
,
Xu Yuchen:
您好,单独调试UART2是正常工作的。我们用的是不同的UART串口,这种情况下会出现中断抢占的情况吗?
我已经通过delay()函数间隔开各个串口的通信,成功运行了代码。但是还是不理解为何会出现串口冲突的情况。
,
Susan Yang:
Xu Yuchen 说:我们用的是不同的UART串口,这种情况下会出现中断抢占的情况吗?
每个硬件uart相互独立,可以同时接收数据。但是只有一个内核,因此 mcu 必须按顺序读取数据
Xu Yuchen 说:单独调试UART2是正常工作的
请问您使用的是launchpad?能否贴出该launchpad的照片(包括版本号)?
您使用的UART引脚是哪个?
,
Xu Yuchen:
是的,EK-TM4C123GXL launchpad。
不知您说的版本号在哪里标示。UART2引脚是RX(2)-PD_6,TX(2)-PD_7,
UART1引脚是RX(1)-PB_0,TX(1)-PB_1,
UART3引脚是RX(3)-PC_6,TX(3)-PC_7,
UART5引脚是RX(5)-PE_4,TX(5)-PE_5。
(UART4未使用,标题写错)
,
Susan Yang:
谢谢您的反馈。看原理图上该RX(2)-PD_6,TX(2)-PD_7没有做特殊应用,理论上是使用没问题的。
建议您在单独的UART2上再依次加入UART1、3、5看在哪一步出现问题
,
Xu Yuchen:
您好,使用UART1和UART2时没有问题,再加上使用UART3就会出现问题。但是如果在不同串口收发数据时添加足够长的延时,就可以继续使用。
以我的理解不同串口之间是不冲突的,之前也有过同时进行的经验,现在就是不理解为什么会出现问题。
,
Susan Yang:
Xu Yuchen 说:以我的理解不同串口之间是不冲突的,
是的,他们是不冲突的
Xu Yuchen 说:再加上使用UART3就会出现问题。
应该是MCU没有来得及处理各个串口的中断或数据等
,
Xu Yuchen:
Susan Yang 说:应该是MCU没有来得及处理各个串口的中断或数据等
您的意思是,确实需要添加足够的延时让MCU去处理串口数据吗?delay()函数会不会也占用MCU的资源
,
Susan Yang:
是的,如果数据过多或者串口中断服务函数内需要执行的操作很多的话,是需要加足够延时的
,
Xu Yuchen:
收到,谢谢您。
,
Susan Yang:
不客气~