【STM32】基础知识 第十一课 sys, delay usart 文件夹

news2025/1/12 13:14:40

【STM32】基础知识 第十一课 sys, delay & usart 文件夹

  • sys 文件介绍
  • delay 文件夹函数简介
  • SysTick
    • SysTick 工作原理
    • SysTick 寄存器介绍
  • delay_init() 函数
  • delay_us() 函数
  • usart 文件夹介绍
    • printf 的使用
    • 常用输出控制符表
    • 常用转椅字符表
  • 半主机模式简介

sys 文件介绍

函数分类相关函数功能
中断类函数sys_nvic_set_vector_table()设置中断向量表地址
中断类函数sys_intx_enable()开启所有中断
中断类函数sys_intx_disable()关闭所有中断 (但不是包括 fault 和 NMI 中断)
低功耗类函数sys_wfi_set()执行: WFI 指令进入低功耗状态)
低功耗类函数sys_standby()进入待机模式
低功耗类函数sys_soft_reset()系统软复位
设置栈顶地址函数sys_msr_msp()设置栈顶地址
系统时钟初始化函数sys_stm32_clock_init()设置系统时钟
Cache 配置函数 (F7/H7)sys_cache_enable()使能 I-Cache 和 D-Cache, 开启 D-Cache 强制透写

STM32 sys文件

delay 文件夹函数简介

函数分类相关函数功能
使用 OS
不使用 OSdelay_init()初始化系统滴答定时器
不使用 OSdelay_ms()用微秒延时函数实现毫秒延时

SysTick

SysTick 工作原理

SysTick, 即系统滴答定时器, 包含在 M3/4/7 内核里面, 核心是一个 24 位的递减计数器.

STM32 SysTick

SysTick 寄存器介绍

SysTick 控制及状态寄存器 (CTRL)

位段名称类型复位值描述
16COUTFLAGRO如果在上次读取本寄存器后, SysTick 已经数到了 0, 则该位为 1, 如果读取该位, 该位将自动清零
2CKSOURCER/W00=外部时钟源 (STCLK) 1=内核时钟 (FCLK)
1TICKINTR/W01=SysTick 倒数到 0 时产生 SysTick 异常请求 0=数到 0 时无动作
0ENABLER/W0SysTick 定时器的使能位

SysTick 重装载数值寄存器 (LOAD)

位段名称类型复位值描述
23:0RELOADR/W0当倒数至零时, 将被重装载的值

SysTick 当前数值寄存器 (VAL)

位段名称类型复位值描述
23:0CURRENTR/Wc0读取时返回当前倒计数的值, 写它则使之清零, 同时还会清除在 SysTick 控制及状态寄存器中的 COUNTFLAG 标志

delay_init() 函数

void delay_init(uint16_t sysclk)
{
	SysTick->CTRL = 0;
	HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK_DIV8);
	g_fac_us = sysclk/8;	
}

delay_us() 函数

void delay_us(uint32_t nus)
{
	uint32_t temp;
	SysTick->LOAD=nus * g_fac_us;  // 时间加载
	SysTick->VAL=0x00;   // 请口计数器
	SysTick-CTRL |= 1<<0;  // 开始倒数
	do
	{
		temp = SysTick->CTRL;
	} while((temp & 0x01) &&! (temp & (1<<16))); // CTRL.ENABLE 位必须位为 1, 并等待时间到达

	SysTick->CTRL&=~(1<<0);  // 关闭SYSTICK
	SysTick-.>VAL=0X00;  // 清空计数器
}

usart 文件夹介绍

  • printf 函数输出流程
  • printf 的使用
  • printf 函数支持

printf 的使用

格式1:

printf("字符串\r\n");

例子:

printf("Hello World!\r\n");

格式2:

printf("输出控制符", 输出参数);

例子:

uint32_t temp=10;
printf("%d\r\n", temp);  // %d是输出控制符, temp是输出参数

格式3:

printf("输出控制符", 输出参数1, 输出参数2);

例子:

uint32_t temp=10;
printf("%d\r\n", temp1, temp2); 

常用输出控制符表

控制符说明
%d按十进制整数数据的实际长度输出
%Id输出长整形数据
%mdm 为指定输出字符的宽度. 如果数据的位数小于 m, 则左端补以空格, 若大于 m, 则按实际位数输出
%c用来输出一个字符
%s用来输出字符串
%u输出无符号整数型 (unsigned)
%f输出实数, 包括单精度和双精度, 以小数形式输出
%x以十六进制形式输出整数

