STM32 USART中断小程序

原创 2011年01月19日 17:02:00

尽管网上的例程一堆堆,但还是花了好几天时间才跑通了一个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中烧入空程序。解决方法需要继续摸索。

STMF10x库文件介绍(core_cm3.c、core_cm3.c......system_stm32f10x.h、system_stm32f10x.c)

用过stm32f10x有一段时间了,但是对其库文件一直没有一个清晰的了解,上午心血来潮,就想整理一下。 http://blog.sina.com.cn/s/blog_7810aed20102vx...

嵌入式操作系统内核原理和开发(优先级的修改)

【 声明:版权所有,欢迎转载,请勿用于商业用途。  联系信箱:feixiaoxing @163.com】      之前在和rawos作者的闲聊中,rawos作者认为实时操作系统中最大的特色就是互斥量...

STM32 串行通信 USART 程序例举

STM32 串行通信 USART 的笔记讲解连接http://blog.csdn.net/dragon12345666/article/details/24484185 1、串行通信 软件仿真ST...

STM32串口USART1的使用方法和程序

通用同步异步收发器(USART)提供了一种灵活的方法来与使用工业标准NR 异步串行数据格式的外部设备之间进行全双工数据交换。 USART利用分数波特率发生器提供宽范围的波特率选择,支持同步单向通信和半...

stm32F429-discovery USART2 的测试程序

  • 2016年05月16日 13:29
  • 2.32MB
  • 下载

usart1-stm32串口程序

  • 2015年07月16日 12:32
  • 1KB
  • 下载

STM32f103的数电采集电路的USART的使用与蓝牙的连接的程序

STM32 的串口资源相当丰富的,功能也相当强劲。本项目所使用的 STM32F103C8T6 最多可提供 3 路串口,有分数波特率发生器、支持同步单线通信和半双工单线通讯、支持 LIN、 支持调制解调...
  • DevinTT
  • DevinTT
  • 2015年07月22日 09:36
  • 4238

STM32的USART1程序

  • 2012年05月08日 11:08
  • 2.5MB
  • 下载

基于STM32的USART串口通信程序

  • 2013年12月16日 21:37
  • 2.81MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:STM32 USART中断小程序
举报原因:
原因补充:

(最多只允许输入30个字)