0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

STM32入门编程总结4 (中断+串口)

piaofengzai 来源:piaofengzai 作者:piaofengzai 2022-02-19 22:12 次阅读

STM32入门编程总结4(中断+串口)

系统异常中断与外部中断统称为中断,复位中断的优先级最高,

NVIC(NestedVectored Interrupt Controller)嵌套向量中断控制器,调整各个中断的优先级,

中断优先级 =抢占优先级(1-4bit)+子优先级(0、1)如果两个中断的抢占优先级与子优先级参数一致,则按照中断向量表里的顺序区分优先级。GPIO的中断,EXTI(External interrupt/event controller)外部中断/事件(event)控制器,外部中断为用户自定义中断内容(用户编写程序发生中断后要干啥事儿),外部事件为具体对应外设自动执行,EXTI 0-15总共16个,GPIO A-G当中的pin尾数与EXTI尾数对应,

例如: GPIOA_Pin_0、GPIOB_Pin_0都对应 EXTI 0;

GPIOA_Pin_1、GPIOB_Pin_1都对应EXTI 1;

中断内部的程序尽量简单(只改个标志位值flag啥的),处理函数放在主函数比较稳妥,中断占用太多资源,则其他中断就歇菜了。假设主函数要处理的问题需要对应的技能类似于孙悟空的72变,那么中断要处理的棘手问题需要对应的技能类似于观音给予孙悟空的三根毫毛,别没啥事儿瞎用。

串口&电平.png

串口分类及电平都在右侧了。

串口助手用:Mobaxterm,

在STM32项目里,Keil Options forTarget里勾选右侧 Use Micro LIB,

添加如下代码就可以在Keil里使用printf函数了。

代码:

#include "stdio.h" //标准输入输出头文件

int fputc(int ch, FILE *f) //写字符文件函数

{

HAL_UART_Transmit(&huart1, (uint8_t*)&ch, 1, 10);

return ch;

}

int fgetc(FILE *f) //读字符文件函数

{

uint8_t ch = 0;

HAL_UART_Receive(&huart1, (uint8_t*)&ch, 1, 10);

return (int)ch;

}

//添加以上代码 + √选 UseMicro LIB 后,就可以调用printf函数

审核编辑:符乾江

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6030

    文章

    44487

    浏览量

    631863
  • STM32
    +关注

    关注

    2264

    文章

    10854

    浏览量

    354230
  • 编程
    +关注

    关注

    88

    文章

    3559

    浏览量

    93533
收藏 人收藏

    评论

    相关推荐

    stm32怎样触发软件中断

    了解STM32中断系统 STM32微控制器具有丰富的中断系统,包括NVIC(嵌套向量中断控制器)和SYSTICK定时器。NVIC可以处理多达
    的头像 发表于 09-02 09:32 502次阅读

    stm32串口烧录怎么设置

    准备工作 确保您拥有STM32开发板和相应的硬件设备,如USB转串口模块。 安装STM32CubeMX和STM32CubeProgrammer软件,这些是ST官方提供的工具,用于配置和
    的头像 发表于 08-22 09:33 1048次阅读

    移植stm32f4Discovery的usb虚拟串口程序到rtthread, 运行时出现USBD_OTG_ISR_Handler()中断函数溢出的原因?

    移植stm32f4Discovery的usb 虚拟串口程序到rtthread, 运行时出现 USBD_OTG_ISR_Handler()中断函数溢出。 中断函数不是任务,不知道在哪里
    发表于 04-29 09:07

    STM32 HAL串口接收中断突然失效的原因?

    STM32 HAL 串口接收中断突然失效
    发表于 04-08 06:40

    STM32F030F4串口空闲中断接收不定长数据,发生中断后不知道如何计算接收到的字节数?

    我用STM32F030F4串口空闲中断接收不定长数据,发生中断后不知道怎样计算接收到的字节数。
    发表于 04-03 07:12

    stm32串口接收中断触发原理

    配置串口接收中断使能:在初始化串口时,需要设置相应的控制寄存器来使能串口接收中断。这通常可以通过设置相应的标志位或使用特定的寄存器位来完成。
    发表于 01-17 15:42 7648次阅读
    <b class='flag-5'>stm32</b><b class='flag-5'>串口</b>接收<b class='flag-5'>中断</b>触发原理

    单片机编程实例总结

    单片机编程实例总结
    的头像 发表于 01-16 09:17 960次阅读

    STM32ADC中断的使用注意事项和优化建议

    STM32ADC中断的使用注意事项和优化建议 STM32ADC(模拟数字转换器)是STMicroelectronics开发的一款用于外部模拟信号转换为数字信号的器件。在使用STM32A
    的头像 发表于 01-12 15:17 3005次阅读

    stm32怎么读取串口发来的指令

    读取串口发来的指令是嵌入式系统中一项常见的任务,特别是在与外部设备进行通信时。在STM32系列微控制器中,提供了多个串口接口(USART、UART等),可以用于读取和处理串口接收到的数
    的头像 发表于 01-07 17:08 2561次阅读

    stm32中断怎么处理的

    STM32是一款非常强大的微控制器系列,具有丰富的外设和功能。中断STM32中非常重要的部分,能够帮助我们提高系统的响应速度和效率。本文将详细介绍STM32
    的头像 发表于 01-02 17:35 2387次阅读

    stm32虚拟串口接收的数据处理

    ,我们需要了解虚拟串口的工作原理。虚拟串口是通过软件模拟的串口,数据通过USB端口传输。在STM32中,我们可以使用USB CDC(Communication Device Class
    的头像 发表于 12-20 11:22 2129次阅读

    STM32CubeMX的外部中断的使用

    库的中断处理较为复杂:startup_stm32f103xb.s通过汇编注册了中断处理函数EXTI1_IRQHandler(),在stm32f1xx_it.c中,
    的头像 发表于 11-26 08:00 800次阅读
    <b class='flag-5'>STM32</b>CubeMX的外部<b class='flag-5'>中断</b>的使用

    RT-Thread Nano入门串口接收与消息队列

    本文主要介绍怎么用RT-Thread Nano的消息队列方式实现串口数据接收,结合串口接收中断和空闲中断,接收上位机发来的一帧数据。
    的头像 发表于 11-22 11:07 3685次阅读
    RT-Thread Nano<b class='flag-5'>入门</b>:<b class='flag-5'>串口</b>接收与消息队列

    如何通过配置串口的接收作为中断

    使用中断 通过配置串口的接收作为中断源,开启中断输出控制,配置NVIC。开启中断通道。 //开启中断
    的头像 发表于 11-10 16:33 512次阅读
    如何通过配置<b class='flag-5'>串口</b>的接收作为<b class='flag-5'>中断</b>源

    STM32里的串口通信

    STM32里的串口通信 在STM32里,串口通信是USART,STM32可以通过串口和其他设备进
    的头像 发表于 11-10 15:58 2894次阅读
    <b class='flag-5'>STM32</b>里的<b class='flag-5'>串口</b>通信