0

我查看了 DE2 的手册(第 177 页),据我所知,它应该可以进行串行通信,例如通过油灰和 USB 到串行电缆到板上,所以我从手册中获取程序:

/* A simple program that recognizes the characters 't' and 'v' */
#include <stdio.h>
#include <string.h>
int main ()
{
char* msg = "Detected the character 't'.\n";
FILE* fp;
char prompt = 0;
fp = fopen ("/dev/uart1", "r+"); //Open file for reading and writing
if (fp)
{
while (prompt != 'v')
{ // Loop until we receive a 'v'.
prompt = getc(fp); // Get a character from the JTAG UART.
if (prompt == 't')
{ // Print a message if character is 't'.
fwrite (msg, strlen (msg), 1, fp);
}
if (ferror(fp))// Check if an error occurred with the file pointer 
clearerr(fp); // If so, clear it.
}
fprintf(fp, "Closing the JTAG UART file handle.\n");
fclose (fp);
}
return 0;
}

我尝试将它作为 Nios2 硬件运行,但是当我将 std i/o 配置为使用 uart 时收到此消息

nios2-terminal: can't open uart: No such file or directory

然后当我连接终端程序(腻子串行连接)时,它没有连接。我究竟做错了什么?我尝试在项目的特性中将 std i/o 更改为 uart,但这并没有帮助。你能帮助我吗?

4

2 回答 2

3

如何调试串行通信:

拿起你的 9 针串行电缆并将跳线针 2 和 3 放在一起。你可以使用回形针或任何你手边的东西。引脚 2 和 3 是 TX 和 RX。如果将它们连接在一起,则您从计算机发送的任何命令都将被计算机接收。您已经创建了一个串行环回!

打开腻子,尝试连接到您的串行电缆。敲击键盘上的任意键。波特率和事情无关紧要,因为它是一个环回。

如果您在终端上看到您发送的字符,则说明您的串行电缆有效!如果没有,您的电缆或腻子有问题。我过去在串行通信方面遇到过腻子问题。如果您遇到 Putty 无法连接的问题,请尝试下载Tera Term 。

或者为您的串行电缆寻找新的驱动程序!祝你好运。

于 2013-09-26T15:24:14.270 回答
0

在 Linux 中,我会执行以下操作。

fp = fopen ("/dev/ttyS0", "r+"); //Open file for reading and writing

或者

寻找 ttyS1;如果正在使用 ttyS0。

fp = fopen ("/dev/ttyS1", "r+"); //Open file for reading and writing

执行 dmesg 以了解您连接的确切设备。

$tail -f /var/log/messages

对于 USB 串行,它可能是

/dev/ttyUSB0;可以使用 /var/log/messages 找到确切的数字

于 2013-09-26T08:53:12.790 回答