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函数

审核编辑:符乾江

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

    关注

    6044

    文章

    44632

    浏览量

    639394
  • STM32
    +关注

    关注

    2274

    文章

    10929

    浏览量

    358012
  • 编程
    +关注

    关注

    88

    文章

    3642

    浏览量

    94093
收藏 人收藏

    评论

    相关推荐

    串口中断是内部中断还是外部中断串口中断是怎么触发的

    串口中断通常被视为外部中断。虽然串口控制器(如USART、UART等)可能集成在微控制器或处理器的内部,但从中断的角度来看,串口中断是由处理
    的头像 发表于 01-29 15:03 226次阅读

    串口中断需要清除标志位吗,串口中断标志位会自动清除吗

    在电子通信领域,串口中断作为一种重要的通信机制,广泛应用于各种嵌入式系统和计算机设备中。串口中断标志位的管理,尤其是是否需要手动清除以及是否会自动清除,是理解和实现串口通信的关键环节。
    的头像 发表于 01-29 14:59 184次阅读

    串口中断有什么用,串口中断的触发条件是什么

    在现代电子通信系统中,串口中断作为一种高效的数据处理机制,扮演着至关重要的角色。它允许处理器在数据到达或发送完成时立即响应,从而提高系统的响应速度和效率。
    的头像 发表于 01-29 14:56 165次阅读

    如何快速入门HAL库编程 HAL库与裸机编程的比较

    如何快速入门HAL库编程 要快速入门HAL库编程,可以遵循以下步骤: 了解基础知识 : 掌握C语言编程基础,包括变量、数据类型、函数、指针等
    的头像 发表于 12-02 11:39 495次阅读

    stm32 GPIO中断配置教程

    在嵌入式开发中,STM32微控制器因其高性能和丰富的外设而广受欢迎。GPIO(通用输入/输出)中断STM32微控制器中常用的功能之一,它允许开发者在特定引脚上检测到外部信号变化时快速响应。 1.
    的头像 发表于 11-19 15:53 1417次阅读

    socket 编程基础入门

    Socket 编程基础入门 在计算机网络中,Socket 是一个抽象层,它将网络通信的细节隐藏起来,为开发者提供了一个简单的接口来发送和接收数据。Socket 编程是网络编程的基础,它
    的头像 发表于 11-12 14:03 455次阅读

    stm32怎样触发软件中断

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

    stm32串口烧录怎么设置

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

    stm32的modbus.c文件,如何触发串口发送中断?

    ModRcv(void);//modbus信息接收,放在串口接收中断 3.void ModSend(void);//modbus信息接收,放在串口接收中断 函数1和2很好理解.3就
    发表于 05-10 06:50

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

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

    STM32F030CCT6调5个串口,UART2,3,5进不了接收中断怎么解决?

    最近在调试STM32F030CCT6,需要用到5个串口,使用STM32CubeMX创建的工程,使用中断接收和中断发送的处理方式。但是调试发现
    发表于 04-15 06:36

    求助,如何解决串口ORE中断问题?

    使用STM32F1做串口通信测试,想试一下在921600波特率下通信是否稳定,stm32cubemx自动生成代码,开启了两个中断,一个定时器Tim2(每1ms
    发表于 04-09 06:46

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

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

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

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

    stm32G070串口设置外部中断触发退出低功耗后重新变为串口串口发送后退出低功耗为什么会卡死?

    stm32G070低功耗STOP模式外部中断唤醒,串口设置外部中断触发退出低功耗后重新变为串口串口
    发表于 03-20 07:24