一个菜鸟的stm32寄存器学习笔记5_串口中断收发

上传人:wt****50 文档编号:37829200 上传时间:2018-04-23 格式:PDF 页数:5 大小:494.23KB
返回 下载 相关 举报
一个菜鸟的stm32寄存器学习笔记5_串口中断收发_第1页
第1页 / 共5页
一个菜鸟的stm32寄存器学习笔记5_串口中断收发_第2页
第2页 / 共5页
一个菜鸟的stm32寄存器学习笔记5_串口中断收发_第3页
第3页 / 共5页
一个菜鸟的stm32寄存器学习笔记5_串口中断收发_第4页
第4页 / 共5页
一个菜鸟的stm32寄存器学习笔记5_串口中断收发_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《一个菜鸟的stm32寄存器学习笔记5_串口中断收发》由会员分享,可在线阅读,更多相关《一个菜鸟的stm32寄存器学习笔记5_串口中断收发(5页珍藏版)》请在金锄头文库上搜索。

1、用串口中断来进行收发可以节约很多查询的时间。在程序中要实现串口中断收发,在串口 初始化部分的代码和查询方式的代码比多了一个接收和发送中断使能部分。其他部分还多 了中断分组,中断优先级配置和中断服务函数。 配置方法如下: 1. 中断优先级分组 SCB-AIRCR 2. 串口中断总开关使能 NVIC-ISER 3. 串口中断优先级配置 NVIC-IP37 4. 使能串口 1 时钟 RCC-APB2ENR 5. 使能串口 1 对应的引脚(PA9_RX,PA10_TX) RCC-APB2ENR 6. 配置串口 1 对应的引脚的工作模式 GPIOA-CHR 7. 复位串口 1 RCC-APB2RSTR

2、8. 停止复位串口 1 RCC-APB2RSTR 9. 配置串口 1 波特率,USART1-BRR 10. 串口功能配置。接收发送中断使能 USART1-CR1 11. 接收或者发送数据 USART1-DR 12. 进入中断服务函数处理事情,完成后清理中断标志位 这里有一部分的配置和查询方式是一样的所以就不再说明了,这里有一部分的配置和查询方式是一样的所以就不再说明了, 以以下内容就是对红色部分进行说明。下内容就是对红色部分进行说明。 第一步第一步 中断优先级分组中断优先级分组 这里优先级分组和外部中断时一样的都是组 3 SCB-AIRCR SCB-AIRCR|=0X05FA0400; 第二步

3、第二步 串口中断总开关使能串口中断总开关使能 从上图可以看出串口 1 的中断号是 37 中断使能寄存器 NVIC-ISER 数组中的一位表示一个中断号。所以 37 是在元素 1 中 也就是在 NVIC-ISER1中。ISER1表示的范围是 3263 所以 37 位于 ISER1的位 5 上 语句就是 NVIC-ISER1|=1IP 寄存器。这个寄存器有 240 个元素。每个元素表示一个中断的 优先级。这里用到的是串口 37 号中断就用 IP37. 我给串口中断分配的是抢占 1,子优先级 1 说以 IP37用二进制表示就是 001 1 0000 所以语句是 NVIC-IP37=0X30; 第四步

4、第四步 串口功能配置串口功能配置 原来串口的初始化(起始位,数据位,校验位,结束位)不变 USART1-CR1|=0X200C; /1 位停止,无校验位. 在程序初始化时先使能接收中断就好了, 发送中断在需要的时候再使能 (建议使用查询方式 发送,因为在接受中断中是不会响应发送中断的。 ) 使能接收中断只要给位 5 写 1 就可以了 USART-CR1|=1SR/123 脚置 1 发送就和原来的查询方式一样:给 USART1-DR 中写入字节,等待发送完成标志。 至此串口中断就结束了下面是我通过串口接收字符然后控制 LED 灯关灭的程序。发送K灯 亮,发送G灯灭。 #include “stm3

5、2f10x.h“ void LED_Init() RCC-APB2ENR|=1CRL/1,2,3 脚先清理 GPIOC-CRL|=0X00003330;/设置 mode1, 2, 3=11, cnf1, 2, 3=00, 通用推完输出 50mhz (每 4 位表示一个引脚配置 CRL 的 32 位标识 07 脚的配置 CRH 表示 815 脚的配置) GPIOC-BSRR=0x0000000E;/123 脚置 1 void NVIC_Init() SCB-AIRCR SCB-AIRCR|=0X05FA0400; NVIC-ISER1|=1IP37=0X30; void USART1_Init(

6、) RCC-APB2ENR|=0X4000; RCC-APB2ENR|=0X0004; GPIOA-CRH GPIOA-CRH|=0X000004B0; RCC-APB2RSTR|=0x4000; /复位串口 1 RCC-APB2RSTR/停止复位 USART1-BRR=0x1D4C; / 波特率设置 USART1-CR1|=0X200C; /1 位停止,无校验位. USART1-CR1|=0X0020; /接收中断初始化 int main() u32 x=65533600; LED_Init(); NVIC_Init(); USART1_Init(); while(1) while(x) x-; x=6553360; USART1-DR=C; while(USART1-SR/123 脚置 0 else if(USART1-DR=G) GPIOC-BSRR=0x0000000E;/123 脚置 1

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 建筑资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号