STM32中断与DMA通信编程

实验任务:

1. 用stm32F103核心板的GPIOA端一管脚接一个LED,GPIOB端口一引脚接一个开关(用杜邦线模拟代替)。采用中断模式编程,当开关接高电平时,LED亮灯;接低电平时,LED灭灯。

2. 采用串口中断方式重做上周的串口通信作业。

3. STM32采用串口DMA方式,用115200bps或更高速率向上位机连续发送数据。

实验过程:

首先,打开stm32CubeMX,选择芯片stm32F103C8,如下图所示

在这里插入图片描述

 ①时钟RCC配置
将HSE选为外部晶振模式;

在这里插入图片描述

②管脚配置
根据题目中的功能,这里选择PA5作为LED灯的连接管脚,PB9 作为杜邦线(等价于开关)的连接管脚;
具体配置是:左击PA5端口选择GPIO_Output模式;

在这里插入图片描述

 ③sys配置
点击右侧“SYS”,在Debug调试界面下选择Serial Wire模式;

 在这里插入图片描述

④GPIO配置
点击左侧GPIO,PA5是高电平触发,所以不需要改变设置,这里将该管脚的名字改成了“A5_LED”,但PB5需要重新配置;
首先,选中PB5,将GPIO Mode设置为下降沿触发外部中断;
将GPIO Pull-up/Pull-down设置为上拉电阻模式;
将User Label设置为B9_EXTI,如下图;

在这里插入图片描述

 ⑤NVIC配置
点击左侧NVIC,勾选EXTI line[9:5]interrupts,表示能够中断;

在这里插入图片描述

⑥时钟树配置
点击Clock Configuration,将时钟树配置为72MHZ,点击回车即可;

在这里插入图片描述

3)工程导出

点击Project Manager,首先设置工程名和路径以及导出方式;

然后点击右侧Code Generator,进行工程文件设置,具体勾选如下:

在这里插入图片描述

 进行完上述步骤后,就可以进行上图的第四步导出工程了,导出后选择打开工程即可在Keil中打开该工程;

工程打开后如下图所示:

在这里插入图片描述

 

 在这里插入图片描述

 编译显示没有错误;

在这里插入图片描述

电路连接与之前博客的连接方式相同,只需要更改led灯的端口和杜邦线(代替开关)的端口即可;

 首先,打开烧录软件mcuisp,将USB-TTL串口接入电脑,点击搜索串口即可看到接入的USB串口,然后将传输速率设置115200bit/s;
接下来,找到刚刚在keil中生成的HEX文件,点击“读器件信息”,右侧状态栏里显示一切正常后,就可以点击“开始编程”进行烧录了;

在这里插入图片描述

结果展示:

 因为PB9设置的是下降沿触发中断,以及上拉电阻Pull-up模式,所以PB9接地,LED灯亮,不接地,LED灯不亮;(展示时需要就BOOT0和BOOT1都置零)

在这里插入图片描述

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值