自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 FreeRTOS的疑问与思考

在由CubeMX生成的基于HAL库的stm32历程中移植freertos,HAL_Delay()可以用,因为在创建工程时已经修改了时基。在标准库的stm32历程中移植freertos,不能使用基于systic定时器写的Delay函数,要用freertos自带的延时函数。

2024-04-01 21:08:08 314

原创 【STM32】ST-LINK 下载时遇到的问题

如果出现“ST-Link USB communication error”ST-Link USB通信错误,则需要启动STM32 ST-LINK Utility,点击【ST-LINK】->【Firmaware】更新固件,然后打开Kei,点击魔术棒->->Debug->Settings,开到出现类似“0x2BA0 . . . ARM CoreSight SW-DP”显示,说明连接成功。

2024-04-01 12:02:34 549

原创 STM32(19)I2C模块 主机发数据

发送数据:等待空闲:发送起始位:发送地址:

2024-03-06 20:28:49 371

原创 STM32(18)I2C

SCL高电平时,采集数据,SDA上的电平不允许变化;SCL低电平时,SDA可电平变化。一个设备就需要一个串口,单片机可能没有那么多串口外设。每个从机都有7位地址,最后移位是读(1)/写(0)位。主机:负责管理总线,可控制波特率、数据的通信方向。线与:通过硬件电路实现逻辑与的操作。波特率:由主机产生波特率信号。

2024-03-06 19:31:11 395

原创 STM32(17)stm32从电脑接收数据

2024-03-04 20:03:53 191

原创 STM32(16)使用串口向电脑发送数据

字符串在电脑中以字符数组的形式存储。

2024-03-04 19:51:31 1140

原创 STM32(15)USART编程

c8t6手册里面写了,usart最大支持4.5MHz,所以选10。使用USART实现STM32与电脑之间的通信。闭合总开关,外部时钟才会传输到分频器。重映射时记得开启AFIO的时钟。中介:USB转TTL模块。

2024-03-04 19:32:01 511

原创 STM32(14)USART

过载错,没有及时的读数据,导致接收方的移位数据寄存器中的数据被后来的数据覆盖,则ORE为1。错误标志位指示的是当前在RDR寄存器里的数据的错误情况,第三步把数据读出来后,标志位会清空。数据接收方会采集码元,过采样的方式采集,以16倍的波特率采集,三次采的都是1则1,通过查询SR(状态寄存器) 可知数据有没有发完,有没有接收到数据等。TC=1,则两个寄存器都为空,表明数据发完了。TXE=1,则TDR寄存器为空,可以写。有数据时,要赶紧读RDR里的数据。错误标志位只对数据的接收方有效。BPR(波特率寄存器)

2024-03-04 16:10:03 585

原创 STM32(13)串口

流控:防止发送方发送数据过快,接收方可给一个反馈信号,反馈信号就是流控信号,这种控制方式就叫流控。为了验证数据传输是否出错而设立的比特位。根据1的个数,校验位会自己补0或1。每一个高低电平就是一个码元。收发双方要采用相同的波特率。4.校验位(可有可无)1和4传输方式比较常见。CTS:接收反馈信号。RTS:发送反馈信号。

2024-03-04 14:17:51 410

原创 STM32(12)裸机多任务

按键控制LED的闪烁频率。

2024-03-03 19:07:03 190

原创 STM32(11)按键产生中断

2.设置AFIO(配置EXTI的引脚映射),记得开启时钟。3.配置EXTI的通道(EXTI0和EXTI1)1.初始化IO引脚,设置模式,速度等。记得清除中断源(EXTI的函数)4.1 中断优先级分组。在中断向量表里找函数名。5.编写中断响应函数。

2024-03-03 11:53:31 386

原创 STM32(10)EXTI编程

2024-03-03 11:00:40 142

原创 STM32(9)EXTI

每个寄存器都是20个比特位,对应EXTI的20路通道,如这6个寄存器的最左边就都是对应通道1的。

2024-03-03 10:44:11 490

原创 STM32(8)NVIC编程

NVIC不需要开启时钟,因为NVIC模块位于内核内部,芯片一上电就能工作。中断响应函数的函数名要用已给定的名字。GPIO和AFIO不能产生中断源。中断源由部分片上外设产生。在misc.h中找,杂项。中断向量表在启动文件中。

2024-03-03 10:23:35 304

原创 STM32(7)NVIC

1. NVIC1.1 NVIC简介1.2 中断协作模型1.3 NVIC的内部结构1.4 中断向量表1.4.2 在参考手册中查阅中断向量表

2024-03-02 22:13:22 338

原创 STM32(6)中断

用数字的大小表示中断优先级的高低,数字的范围:0000--1111(二进制),即0-15,共16级优先级。进一步对这4位二进制数进行划分,可将高位表示为抢占优先级,低位可表示为子优先级。抢占优先级可以管理中断的嵌套,子优先级只能管理中断的排队。

2024-03-02 21:51:25 401

原创 STM32(5) GPIO(2)输出

要想点亮LED,有两种接法推挽接法:向寄存器写1,引脚输出高电平,LED点亮;向寄存器写0,引脚输出低电平,LED熄灭。开漏接法:向寄存器写0,引脚输出低电平,LED点亮;向寄存器写1,LED熄灭。

