完善资料让更多小伙伴认识你,还能领取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 的函数啊。。。求赐教 |
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
2135个成员聚集在这个小组
加入小组我的项目我做主,使用GN+Ninja来完成构建系统(VSCode开发RT106X)
37379 浏览 0 评论
NXP IMX8应用处理器快速入门必备:技巧、使用、设计指南
6778 浏览 1 评论
7796 浏览 1 评论
7646 浏览 0 评论
NXP i.MX6UL开发板(linux系统烧录+规格+硬件+模块移植)使用手册
5074 浏览 0 评论
1559浏览 2评论
关于NINA-W132 Wi-Fi模块SPI通信遇到的疑问求解
1211浏览 2评论
如何在MPC PowerPC MCU上首次刷写后禁用BDM?
750浏览 1评论
将HFREFR和LFREFR寄存器值设置为错误的值来将故障注入CMU,但CMU_ISR值始终为零,为什么?
737浏览 1评论
将SPSDK for FRDM-MCX-W71 SDK与VS一起安装时出现hidapi构建错误怎么解决?
681浏览 1评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-3 05:01 , Processed in 0.725275 second(s), Total 86, Slave 67 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