首页 > 其他分享 >嵌入式专题研究1:USART和中断系统

嵌入式专题研究1:USART和中断系统

时间:2023-09-22 21:44:39浏览次数:35  
标签:HAL USART 中断 专题研究 通信 嵌入式 寄存器 GPIO

USART通信

同步通信和异步通信:

同步通信:通信双方根据同步信号进行通信的方法。

异步通信:依赖于双方彼此的独立时钟,约定好通信速度。

串行通信和并行通信

寄存器介绍:

控制寄存器USART_CR:数据位,停止位,奇偶校验

波特率寄存器USART_BRR

状态寄存器USART_SR:发送寄存器和接受寄存器的状态,发送是否完成

数据寄存器USART_DR

STM32实现串口数据的收发:

先用stm32官方的配置软件

void USART_Putchar(u8 char){

  while(!(USART->SR&&(1<<7)));
    
      USART->DR = char;    
}

u8 USART_Getchar(void){

  while(!(USART->SR&&(1<<5)));
    
      return USART->DR;
     

}

 HAL库实现通信:实现fputc之后让printf变成调试利器。

中断系统

 CPU在正常执行程序的过程中,遇到外部/内部的紧急事件需要处理,暂时中止当前程序的执行,转而去处理紧急的事件,待处理完毕之后再返回被打断的程序处进行往下执行。

中断处理的过程:

1.进入中断:保存现场到堆栈中

2.处理中断

3.退出中断

NVIC的主要功能:

1.中断管理

2.支持异常以及中断向量化处理

3. 支持嵌套中断处理

中断优先级寄存器和中断优先级管理

外部中断控制器EXTI:

SYSCFG_EXTICR1-4进行外部中断配置

软件中断|外部中断

 

按键中断实例:

key连入stm32的管脚,默认高电平,按下之后为低电平——>下降沿触发中断。

按键按下之后,触发中断,在中断服务程序中打印一段话。

我没带usb to ttl模块,因此换成了触发中断后修改LED的亮灭。

void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin){
    switch(GPIO_Pin){
        case SW1_Pin:
            HAL_Delay(20);
            if(HAL_GPIO_ReadPin(SW1_GPIO_Port,SW1_Pin) == 0){   //delay 20ms to determine wheather the key is push down.
                HAL_GPIO_TogglePin(LED1_GPIO_Port,LED1_Pin);
            }
            break;
        default: break;
    }
}

 

串口中断实例:

暂时不看,应该没带模块

TRANSLATE with x English
Arabic Hebrew Polish
Bulgarian Hindi Portuguese
Catalan Hmong Daw Romanian
Chinese Simplified Hungarian Russian
Chinese Traditional Indonesian Slovak
Czech Italian Slovenian
Danish Japanese Spanish
Dutch Klingon Swedish
English Korean Thai
Estonian Latvian Turkish
Finnish Lithuanian Ukrainian
French Malay Urdu
German Maltese Vietnamese
Greek Norwegian Welsh
Haitian Creole Persian  
  TRANSLATE with COPY THE URL BELOW Back EMBED THE SNIPPET BELOW IN YOUR SITE Enable collaborative features and customize widget: Bing Webmaster Portal Back

标签:HAL,USART,中断,专题研究,通信,嵌入式,寄存器,GPIO
From: https://www.cnblogs.com/ustc2122zy/p/17713217.html