2024-03-01 20:49:25 521

原创 STM32 (4) GPIO(1)

说明:例如想同时使用STM32的串口1和定时器1,但用到的IO口都是PA9和PA10,就可用重映射将串口1的引脚引到PB6和PB7,这样同时使用两个外设时,引脚就不会冲突了。PA9和PA10既可以用于GPIO的引脚,也可以用于串口或定时器的引脚。复用功能:CPU通过片上外设间接控制IO引脚(如串口,定时器)通用:CPU直接控制IO引脚的输入输出(如GPIO)将某个片上外设的复用功能移动到其他IO引脚上。

2024-03-01 13:39:19 487

原创 STM32 (3)

1.STM32最小系统板2.启动模式

2024-02-29 20:38:52 261

原创 STM32 (2)

将C语言程序烧录到芯片中会存储在单片机的flsah存储器中,给芯片上电后,Flash中的程序会逐条进入到CPU中去执行,进而CPU去控制各种模块去实现各种功能。

2024-02-29 20:23:16 458

原创 STM32 (1)

stm32是由ST公司生产的一种32位微控制器(单片机)。

2024-02-29 20:05:40 1046

原创 C语言(11) 指针

指针是什么:1. 指针是内存中一个最小单元的编号,也就是地址2. 平时口语中说的指针,通常指的是指针变量,是用来存放内存地址的变量总结:指针就是地址,口语中说的指针通常指的是指针变量。指针变量,用来存放地址的变量。(存放在指针中的值都被当成地址处理)。对于32位的机器,假设有32根地址线,那么假设每根地址线在寻址的时候产生高电平(高电压)和低电 平(低电压)就是(1或者0);这里就有2的32次方个地址。

2024-01-28 11:17:33 516

原创 C语言(10) 操作符

单目:只有一个操作数&:取地址操作符取出的是变量在内存中的起始地址sizeof:计算变量(类型所创建的变量)占据空间的大小sizeof是操作符,不是函数;strlen是库函数,用来求字符串长度前置++:先++,后使用int a = 3;int b =a++;//等价于a = a + 1;b = a;后置++:先使用,再++

2024-01-26 20:50:42 823

原创 C语言(9)数组

数组是一组相同类型元素的集合。注:在C99标准之前,数组的大小必须是常量或常量表达式,在C99之后,数组的大小可以是变量,为了支持变长数组。

2024-01-22 20:08:35 1158

原创 C语言(8) 函数

自定义函数和库函数一样,有函数名,返回值类型和函数参数。但是不一样的是这些都是我们自己来设计。返回类型由需要函数返回的值的类型来确定,返回一个整型就用int来定义函数,返回字符就用char,无返回值就用void。通过函数的形式,比较两个输入数的大小,如下:执行过程:从main开始;输入两个值a和b,调用函数,将a和b传给函数,函数中用x和y来接收,函数执行,返回一定的值,将这个返回值传给m,输出m的值。1. 告诉编译器有一个函数叫什么,参数是什么,返回类型是什么。但是具体是不是存在,函数声明决定不了。

2024-01-21 18:29:00 1017 1

原创 C语言(7)循环语句

循环语句主要有:while语句for语句do while语句。

2024-01-12 21:06:17 1048 1

原创 C语言(6)分支语句

C语言是【结构化】的程序设计语言:顺序结构,选择结构,循环结构C语句可分为以下五类: 1. 表达式语句 2. 函数调用语句 3. 控制语句 4. 复合语句 5. 空语句控制语句用于控制程序的执行流程,以实现程序的各种结构方式,它们由特定的语句定义符组成,C语 言有九种控制语句。可分成以下三类: 1. 条件判断语句也叫分支语句(选择结构):if语句、switch语句;2. 循环执行语句(循环结构):do while语句、while语句、for语句;

2024-01-12 13:06:40 1035 1

原创 C语言(5)

32位电脑有32根地址线,每根线都能产生0/1电平,可产生2^32个二进制序列,即2^32个编号,即2^32个字节,即4GB。

2024-01-11 22:02:43 351

原创 C语言(4)

define定义标识符常量(注:常量,在定义数组时可以使用)宏是有参数的,宏是完成替换的。

2024-01-11 16:59:09 447

原创 C语言(3)

d——打印整型%c——打印字符%s——打印字符串%f——打印float类型的数据%lf——打印double类型的数据%zu——打印sizeof的返回值数组:一组相同类型元素的集合​//定义一个整型数组,最多放10个元素// 下标: 0,1,2,3,4,5,6,7,8​这个数组中有10个元素,每个元素都是int类型的。C语言规定:数组的每个元素都有一个下标,下标从0开始。arr[8]//访问数组的第9个元素。

2024-01-10 20:20:20 903

原创 C语言(2)

此时通过#define将MAX定义为常量100,将STR定义为一个字符串“abcdef”。此时MAX和STR为常量,不能直接修改。%d用来打印数字,%s用来打印字符串。

2024-01-10 12:22:33 512

原创 C语言(1)

首先说说计算机中的单位,最小的单位是bit(比特位),其他的还有byte(字节),kb,mb,tb等,它们之间的关系是:计算机能理解的是0/1的二进制语言,0/1这个二进制数所占的空间大小即一个比特位,如1010就占用4个比特位。

2024-01-01 21:54:57 432 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除