完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
我在一个项目中使用PIC32MX550F256H,现在我尝试从UART1 Rx到UART2 Tx获取任何东西,反之亦然。简单,对吧?与和谐1.062它工作正常,现在版本1.08我不能做到这一点。我需要帮助。问题是,一旦从UART2读取一个字符,它就好像不清除任何中断标志(应该清除),因为它总是重新进入ISR(即使每次读取NULL字符),所以我无法让它工作。甚至从旧的和声代码中复制部分到这个新的和声代码中,但仍然有。<代码>void>void_u ISR(_UART_1_VECTOR,ipl1AUTO)Inl1AUTO_IntHandHandHandDrVVVVVVVVVVVVVVVVVVVVVV读Byte()1;如果(!)DRV_USART1_TransmitBufferIsFull()){DRV_USART1_WRT1写入字节(接收字符)}{DRV_USART1_WRT1_Writ字节(接收字符)}{DRV_USART1_发送(DRV_USART1_传输BuRT1_传输缓冲器_传输缓冲器(接收字符);}DRV_DRV_USART_USART1_USART1_WRT1_WRTRTRTRTRT1_任务发送_任务发送(接收字符)}}}DRV_DRV_DRV_USART_USART_USART1_USART1_USART1_USART1_USART1_VVVVV1_VVVVV1_发送缓冲区1_发送DrvUsartinstance1(void){char ReceivedChar=DrviUsART1IReBead();DRV_USART0_TransmitBufferIsFull()){DRV_USART0_WriteByte(ReceivedChar);}DRV_USART_TasksTransmit(sysObj.drvUsart1);DRV_USART_TasksReceive(sysObj.drvUsart1);DRV_USART_TasksError(sysObj.drvUsart1);};ISR代码希望您能帮助我,并提前感谢
|
|
相关推荐
9个回答
|
|
|
不要复制粘贴任何内容。迁移到和谐新版本的更安全的方法是使用新的和谐框架和相应的MHC重新生成项目。您使用新的和谐框架重新生成项目了吗?
|
|
|
|
|
|
是的,我已经用新的MHC/Harmony安装重新生成了,但是问题仍然存在。请注意,问题是USART端口只在我从一个读到另一个响应时才会卡住。这意味着,如果我从U1RX读取并写入该字符到U2TX,它会在8个字符之后被卡住,并无限期地发送第一个字符。如果我只使用一个UART por(U1Tx&U1Rx)来回送char,那么它工作得很好Edit1:还请注意,如果我返回到一个老的项目,执行完全相同的操作,但是使用.ony1.06.02和XC32 1.40就可以了。所以问题不是硬件相关的。
|
|
|
|
|
|
在发送完所有数据后,必须禁用发送缓冲区是空的互联器。我的代码如下:if(SYS_INT_SourceStatusGet(INT_SOURCE_USART_1_TRANSMIT)){booln.ble=APP_USARTHardwareBufferWrite(USART_ID_1,INT_SOURCE_USART_1_TRANSMIT);SYS_INT_SourceStatusClear(INT_SOURCE)_USART_1_TRANSMIT;如果(int.ble)SYS_INT_Source.ble(INT_SOURCE_USART_1_TRANSMIT);}USARTHardwareBufferWrite(我的实现)在发送缓冲区(我的缓冲区,一个环形缓冲区)为空之后返回true。
|
|
|
|
|
|
你可以得到一个程序,如比较(滑板车软件)比较“工作”版本到新的。你可以看到他们发生了什么变化。这个改变如何影响代码的操作。
|
|
|
|
|
|
你检查你的国旗了吗?具体来说,检查是否设置了溢出错误标志。我会在每次传输之前清除这个标志。
|
|
|
|
|
|
NKurzman感谢你的帖子,但是他们在和谐中的例子是没有用的。除了加载错误,我在加载项目时,在回声示例的App.c文件中有近500行代码,我远离这个建议。除非你是MCHP编码器。远离……只有憎恨在那里,难道这些例子的目的不是可以理解的吗?为了开发自己的应用程序,容易阅读和理解吗?和谐如何让我的生活更轻松?回音应用程序中的500行代码并不能使我的生活变得简单。他们使用了许多功能,从许多.h文件中导入一些可以很容易地解释和理解的函数。2个文件。相反,他们选择使用来自大量文件的大量函数,这些函数使您从一个文件转到另一个文件,并跳转以了解来自3个文件之前的调用是将一个标志设置为一个函数,该函数检查缓冲区是否已满,以查看是否能够在该缓冲区中获得另一个字符。我不想理解,为了得到一个USAT工作的回声应用程序…世界跆拳道联盟?和/或rand & gt;
|
|
|
|
|
|
1的咆哮…咆哮
|
|
|
|
|
|
+ 1在南公园内裤GNOME参考。
|
|
|
|
|
|
如果(!)DRV_USARTx_ReceiverBufferIsEmpty())//对于RX ANDBut,最好检查中断标志,而不是缓冲区。缓冲区触发了正确的中断,所以您应该跟踪事件回程并处理中断。
|
|
|
|
|
只有小组成员才能发言,加入小组>>
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
473 浏览 0 评论
5793 浏览 9 评论
2334 浏览 8 评论
2224 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3530 浏览 3 评论
1123浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
1095浏览 1评论
我是Microchip 的代理商,有PIC16F1829T-I/SS 技术问题可以咨询我,微信:A-chip-Ti
873浏览 1评论
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
475浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 01:48 , Processed in 1.829623 second(s), Total 88, Slave 71 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2691