1.第一种方式
拿串口通信为例,HAL系统库API支持对UART核功能部件的完全访问。Nios II程序把UART核看成是一个字符模式设备,使用ANSI C标准库函数发送和接收数据。
下面是一个最简单的串口通信程序,具体功能是使用printf()函数讲一个字符显示到stdout设备上。
#include<stdio.h> int main() { printf("Hello World.\n"); return 0; }
需要强调的是,本次例中在NIos II IDE中的工程配置选项中将所使用的串口设备uart_0配置为stdout。如下图所示。
2.第二种方法
下面是对串口UART的标准使用方法,该方法通过C标准库函数对UART设备完成检查特定字符操作。此时无须把UART核设置为stdout设备,程序中把UART作为HAL系统支持的文件类型,打开并使用标准的文件操作函数对UART设备进行读写操作。
include <stdio.h> #include"system.h" #include<string.h> #include<unistd.h> int main() { char *msg = "wo shi yi zhi\n"; FILE *f1,*f2; f1 = fopen(UART_0_NAME,"r+"); f2 = fopen(LCD_16207_0_NAME,"w"); while(1){ fprintf(f1,"wo shi yi zhi\n"); //对UART进行操作 fwrite(msg,strlen(msg),1,f2); //对LCD进行操作 printf("Hello from Nios II!\n");//对JTAG进行操作 usleep(1000000); } return 0; }