< -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给你,你看懂了自己进行修改即可 。
- 一张长图了解中国近代史上签订的38个不平等条约 历史条约之最
- 中国历史上最牛的三个太监:霸占后宫,让太后生子,权侵朝野! 历史太监之最
- 中国历代皇帝之最,最短的在位半天,最长的62年,有位67岁才登基 历史之最男性
- 贵州安顺市区仅剩的200米明清老街,藏着很多美食,太珍贵了 安顺历史之最
- 乾隆八年,12天热死11400人,历史上“最热的夏天”到底有多热? 乾隆历史之最
- 经典书籍排行榜,求经典的管理类书籍
- 经典下酒菜有哪些,喝啤酒最好的下酒菜是什么?
- 中药洗头还要不要过清水,中药茶麸洗头的配方是什么?
- 1.屏蔽和卸载自带的nvidia驱动
- 揭秘可以喝两到三斤酒的武松喝的酒是多少度