相关文章

  • STM32之USART通信
    USART通信是什么通信的目的:将一个设备的数据传送到另一个设备,扩展硬件系统通信协议:是两个(或多个)设备之间进行通信,必须要遵循的一种协议。通讯协议分为物理层和协议层。物理层:规定通讯系统中具有机械、电子功能部分的特性,确保原始数据在物理媒体的传输;协议层:规定通讯逻辑......
  • 使用Yocto进行嵌入式Linux开发3 Toaster
    3Toaster我们已经知道了如何在Poky中使用BitBake构建图像image,那么我们将学习如何使用Toaster完成同样的操作。3.1什么是Toaster?Toaster是一个用于配置和运行构建的Web接口。它与BitBake和Poky构建系统通信,以管理和收集有关构建、软件包和镜像的信息。使用Toaster的两种方法......
  • RK3568 树莓派4 嵌入式计算
    RK3568vs树莓派4:嵌入式计算的巅峰之争-知乎https://zhuanlan.zhihu.com/p/637505045▎引言嵌入式计算领域一直以来都有着激烈的竞争,RK3568和树莓派4作为两个备受瞩目的平台,引起了广泛的关注。本文将以处理器性能、扩展性、功耗和软件支持等方面对RK3568和树莓派4进行综合......
  • 嵌入式三级知识点总结最终章
    181. 操作系统为软件系统提供了多任务运行环境等等而不是板级支持包,BSP运行之前,调试工具不能够用,BSP调试分两步 最小系统和外围设备驱动程序调试。182. RAM访问速度要比ROM快很多。183. U-Boot能够支持多种体系结构的处理器但是每种结构有其自身的版本。184. VXworks(微内核)......
  • 《安富莱嵌入式周报》第301期:ThreadX老大离开微软推出PX5 RTOS第5代系统,支持回流焊的
    祝大家开工大吉视频版:https://www.bilibili.com/video/BV1GT411o7zr1、ThreadX老大离开微软,开发的第5代RTOS系统PX5RTOS正式上线最早是看到IAR的一条消息,全面支持PX5RTOS,然后就进一步上他们的官方下载白皮书了解相关消息当看到这两个名字时,很熟悉,这不就是ThreadX的老大BillLamie......
  • 《安富莱嵌入式周报》第303期:微软推出嵌入式安全物联网RTOS CHERIoT,超强的产品级开源
     更新一期视频教程:DSP视频教程第11期:插补算法,曲线拟合丝滑顺畅,统计函数和基础函数加速实现,汇集SIMD,饱和和MAC乘累加应用实战(2023-02-12)视频版:https://www.bilibili.com/video/BV17j411N7Cr/ 1、微软推出嵌入式安全物联网RTOSCHERIoT知识补充:CHERI的全称是CapabilityHardware......
  • Keil MDK6要来了,将嵌入式软件开发水平带到新高度,支持跨平台(2023-03-11)
    注:这个是MDK6,不是MDK5AC6,属于下一代MDK视频版:https://www.bilibili.com/video/BV16s4y157WF一年一度的全球顶级嵌入式会展EmbeddedWorld2023上,MDK6将展示预览版效果,本月14号-16号,也就是下周二到下周四,为期三天,在德国纽伦堡举办。 重大更新主要如下1、支持跨平台,Windows,Linu......
  • 《安富莱嵌入式周报》第306期:开源独轮车,Cortex-M85修订版r1发布,Terathon图形数学库,不
     视频版:https://www.bilibili.com/video/BV1TT411Y7fq1、Terathon数学库,支持2D/3D/4D矢量,矩阵,四元函数和几何代数https://github.com/EricLengyel/Terathon-Math-LibraryTerathon-Math-Library-main.zip(100.4KB)作者主要是做游戏引擎和计算机图形开发,这里分享的库也是图形方面,......
  • 《安富莱嵌入式周报》第308期:开源带软硬件安全认证的PLC设计,开源功率计,可靠PID实现,PR2
     视频版:https://www.bilibili.com/video/BV1F24y157QE1、ST发布安全认证版PLC设计套件https://www.st.com/en/evaluation-tools/steval-silplc01.html含原理图(新的手册里面把原理图撤掉了):steval-silplc01+(2).pdf(502.71KB)硬件方面的安全认证正进行中,满足SIL2等级。随机故障......
  • 《安富莱嵌入式周报》第307期:开源智能制冷板,Keil MDK6发布时间,编程助手Github Copilot
     视频版:https://www.bilibili.com/video/BV1fV4y1X7sk 1、KeilMDK6最终定于2023年末发布https://www.keil.com/pr/article/1302.htmMDK6的发布消息最终尘埃落定,定于2023年末发布。相比现在的MDK,主要是集成了功能安全库及其编译器,KeilStudio桌面版,跨平台支持。2、开源智能冷却板......