您的位置 首页 编程

STM32 USART中止小程序

尽管网上的例程一堆堆,但还是花了好几天时间才跑通了一个USART通过中断方式实现的小程序。相当无比地郁闷啊。记录一下遇到的问题:1.配…

虽然网上的例程一堆堆,但仍是花了好几天时刻才跑通了一个USART经过中止方法完成的小程序。适当无比地抑郁啊。记载一下遇到的问题:

1. 装备RCC的机遇

在主程序中经过查询方法收发数据时,成果并不安稳。比照了ST供给的例程中的设置,将RCC装备提到了一切装备的最前面后,功用完成。定论:应先装备RCC,再初始化其他外设。

2. RAM下调试遇到的问题

在上述查询方法的基础上,增加对NVIC的装备,USART的中止设置,以及ISR中的处理进程,放到RAM下调试,无法进入ISR。有以下两个测验成果:1)在主程序while中调用USART_GetITStatus,判别USART中止事情是否产生及中止是否使能,成果为SET。2)在调试时看NVIC的寄存器,USART1现已enable了,阐明寄存器现已写入。上述两点成果下,程序从理论上应该进入中止。百思不得其解之下,鬼使神差地把程序放到flash下,一切问题云消雾散,程序跑通,在ISR中处理了收发事情。

flash和ram下程序的不同动作,原因不知道,做了如下一些比照(疼爱我的flash啊):

T表明只设置了USART发送中止,R表明只设置了USART接纳中止。能够看出,不是在FLASH的程序中是否设置过NVIC的问题。导致过错的原因可能是flash下和ram下程序的固件库版别不同。当程序加载到flash或ram中后,体系是怎么运转程序的?两者之间是否有搅扰和影响?这点需求进一步学习。

3. 其他问题

在做2中的实验时,期望在flash内无程序时,在RAM中调试看结构。但用J-Flash ARM V4.08l擦除flash后,keil中无法调试,显现core is locked up, cpu halted。网上搜到说在J-Flash ARM V4.08l中target->unsecure chip->从头上电,就能够解锁。依样画葫芦,失利。因此在2中的实验中只能在flash中烧入空程序。解决方法需求持续探索。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/biancheng/275302.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部