UART的学习记录( 三 )

< -c%.o : %.c$(CC) $(CPPFLAGS) $(CFLAGS) -o $@ $< -cclean:rm *.o *.elf *.bin *.dis mkx210 -fcd lib; make clean; cd ..
修改之前的uart.c
首先是putc和getc函数的名字进行修改,之前是( )
和( )
这两个函数都要修改成与移植的函数里面的getc和putc一致
另外
为了使得输出的时候比较好看,outc( )变成了这样
void putc(char c){//这一截是为了如果输出的最后发现最后是换行\n的话//就执行回车\r,这样输出会对齐if (c == '\n'){while (!(rUTRSTAT0 & (1<<1)));rUTXH0 = '\r';}//这里是普通输出的时候就输出字符while (!(rUTRSTAT0 & (1<<1)));rUTXH0 = c;}
main.c
#include "stdio.h"//这里就要用别人的标准库了,不然就用不了printfvoid uart_init(void); //uart_init其实在uart.c里面,只不过这里先声明一下,免得报警void delay2(void);int main(void){uart_init();//下面这段是之前自己收发用的/* char c ;while(1){c = getc();putc(c);} */int a = 21;printf("count down from 20\n\n");while(a){a = a--;printf("test for printf %d\n",a);//printf("\r");delay2();}printf("\nthe end !\n");return 0;}void delay2(void){volatile unsigned int i = 2400000;// volatile 让编译器不要优化,这样才能真正的减while (i--);// 才能消耗时间,实现delay}
总结
从原理图抓取关键信息,根据需要进行修改 。
其实我问了我一个在工作的同事,他说配置这些串口,芯片通信,厂家会有一些demo给你,你看懂了自己进行修改即可 。