笔记 14 : 彭老师课本第 8 章, UART : 寄存器介绍 ,系统时钟频率,源代码结构,printf() 实现

(99) 继续介绍 uart 的关于通道的 一整套 寄存器, UCON 等:

在这里插入图片描述

++ 接着介绍输入输出状态寄存器 UTRSTAT :

在这里插入图片描述

++ 补充:上图也显示了,对于 FIFO 模式,不应参考上述寄存器,而应改参考对应 FIFO 模式的状态寄存器:

在这里插入图片描述

++ 接着介绍读写数据的寄存器:

在这里插入图片描述

++ 设置 uart 的波特率,有关的寄存器:

在这里插入图片描述

++ 补充 soc 的常用时钟频率:

在这里插入图片描述

++

在这里插入图片描述

(100) 接着介绍驱动编写 ,代码部分。这里的 puts / gets 是在 soc 上运行的代码。puts 是 soc 通过 uart 对外输出 ,getc 是 soc 经过 uart 获取数据

在这里插入图片描述

++

在这里插入图片描述

++ 接着介绍 uart_init () 函数:

在这里插入图片描述

++ 接着学习 putc () 函数:

在这里插入图片描述

++ 接着介绍 getc () 函数:

在这里插入图片描述

++ gets () / puts() 函数:

在这里插入图片描述

++ 利用以上函数的支持,可以实现 printf () 函数:

在这里插入图片描述

++

在这里插入图片描述

++ 测试结果如下:

在这里插入图片描述

++ 至此,就在咱们自己的工程里实现了 printf( ) 函数。此时也因为预置了 CRT 的波特率为 115200 。

(101) 接着学习如何修改波特率为 9600 :

在这里插入图片描述

++

在这里插入图片描述

++ make 的新用法,从指定标号开始执行

在这里插入图片描述

++ 通过 CRT 下载代码,并试运行:

在这里插入图片描述

++ 断开 CRT 与 soc 连接的方法,那个图标 :

在这里插入图片描述

++ 重新配置 CRT :

在这里插入图片描述

++

在这里插入图片描述

++ 老师说,按下回车,就可以重新连接了:

在这里插入图片描述

++ 然后有显示结果了,说明波特率已经改过来了:

在这里插入图片描述

++ 老师说也可以改一下别的参数,数据位,停止位等,实验实验。但常用的就是上面的配置。后面讲解更复杂的学习:中断。

(102)接着开始介绍讯为板子的代码与实验:

在这里插入图片描述
++

在这里插入图片描述

(103)因为远见与讯为板子一致,就不再区分两套源代码。首先介绍 cpu/ start.s 文件,其实相同于 pWM 里的 start.s 文件,复制过来:

在这里插入图片描述

++ 分析远见板子的 uart.c 文件:

在这里插入图片描述

++关于 printf() 实现的描述略。以后可能再看,处理可变参数列表,处理格式转换,想必比较复杂。还有处理可变参的宏定义。只是知道有这么回事。

++ main.c 函数见前面图片。是一样的。接着介绍 makefile 文件,跟笔记 12 的 PWM 一样。文件名也是一样的:

在这里插入图片描述

++ 补充下 objcopy 命令的选项,可见这一次并没有用 -S 选项去掉文件里的符号表:

在这里插入图片描述

++ 配套 makefile 的 lds 文件:

在这里插入图片描述

++ 输入 make 命令,编译:

在这里插入图片描述

++ 接着介绍讯为板子的代码,只列出不一样的地方和文件:

在这里插入图片描述

++ 以下是 讯为板子的测试结果:

在这里插入图片描述

++ 先修改 main.c 文件,给 printf() 函数加难度:

在这里插入图片描述

++ 开始调整波特率的小数部分:

在这里插入图片描述

++ 重新编译,运行 :

在这里插入图片描述

++ 再改为 9600 波特率输出数据:

在这里插入图片描述

++ 测试结果。我猜测,是不是设置成别的波特率,也一样可以直接在电脑上输出呢 :

在这里插入图片描述

++ 至于为啥,随意设置波特率,都可以输出,就这样了,以后再学习。谢谢老师的教导:

在这里插入图片描述

至此,本章可以告一段落了,结束了。

(104)

谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值