完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
初代饭影的学习记录: 前贴提示:在上个帖子https://bbs.elecfans.com/jishu_467185_1_1.html里我把UART0做了简单的配置,可以向串口发送数据,可以用轮询的方式从串口接收数据。这次我们用上串口中断来接收数据~ 在看苏大ppt一直有个疑惑啊,不懂vectors.h和vectors.c这两个文件是神马意思。官方提供?要自己写?为什么官方例程没有用上这两个文件?后来逛论坛的时候发现一个帖子https://bbs.elecfans.com/forum.p ... eid%26typeid%3D1044,豁然开朗了: 原来是这样啊,新版启动文件就是好啊,不仅把两个文件包含进去了,还把中断服务函数用弱函数的形式给我们用。这是神马意思呢,也就是说,以前的话,要有以下代码把我们以后定义的函数来重新映射中断,当中断发生的时候就能进入我们编写的函数里进行处理了。
而新版启动文件则提供弱函数给我们用,我们不用写上面的代码来重映射中断函数了,直接写一个重名的函数来处理中断,例如: 如果用到UART0的中断服务,我们在工程里写一个同名的UART0_IRQHandler函数就行了,中断发生后程序会直接跳到此处执行。,真是非常方便啊! 好的,新版本的问题就说到这里。我们在上一个帖子的基础上用到中断来接收串口的数据。步骤有以下: 1、配置NVIC,开放UART0的中断 2、在UART0初始化时开接收中断 3、在中断函数里编写处理程序 (1)配置NVIC,开放UART0的中断,先写开放中断的函数。这里是nvic.c文件中的内容:
(2)在UART0初始化时开接收中断。在上一个帖里的UART0_Init函数基础上稍作修改,开UART0中断(12号中断)和串口接收中断: (3)简单编写中断服务函数,我这里是把串口接收的数据发送回串口:
看一下现象,还是差不多的啦,只不过是主函数的死循环里不用查询串口数据寄存器有没有数据而已。 |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
1912个成员聚集在这个小组
加入小组我的项目我做主,使用GN+Ninja来完成构建系统(VSCode开发RT106X)
36362 浏览 0 评论
NXP IMX8应用处理器快速入门必备:技巧、使用、设计指南
4401 浏览 0 评论
6055 浏览 1 评论
6768 浏览 0 评论
NXP i.MX6UL开发板(linux系统烧录+规格+硬件+模块移植)使用手册
4218 浏览 0 评论
620浏览 2评论
求助,S32G上Core M启动后如何让Core A在Flash指定位置加载uboot?
618浏览 2评论
ESP32-WROVER-IE + LAN8720以太网,GPIO0电压只有1.6v,无法正常进入spi flash boot模式如何解决?
610浏览 2评论
求分享适用于PN7160 Android的NFC工厂测试应用程序
696浏览 2评论
799浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-26 19:15 , Processed in 1.045544 second(s), Total 74, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号