常用转椅字符表

控制符说明
\r回车, 将当前位置移到本行开头
\n换行, 将当前位置移到下一行
\t水平制表 (HT) (跳到下一个 TAB 位置)
\\代表一个反斜字符
代表一个单引号字符
‘’代表一个双引号字符
?代表一个问号
\0空字符 (NUL)

半主机模式简介

用于 ARM 目标的一种机制, 可将来自应用程序代码的输入/输出请求传送运行调试器的主机. 简单来说是通过仿真器实现开发板在电脑上的输入和输出.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/495101.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

浅谈Linux epoll机制

前言 概述 epoll是一种当文件描述符的内核缓冲区非空的时候&#xff0c;发出可读信号进行通知&#xff0c;当写缓冲区不满的时候&#xff0c;发出可写信号通知的机制&#xff1b; 关键函数 int epoll_create(int size);创建 eventpoll 对象&#xff0c;并将 eventpoll 对象…

Python+Yolov5墙体桥梁裂缝识别

程序示例精选 PythonYolov5墙体桥梁裂缝识别 如需安装运行环境或远程调试&#xff0c;见文章底部个人QQ名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 这篇博客针对<<PythonYolov5墙体桥梁裂缝识别>>编写代码&#xff0c;代码整洁&#xff0c;规则&am…

【安装Nginx】

Linux上安装Nginx 文章目录 Linux上安装NginxUbuntuCentOS查看已安装的软件 Ubuntu 在 Ubuntu 上安装 Nginx 非常简单。只需按照以下步骤操作&#xff1a; 打开终端&#xff0c;更新软件包索引&#xff1a; sudo apt update安装 Nginx&#xff1a; sudo apt install nginx安…

2023世界超高清视频产业发展大会博冠8K明星展品介绍

2023世界超高清视频产业发展大会博冠8K明星展品介绍&#xff1a; 一、博冠8K全画幅摄像机B1 这是一款面向广电应用的机型&#xff0c;可适配外场ENG制作轻量化需求&#xff0c;应用于8K单边机位、新闻、专题的拍摄工作&#xff0c;也可应用于体育转播、文艺节目等特殊机位及各…

使用react脚手架初始化项目

1.使用react脚手架初始化项目 1.初始化命令&#xff0c;&#xff08;create-react-app脚手架的名称&#xff0c;my-app项目名称&#xff09; npx create-react-app my-app2.初始化完成之后可以看到Happy hacking&#xff01; 3.启动项目&#xff0c;进去根目录cd my-app &am…

这才是 玩转Github 的正确姿势

这才是 玩转Github 的正确姿势 GitHub各位应该都很熟悉了&#xff0c;全球最大的开源社区&#xff0c;也是全球最大的同性交友网站~~&#xff0c;但是大部分同学使用GitHub应该就是通过别人的开源链接&#xff0c;点进去下载对应的项目&#xff0c;而真正使用Github来查找开源…

RF学习-RF基本概念

射频(RF)指的是无线波的频率在3KHZ~300GHZ&#xff1b; RF系统通常包括以下模块&#xff1a; 本振(LO)放大器(Amplifier)混频器(Mixer)滤波器(Filter)天线(Antenna) RF接收机有如下三种类型&#xff1a; 超外差式接收机(Super heterodyne structure)零中频接收机(Homodyne…

GAN与DCGAN

GAN&#xff1a;生成对抗网络&#xff0c;首先是一个生成模型&#xff0c;区别与之前的辨别模型&#xff0c;对抗体现在生成器与辨别器之间的对抗。 生成器输入的是噪音&#xff0c;通过多层的MLP可以产生图片&#xff0c;将产生的图片和真实图片输入到辨别器&#xff0c;辨别器…

AI绘画5大免费工具

AI现在最火爆的两个方向一个是以ChatGPT为主导的文本生成工具&#xff0c;还有一个就是以Midjourne为主导的文本生成图片工具。 Midjourne 现在基本是都是需要收费的&#xff0c;但确实Midjourne的效果是顶尖的&#xff0c;如果我们只是想试一下 文本生图的过程&#xff0c;这里…

【ArcGIS Pro二次开发】(26):数据筛选器

