首页 > 其他分享 >STM32F401串口2的异步发送

STM32F401串口2的异步发送

时间:2023-04-08 19:23:42浏览次数:39  
标签:异步 引脚 HSE Manual 串口 GPIO 时钟 STM32F401

本文使用Nucleo-F401RE这块板,目的是学习STM32平台上串口的使用方法。只描述如何操作寄存器以发送给定数据且不使用中断。接收数据的方法自行类比。

准备工作:

一、打开芯片的Datasheet。找到引脚功能映射表,选择要使用的串口对应的功能引脚。这里使用PA2和PA3的07号功能,即USART2-TX、RX。硬件流控和同步传输功能本文不涉及。查阅对应的GPIO和外设模块分别接在哪个总线上(我的GPIOA在AHB1,USART2在APB1)。

二、打开芯片的Reference Manual。略读RCC、GPIO和USART部分,熟悉哪部分内容分布在文档的哪个位置,以便查阅。

三、阅读板子的User Manual和原理图,确定板子上MCU的时钟输入方式和频率(我的板子上ST-LINK使用8兆赫晶振,信号经MCO引出至目标MCU)。

开始工作:

一、设定时钟来源为HSE(来自ST-LINK),AHB分频级别(我选AHB prescaler=2,此时HCLK频率变成4MHz)和外设所在总线的工作频率(我的APBx prescaler没设置,默认不分频)。注意:Reference Manual中的HSE部分已写明,如果没接晶振,而是引入外部时钟信号到输入引脚上,那么你要设置RCC寄存器中的HSE BYPASS。

二、设置GPIO对应引脚的功能号和端口速度。

三、设定你的异步传输配置:本文使用USART2、1位停止、9位数据(包括一位偶校验)、波特率2400BPS,16倍采样。根据这些预设值算出BaudRateRegister的(近似)值。

四、别忘了启用时钟和外设。

 

至于发送,参考手册上的时序图就可以了。

标签:异步,引脚,HSE,Manual,串口,GPIO,时钟,STM32F401
From: https://www.cnblogs.com/tingzhouduruo/p/stm32f4-usart2-transmission.html

相关文章

  • FP5217兼容TPS61178,内置MOS双节锂电池升压输出12V/3A异步升压芯片
    FP5217是一顆非同步电流模式DC-DC升压转换器,内置MOS,输入低启动电压2.5V与电压工作范围5V~24V,单节锂电池3V~4.2V应用,能精准地反馈电压1.2V,内置软启动时间,外部可编程工作频率,可编程电感器峰值电流限制将电阻从CSPin连接到GND。封装:TSSOP-14(EP)。应用:蓝牙音响,大功率拉杆音箱,应......
  • logback&log4j2异步日志
    Springboot项目默认使用的是logback做日志。在qps比较高的时候我们希望日志异步打印,同步打印日志可能造成打日志都影响性能。下面研究其用法。1.logback0.logback配置<?xmlversion="1.0"encoding="UTF-8"?><configuration><!---日志存放位置--><!--1.......
  • flask-day5——python项目高并发异步部署、uwsgi启动python的web项目不要使用全局变量
    目录一、python项目高并发异步部署二、uwsgi启动Python的Web项目中不要使用全局变量三、信号3.1flask信号3.2django信号四、微服务的概念五、flask-script六、sqlalchemy快速使用七、sqlalchemy快速使用4.1原生操作的快速使用八、创建操作数据表九、作业1、什么是猴子补丁,有什......
  • Java | 一分钟掌握异步编程 | 5 - CompletableFuture异步
     作者:Mars酱 声明:本文章由Mars酱编写,部分内容来源于网络,如有疑问请联系本人。 转载:欢迎转载,转载前先请联系我!前言继续讲,前面讲了Future实现异步,优点缺点也都有,这里讲使用CompletableFuture机制,目前为止,应该说JDK原生提供的异步方式的最优方案就是CompletableFuture了,已知的开源......
  • Python 异步: 常见问题 Part_1(23)
    动动发财的小手,点个赞吧!本节回答开发人员在Python中使用asyncio时提出的常见问题。1.如何停止任务?我们可以通过asyncio.Task对象上的cancel()方法取消任务。如果任务被取消,cancel()方法返回True,否则返回False。...#cancelthetaskwas_cancelled=task.cancel......
  • 异步读取raw文件下大文件的内容
    AsyncTask,异步处理,主要用于将比较耗时的操作从主线程(UI线程)中分离出来处理,提高运行速度(流畅度)。本来是要学习AsyncTask的,当看到耗时操作时就考虑到了读取大文件操作,然后自己试着读取raw文件夹下面的文件。有两种方式读取,一种是按行读取,一种是按大小读取;主......
  • 异步电机无传感器矢量控制的算法,matlab,仿真模型,采用转子磁链定向控制算法
    异步电机无传感器矢量控制的算法,matlab,仿真模型,采用转子磁链定向控制算法,转子磁链观测器采用电压模型+电流模型补偿算法。YID:8688667414516678......
  • Java | 一分钟掌握异步编程 | 3 - 线程异步
     作者:Mars酱 声明:本文章由Mars酱编写,部分内容来源于网络,如有疑问请联系本人。 转载:欢迎转载,转载前先请联系我!前言前两篇介绍了理论,这篇讲具体的实现方式。前言都是废话,直接上车~简单粗暴创建一个对象,继承Thread类,实现run函数,这个线程异步就做完了:/***@authormars酱*/publ......
  • 异步编程之事件循环机制
    JavaScript是一门单线程语言,我们可以通过异步编程的方式来实现实现类似于多线程语言的并发操作。本文着重讲解通过事件循环机制来实现多个异步操作的有序执行、并发执行;通过事件队列实现同级多个并发操作的先后执行顺序,通过微任务和宏任务的概念来讲解不同阶段任务执行的先后顺序,......
  • Python——异步编程案例
    摘要主要是讲解Python中的异步编程的下的实际的案例案例:异步操作redis案例:异步操作MySQL案例:FastAPl框架异步案例:异步爬虫课程总结......