百问网七天物联网课程课后笔记(第四天)

中断部分

	Cortex-M3 中断:Cortex-M3架构,对应Cortex-M3权威指南
	Stm32f103中断:Stm32f10xx Cortex-M3编程手册

Stm32f10xx Cortex-M3编程手册 是 Cortex-M3权威指南的一个子集

STM32中断的重点是:

理解抢占优先级和子优先级
一个决定是否能中断嵌套,
一个决定响应顺序。

在这里插入图片描述抢占优先级和子优先级,它们的级数(数量),
由 优先级分组 决定 (也就是AIRCR寄存器的 Bits[7:0])

STM32只使用其中Bits[7:4],也就是一部分。

在这里插入图片描述中断设置注意事项:
通常中断优先级分组只会设置一次,设置完后,后续设置某个中断时,只需要在这个组中选择相应的抢占优先级和子优先级。
后续代码中,不应该在设置中断优先级分组,否则会导致中断顺序不按预期触发。

串口

串口传输数据的方式的两种方式:
  1. 使用 超时管理模式
    串口收发数据:HAL_UART_Receive()
    HAL_UART_Transmit()
  2. 使用 中断模式:(效率更高)
    HAL_UART_Receive_IT()
    HAL_UART_Transmit_IT()

还有一种是 DMA模式,
使用DMA自动收发数据
HAL_UART_Receive_DMA()/HAL_UART_Transmit_DMA()
DMA的目的是 减轻CPU工作量。

在一些转移数据的操作中,如果让CPU来控制,会占用大量CPU。

如果是把外设A的数据,传给外设B,这种情况其实不需要CPU一直参与,只需在A、B之间创建个通道,让它们自己传输即可,这个通道就是DMA。

启动模式

  1. 从内部flash中启动
  2. 系统内存(Isp模式)
  3. SRAM中启动
    三种启动方式,通过切换boot0和boot1的高低电平来实现。
    在这里插入图片描述

一键ISP切换电路

在这里插入图片描述mini开发板可以使用百问网提供的工具,直接进行isp下载,无需手动切换boot电平。
原理:
这里的控制BOOT0电平,是通过电脑编写的上位机,去控制串口芯片的RTS和DTR,去实现BOOT0和复位的控制。
上电后,CH340G的RTS和DTR都输出高电平。
电脑上位机软件控制DTR引脚输出低,PMOS管导通,电容C2充能,BOOT0逐渐变为高,

此时三极管Q2导通,复位拉低,MCU复位。
随后控制DTR输出高,PMOS管关闭,C2放电,BOOT1会保持一段时间高电平,

此时三极管Q2截止,RESET上拉,开发板启动,进入串口下载模式。

串口输出乱码

  1. 检查波特率
  2. 波特率没问题,检查时钟配置
  3. 中文乱码,英文不乱码,属于编码问题,可以使用vscode这类工具强制转换一下编码格式。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值