在使用【OpenItemDialog】打开数据时&#xff0c;其中一个重要的属性【Filter】&#xff0c;可用于筛选要打开的数据。示例代码如下&#xff1a; // 打开文件对话框OpenItemDialog dlg new OpenItemDialog(){Title "选择要打开的文本文件",Filter ItemFilters.Dat…

如何用ChatGPT写专业方向的科普内容?

该场景对应的关键词库&#xff08;13个&#xff09;&#xff1a; 目标用户、科普内容、生活问题、医疗类型、科普文章、病情症状、通俗性、专业名词、背景资质、权威领域、执业范围、证言人、内容形式。 提问模板&#xff08;3个&#xff09;&#xff1a; 第一步&#xff0c;…

打包工具--pyinstaller

下载库 pip install pyinstaller 打包命令 Pyinstaller -D setup.py 打包exePyinstaller -F -w run.py 不带控制台的打包Pyinstaller -F -i xx.ico setup.py 打包指定exe图标打包 ❝ -D&#xff1a;打包为一个文件夹&#xff0c;其中exe文件在文件夹内部&#xff0c;这样子单个…

更换外线和智能电表后家里用电频繁跳闸的检修

老家的电路老是跳闸。今天检修了老家的线路&#xff0c;故障就是更换了外线路后&#xff0c;家里烧水或者用电磁炉就频繁跳闸。其实也说不清楚&#xff0c;因为最近又改了智能表嘛。 到电表处观察&#xff0c;是插卡智能表&#xff0c;电表进线有个空开C63A。电表出来有个空开C…

万字长文 - Nature 综述系列 - 给生物学家的机器学习指南 4 (生物应用的挑战)...

万字长文 - Nature 综述系列 - 给生物学家的机器学习指南 1 万字长文 - Nature 综述系列 - 给生物学家的机器学习指南 2 &#xff08;传统机器学习方法如何选择&#xff09; 万字长文 - Nature 综述系列 - 给生物学家的机器学习指南 3 &#xff08;人工神经网络&#xff09; 生…

C++实践模拟(stack,queue priority_queue,仿函数)

stack和queue的实现&#xff0c;不同于vector和list那般复杂&#xff0c;如果你经历过vector和list的洗礼&#xff0c;那么当你看到stack和queue的大致实现时&#xff0c;你可能会惊叹&#xff0c;怎么能这么简洁。其原因有很多方面的&#xff0c;比如stack和queue不需要实现迭…

第11届蓝桥杯国赛真题剖析-2020年10月31日Scratch编程初中级组

[导读]&#xff1a;超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成&#xff0c;后续会不定期解读蓝桥杯真题&#xff0c;这是Scratch蓝桥杯真题解析第129讲。 第11届蓝桥杯Scratch国赛真题&#xff0c;这是2020年10月31日举办的全国总决赛&#xff0c;由于疫情影响&am…

【图像】图像格式(3) : BMP

1. 背景 BMP可以说是图像中最简单的格式了&#xff0c;没有图像压缩算法&#xff0c;基本可以看做图像的RGB裸数据加了一些基本的metadata构成。 这也导致了bmp的文件一般都是非常的大&#xff0c;除了windows原生的支持之外&#xff08;从1990年的windows3.0开始&#xff09;…

破事精英2◎爬向未来

胡强的2033未免有些过去可怕&#xff0c;海星果然又是反派。 只剩“脑子”的胡强 400百斤只剩“嘴”的庞小白 将自己身体分成一个个“方块”的苏克杰 苍蝇满天飞“衣服堆”的金若愚 “脑子”送到月球打两份工的沙乐乐 有机器人或者分身帮我们干活赚钱&#xff0c;我们去吃喝玩…

FM33A048B 红外调制

TZBRG寄存器保存一个 11 位的分频系数 X &#xff0c;其值为 0~2047 之间的任一整数。 6 路 UART 共用一个红外调制频率发生器。 红外调制频率计算公式&#xff1a; FIR FAPBCLK/ (TZBRGTZBRG 1) 红外调制的方式为&#xff1a;发送数据0 时调制红外频率&#xff0c;发送数据 1…

JavaScript实现输入两个数比较两个数的大小,输出个人信息的两个程序代码

以下为实现输入两个数比较两个数的大小&#xff0c;输出个人信息的两个程序代码和运行截图 目录 前言 一、实现输入两个数比较两个数的大小 1.1 运行流程及思想 1.2 代码段 1.3 JavaScript语句代码 1.4 运行截图 二、输出个人信息 2.1 运行流程及思想 2.2 代码段 2.3…