完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
在上一个帖子里面,我们在固件库的基础上实现了样例工程的搭建,并利用封装好的GPIO的操作实现了LED灯的闪烁。在这篇帖子里面,将介绍串口和中断。我们的思路是利用KL25Z的UART0实现串口数据的收发,分别使用轮询标志位和中断的方法。 首先,我们应该先对UART0有一个简单的认识。参考手册的第39章对应这部分内容。我们不妨对照着固件库里面的代码对常用的寄存器做介绍。把固件库里面的UART0的初始化代码找出来。对应到init_board()函数,可以看到,在这个函数的最后,是对UART0的引脚复用的设置和UART0寄存器的设置,也就是这两句话:
跳转到第一个函数的定义,可以看到,这个函数并不完整,只是对UART0的情况作了处理,将PA的1,2管脚作为了UART0的发送和接收管脚,代码如下:
查询引脚复用图,可以看到,PA的1,2管脚的ALT2正是串口的发送接收功能,如图所示。
第二个函数的参数是一个指向结构体的指针,这个结构体封装了设置UART所需要的波特率和系统时钟。UART0_ConfigTransfer()函数就利用这个结构体传进来的数值进行设置,主要是进行了波特率的设置和数据传输格式的设置。这部分代码已经有了注释,大家依照手册来看就可以了。
串口的初始化已经完成了,我们分析一下对串口的接受发送是怎么实现的。串口的发送和接收的数据会被送到UARTx->D里面进行缓存,等待读取或者发送。下面几个函数就是接收和发送的操作,我把它们加上了注释。
再说一句,在学习C语言的时候,我们知道有一个实现了标准输入输出的库文件stdio.h,里面实现了printf函数,可以将一些字符之类的显示到控制台上,而这里,利用上面的串口收发数据的函数重写一些函数,就可以实现printf向电脑的上位机写数据了!具体还请参考固件库里面的stdio_adapter.c文件。现在,利用这些函数,我们就可以实现自己的一些功能了。我们将main函数修改如下:
我们进行下载验证。 |
|
相关推荐
|
|
学习中,帮顶。
|
|
|
|
|
|
好贴,顶!!!!!!!!!!!!
|
|
|
|
|
|
谢谢谢谢O(∩_∩)O哈哈~谢谢谢谢O(∩_∩)O哈哈~谢谢谢谢O(∩_∩)O哈哈~谢谢谢谢O(∩_∩)O哈哈~谢谢谢谢O(∩_∩)O哈哈~谢谢谢谢O(∩_∩)O哈哈~谢谢谢谢O(∩_∩)O哈哈~谢谢谢谢O(∩_∩)O哈哈~谢谢谢谢O(∩_∩)O哈哈~谢谢谢谢O(∩_∩)O哈哈~谢谢谢谢O(∩_∩)O哈哈~谢谢谢谢O(∩_∩)O哈哈~谢谢谢谢O(∩_∩)O哈哈~谢谢谢谢O(∩_∩)O哈哈~谢谢谢谢O(∩_∩)O哈哈~
|
|
|
|
|
|
你好,可以请教一个问题吗?
kl27中的UART串口函数在哪里,,,找了好长时间,例程中只有LPUART的调用,没有普通UART 的函数啊。。。求赐教 |
|
|
|
|
|
只有小组成员才能发言,加入小组>>
1932个成员聚集在这个小组
加入小组我的项目我做主,使用GN+Ninja来完成构建系统(VSCode开发RT106X)
36414 浏览 0 评论
NXP IMX8应用处理器快速入门必备:技巧、使用、设计指南
4796 浏览 1 评论
6100 浏览 1 评论
6807 浏览 0 评论
NXP i.MX6UL开发板(linux系统烧录+规格+硬件+模块移植)使用手册
4244 浏览 0 评论
641浏览 2评论
求助,S32G上Core M启动后如何让Core A在Flash指定位置加载uboot?
637浏览 2评论
ESP32-WROVER-IE + LAN8720以太网,GPIO0电压只有1.6v,无法正常进入spi flash boot模式如何解决?
639浏览 2评论
求分享适用于PN7160 Android的NFC工厂测试应用程序
725浏览 2评论
835浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-19 04:15 , Processed in 1.208057 second(s), Total 91, Slave 72 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号