使用SDK5.0.4我正在尝试使用UART2通过IR收发器将IRDA传输,并且难以设置它。
什么是程序?我只改变了两件事:
1)改变了这一行:GPIO_CONFIGUREPIN(UART2_GPIO_PORT,UART2_TX_PIN,OUTPUT,PID_UART2_IRDA_TX,FALSE);//改为Irda
2)改变了这个:setword32(UART2_MCR_REG,UART_AFCE | UART_RTS | 0x40);// | 0x40将UART_SIRE位设置为1。
还有什么需要做的吗?谢谢!
设备:
嗨krixen,
不幸的是,在使用IRDA时,我可以给您作为参考,尽管您完成的配置足够并且您已正确设置MCR寄存器,但REST配置与标准UART配置相似,IRDA的问题是类似的是580中的UART具有相当大的波特率错误,因此如果您试图建立通信,您应该尝试低于115200甚至低于57600的讨论。
谢谢mt_dialog.
你好,
谢谢你的反馈,我很久就离开了办公室,我回来了。
问题是,当我切换到UART IRDA时,我在发射行中看到任何内容。如果我仍然看到0到VCC的波动,它应该看起来像一个方波进入IR收发器的发射吗?
嗨krixen,
是的,如果您设置IRDA功能,只要您在违约时,只要在TX线上看到脉冲。
谢谢mt_dialog.
您仍然使用UART Write(或PrintF)功能,它应该吐出IRDA SIR数据格式吗?或者我需要调用其他一些功能吗?
我问这是因为我在更改2寄存器(从原始帖子中)时,我在我的TX线上看到了什么。它看起来像一个略微嘈杂的线,但总是在0volts。我也看到了接收方面的任何东西,尽管预计TX侧没有任何东西。
嗨krixen,
不,没有专用API才能使用IRDA,使用UART的驱动程序HW能够在IRDA模式下运行,而无需任何其他配置。也许你已经错误地配置了UART本身,例如,如果使用任何AllReady UART示例,如UART2_ASYNC示例,并且您将这些更改(上面提到),您还是在线上看到0伏并没有脉冲?
谢谢mt_dialog.
再次问好,
我正在使用common_uart.c,这是我的UART设置:
//选择UART设置
#define uart2_baudrate uart_baudrate_115k2 // baudrate in bits / s:{9k6,14k4,19k2,28k8,38k4,57k6,115k2}
#define uart2_datalength uart_charformat_8 // datalength中位数:{5,6,7,8}
#define uart2_parity uart_parity_none // parity:{uart_parity_none,uart_parity_even,uart_parity_odd}
#define uart2_stopbits uart_stopbits_1 //停止位:{uart_stopbits_1,uart_stopbits_2}
#define uart2_flowcontrol uart_flowcontrol_disabled // flow control:{uart_flowcontrol_disabled,uart_flowcontrol_enabled}
我正在使用此函数一次打印一个字节:
void printf_byte(char ch)
{
//以十六进制格式打印一个字节
Char B;
B =((0xF0&CH)>> 4);
B + =(B <10)?48:55;
UART2_WRITE((uint8_t *)&b,1,null);
UART2_FINISH_TRANSFERS();
B =(0xF&CH);
B + =(B <10)?48:55;
UART2_WRITE((uint8_t *)&b,1,null);
UART2_FINISH_TRANSFERS();
}
我还尝试激活FlowControl,但这要么不起作用,所以我再次禁用它。看到我缺少或正确做的任何东西?
嗨krixen,
在UART(正常UART NO IRDA)上使用您使用的FW打印时,能够看到数据?
谢谢mt_dialog.
是的,我能够看到正常的UART,只有当我切换那两个我没有看到任何东西的寄存器时才。
作为侧面注意:我是否需要流量控制?
你好,
只需回顾一下即可查看我们是否可以解决这个问题。谢谢你
嗨krixen,
否您不需要使用流量控制,只需使用相应的位设置的UART的常规设置(以上面提到的原因为低波特率),以使IRDA和相应的引脚能够成为适当的功能。如果您这样做并使用打印功能,请使用示波器看到TX线上的脉冲(不是噪声),如果不是,那么我假设您的设置应该存在电气问题。
谢谢mt_dialog.