stm32 串口中断总结.doc

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
本文以USART1为例,叙述串口中断的编程过程。 1、先来讲述一下在应用串口中断时涉及到的一些库文件。 首先对于STM32外设库文件的应用编程,misc.c和stm32f10x_rcc.c是肯定要添加到。 接下来就是我们要用到的相关外设了。毫无疑问,串口文件stm32f10x_usart.c是必须的。串口通信是对通用GPIO端口引脚的功能复用,所以还需要stm32f10x_gpio.c文件。另外,因为有中断的产生,所以中断文件stm32f10x_it.c也是必要的,当然这个文件一般和main.c放在一个文件夹下(一般习惯为User文件夹),因为我们的中断响应函数是要在里面自己编写的。 当然还有其他的基本必须文件如系统配置文件等在这地方就不说了,这个是创建一个工程应该知道的。 2、初始化 对于串口通信的初始化,不仅仅只是对串口的初始化(这个地方是比较烦人的,不像别的芯片那样简洁明了)。 l?首先时钟使能配置。STM32内部的时钟有很多,感兴趣的自己看看参考手册。此处以USART1为例说明。有USART1时钟、GPIOA时钟、GPIO复用(AFIO)时钟。由于此处USART1和GPIOA、AFIO均在APB2上,所以可以一次配置完成。如下: RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO|RCC_APB2Periph_USART1?,ENABLE); l?其次中断配置。主要有优先级组设定、USART1中断使能、该中断的优先级,中断初始化。程序如下: void?NVIC_Configuration(void) { ??NVIC_InitTypeDef?NVIC_InitStructure; ??NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);//选择分组方式0 ?? ??/*?使能?USART1?中断?*/ ??NVIC_InitStructure.NVIC_IRQChannel?=?USART1_IRQn; ??NVIC_InitStructure.NVIC_IRQChannelSubPriority?=?0; ??NVIC_InitStructure.NVIC_IRQChannelCmd?=?ENABLE; ??NVIC_Init(NVIC_InitStructure); } l?然后GPIO复用功能配置。一般情况下我们使用原始的外设和GPIO端口引脚的映射关系,如果要改变其映射的话,请另外查看参考手册上关于GPIO重映射部分。对于GPIO的复用,其引脚的输入与输出模式都有要求,在参考手册上有详细说明。 void?GPIO_Configuration(void) { ??GPIO_InitTypeDef?GPIO_InitStructure; ??/*?配置?USART1?Rx?作为浮空输入?*/ ??GPIO_InitStructure.GPIO_Pin?=?GPIO_Pin_10; ??GPIO_InitStructure.GPIO_Mode?=?GPIO_Mode_IN_FLOATING; ??GPIO_Init(USARTy_GPIO,?GPIO_InitStructure); ??/*?配置?USART1?Tx?作为推挽输出?*/ ??GPIO_InitStructure.GPIO_Pin?=?GPIO_Pin_9; ??GPIO_InitStructure.GPIO_Speed?=?GPIO_Speed_50MHz; ??GPIO_InitStructure.GPIO_Mode?=?GPIO_Mode_AF_PP; ??GPIO_Init(USARTy_GPIO,?GPIO_InitStructure); } l?串口初始化配置。主要有串口基本参数配置(如波特率、数据位、工作方式等),串口中断使能,串口使能。 (1)?基本参数配置 USART_InitTypeDef?USART_InitStructure; USART_InitStructure.USART_BaudRate?=?9600;//波特率 USART_InitStructure.USART_WordLength?=?USART_WordLength_8b;//数据长度 USART_InitStructure.USART_StopBits?=?USART_StopBits_1;//停止位 USART_InitStructure.USART_Parity?=?USART_Parity_No;//校验 USART_InitStructure.USART_HardwareFlowControl =USART_HardwareFlowCon

文档评论(0)

2518887 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档