stm32单片机基础(二)

串口通信

勾选这个,下载后立即执行
如果不勾选,则要按下复位按钮,才会显示程序运行结果。

设备管理器有com串口,但xcom找不到串口

步骤:关闭驱动强制签名
https://jingyan.baidu.com/article/a501d80c47fc73ec620f5e6d.html

在这里插入图片描述
然后关闭xcom
重新打开
在这里插入图片描述
就成功啦

usart_init已经有了NVIC优先级配置,为什么主函数里还有NVIC优先级配置

如图在这里插入图片描述
在这里插入图片描述解释
在这里插入图片描述
在这里插入图片描述

前提条件1:组别优先顺序(第0组优先级最强,第4组优先级最弱):NVIC_PriorityGroup_0>NVIC_PriorityGroup_1>NVIC_PriorityGroup_2>NVIC_PriorityGroup_3>NVIC_PriorityGroup_4
前提条件2:“组”优先级别>“抢”占优先级别>“副”优先级别
前提条件3:同一组优先级别中,不同的抢占级别之间,其中一抢占级别正在做事,另外抢占级别不能打断他;(即”同一组优先级下的中断源间,没有中断嵌套“)
前提条件4:不同组优先级别间,依据优先级强弱,优先级别高的组的中断源可以打断优先级别低的组的正在做的事情;(即:不同组优先级间,可以中断嵌套)

详情请看:https://blog.csdn.net/yx_l128125/article/details/9703843

外部中断

有关时钟复用函数AFIO

一:什么是时钟使能?

就是打开GPIO的时钟。你要用那个部位功能的时钟,就打开那个部位的时钟。
称之为时钟使能。
默认情况下是关闭了所有的时钟。

二:什么是复用?

GPIO有自己的工作模式,一旦IO口用作其他外设(比如串口,adc等) 称之为复用

三: 如何用一行代码“打开”GPIO复用?

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO|RCC_APB2Periph_USART1 ,ENABLE);

要“打开”三个地方的(时钟)开关

三: 为什么串口通信不用使能AFIO,而外部中断要使用AFIO?

串口的是默认复用功能 ,EXTI的功能都需要用到AFIO。
还有重映射到其他非默认管脚,需要使用AFIO

参考文章1:https://blog.csdn.net/u013082827/article/details/77543394

使用情况:

  1. 复用功能重映射
  2. 配置外部中断线映射
  3. 配置事件输出
    举个栗子:

需要用到外设的重映射功能时才需要使能AFIO的时钟

外部中断(EXTI)中与AFIO有关的寄存器是AFIO-EXTICR1、2、3,它们是用来选择EXTIx外部中断的输入脚之用。

举例:重映射USART2
USART2的TX/RX在PA.2/3
PA.2已经被Timer2的channel3使用
需要把USART2的TX/RX重映射到PD.5/6
库函数的调用
(1)使能被重新映射到的I/O端口时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);
(2)使能被重新映射的外设时钟
RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE);
(3)使能AFIO功能的时钟(勿忘!)
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
(4)进行重映射GPIO_PinRemapConfig(GPIO_Remap_USART2, ENABLE);

转载至:https://blog.csdn.net/dyz402026753/article/details/7350417
在这里插入图片描述

常见错误

1.h文件中报错 unterminated conditional directive的原因
在这里插入图片描述
末尾没有加#endif

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值