- 博客(34)
- 收藏
- 关注
原创 如何判断一个无符号32位整数是不是2的整数次幂?
分析:2的整数次幂数字的特点是,二进制形式只有1个1,比如:2: 10 4: 100 8: 1000 16: 10000…
2024-03-01 15:47:30
455
原创 PID控制算法,带C语言源码实现
PID即:Proportional(比例)、Integral(积分)、Differential(微分)的缩写。PID控制算法是结合比例、积分和微分三种环节于一体的控制算法。PID算法是连续系统中技术最为成熟、应用最为广泛的一种控制算法。PID控制算法出现于20世纪30至40年代,适用于对被控对象模型了解不清楚的场合。实际运行的经验和理论的分析都表明,运用这种控制规律对许多工业过程进行控制时,都能得到比较满意的效果。
2024-01-25 13:00:00
7241
1
原创 keil出现 Error - Flash Download failed - “Cortex-M3”解决办法
keil出现 Error - Flash Download failed - “Cortex-M3”解决办法
2024-01-23 14:52:30
1726
1
原创 15 STM32 - SPI
SPI ,英文 Serial Peripheral Interface的缩写,是串行外围设备接口。SPI是一种高速,全双工,同步的通信总线。SPI通信只占用四根线(MISO,MOSI,CLK和CS),节约了芯片管脚和PCB的布局省空间。SPI 优点:支持全双工;支持高速(100MHz以上);协议支持字长不限于8bits,可根据应用特点灵活选择消息字长;硬件连接简单;缺点:相比IIC多两根线;没有寻址机制,只能靠片选选择不同设备;
2024-01-20 13:45:49
489
原创 13 STM32-随机数发生器 (RNG)
RNG 处理器是一个以连续模拟噪声为基础的随机数发生器,在主机读数时提供一个 32 位的随机数.RNG 提供由模拟量发生器产生的 32 位随机数,两个连续随机数的间隔为 40 个 PLL48CLK 时钟信号周期。
2024-01-18 17:37:03
954
原创 14 STM32 - IIC (时序图+软件源码)
IIC(Inter-Integrated Circuit),中文集成电路总线,是一种串行通信总线,使用多主从架构。I2C串行总线一般有两根信号线,一根是双向的数据线SDA,另一根是时钟线SCL。所有接到I2C总线设备上的串行数据SDA都接到总线的SDA上,各设备的时钟线SCL接到总线的SCL上。主设备通过两个IO口便可以访问许多设备,因此可以节约IO口。IIC主从之间只有一根数据线,可以收数据,也可以发数据,但是不能同时收发,因此IIC属于半双工的通信模式。
2024-01-18 17:18:20
1167
原创 09 STM32 - PWM
脉冲宽度调制(Pulse Width Modulation,简称PWM),是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。简单一点,就是对脉冲宽度的控制。
2024-01-18 15:17:17
920
原创 06 FreeRTOS - 常用调试函数(二) vTaskGetInfo()
FreeRTOS - 常用调试函数(二) vTaskGetInfo()
2024-01-18 09:33:08
772
原创 05 FreeRTOS - 常用调试函数 uxTaskGetNumberOfTasks
uxTaskGetSystemState 函数,用来获取任务信息, 函数可以获得的任务信息如下结构体所示。TaskStatus_t 结构体,用来记录任务的信息。
2024-01-17 20:15:00
582
原创 GD32C103的芯片,PA15与PB4这两个引脚一直保持低高电平,无法拉低的问题。
GD32C103的芯片,PA15与PB4这两个引脚一直保持低高电平,无法拉低的问题处理
2024-01-13 14:14:54
1185
2
原创 12 STM32 - 窗口看门狗
窗口看门狗(Window Watchdog, WWDG)是F4芯片上的另外一个看门狗,通常用来监测由外部干扰或不可预见的应用程序软件故障。这种机制能够确保系统的稳定性和可靠性,避免由于系统崩溃或死机等问题对整个系统造成的影响。窗口看门狗,之所以称为窗口,是因为其喂狗时间是一个有上下限的范围内,可以通过设定相关寄存器,设定其上限时间和下限时间:喂狗的时间不能过早也不能过晚。过早喂狗或过晚喂狗都会导致系统重启。
2024-01-13 10:39:24
457
原创 11 STM32-独立看门狗
看门狗(Watchdog)就是MCU上的一种特殊的定时器,用于监视系统的运行。在程序正常运行时,定时喂狗,修改计数器的值,保证递减计数器值大于0;在程序发生错误(例如程序出现死循环)时,无法喂狗,独立看门狗作为一个自由运行递减计数器,当递减计数器值达到 0x000 时,软件自动复位。这种机制能够确保系统的稳定性和可靠性,避免由于系统崩溃或死机等问题对整个系统造成的影响。
2024-01-11 20:27:15
399
原创 10 STM32 - DMA
直接存储器访问,Direct Memory Access,简称MDA。DMA 传输方式无需 CPU 直接控制传输,也没有中断处理方式那样保留现场和恢复现场的过程,通过硬件为 RAM 与 I/O 设备开辟一条直接传送数据的通路,目的是提升CPU的效率。
2024-01-10 17:28:31
423
原创 09 STM32 - PWM
脉冲宽度调制(Pulse Width Modulation,简称PWM),是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。简单一点,就是对脉冲宽度的控制。
2024-01-09 19:30:00
393
原创 00 FreeRTOS初探
FreeRTOS是一个迷你的实时操作系统内核,作为一个轻量级的操作系统,功能包括任务管理,时间管理,信号量,消息队列,内存管理,记录功能,软件定时器,协程等,可基本满足较小系统的需要。
2024-01-08 20:14:31
408
原创 06 STM32F4-ADC
ADC,Analog-to-Digital Converter的缩写,指模数转换器。是指将连续变化的模拟信号转换为离散的数字信号。STM32F4的ADC可以设置为6位,8位,12位的模式,位数越高,分辨率越高。
2024-01-06 15:48:22
505
原创 05 STM32F4-外部中断(EXIT)
外部中断是单片机实时处理外部突发事情的一种机制,当发生外部中断后,CPU暂停正在执行的程序,去进行中断事件的处理;中断处理完毕后.又返回被中断的程序处,继续执行下去。STM32F4 的每个 IO 都可以作为外部中断的中断输入口。STM32F407 的中断控制器支持 22个外部中断/事件请求。每个中断设有状态位,每个中断/事件都有独立的触发和屏蔽设置。EXTI 线 0~15:对应外部 IO 口的输入中断。EXTI 线 16:连接到 PVD 输出。EXTI 线 17:连接到 RTC 闹钟事件。
2024-01-05 09:39:31
484
原创 04 嵌套向量中断控制器 (NVIC)
组号 0 : 子优先级 4 位, 抢占优先级 0 位 (最大优先级1,最大子优先级16)组号 1 : 子优先级 3 位, 抢占优先级 1 位(最大优先级2,最大子优先级8)组号 2 : 子优先级 2 位, 抢占优先级 2 位(最大优先级4,最大子优先级4)组号 3 : 子优先级 1 位, 抢占优先级 3 位(最大优先级8,最大子优先级2)组号 4 : 子优先级 0 位, 抢占优先级 4 位(最大优先级16,无子优先级)2 16 个可编程优先级(使用了 4 位中断优先级)
2024-01-04 11:43:45
400
原创 03 UART
USART(通用同步异步收发器 ) ,是串口的一种,IIC,SPI等也属于串口。STM32单片机的 USART支持多种波特率。并且可以配置多个缓冲区使用 DMA 可实现高速数据通信。
2024-01-03 16:19:59
411
原创 02 定时器
16 位可编程(可以实时修改)预分频器(TIMx_PSC),计数器时钟频率的分频系数为 1~65535 之间的任意数值。4 可使用外部信号(TIMx_ETR)控制定时器和定时器互连(可以用 1 个定时器控制另外一个定时器)的同步电路。16 位/32 位(仅 TIM2 和 TIM5)向上、向下、向上/向下自动装载计数器(TIMx_CNT),2.2 通用定时功能初始化代码:(STM32F4,168M主频)注:TIM9~TIM14 只支持向上(递增)计数方式。4 个独立通道(TIMx_CH1。
2024-01-02 18:06:51
395
原创 01 GPIO
每个IO端口包括4个32位配置寄存器: GPIOx_MODER、GPIOx_OTYPER、2个32位数据寄存器: GPIOx_IDR、GPIOx_ODR1个32位置位/复位寄存器:GPIOx_BSRR复位置位寄存器特点:只有写入1才会对该位有效,写0不影响原来电平1个32位锁定寄存器:GPIOx_LCKR2个32位复用功能选择寄存器:GPIOx_AFRH、GPIOx_AFRL。
2024-01-02 11:39:01
347
原创 00 STM32初探
Cortex-M3采用ARMv7-M架构,Cortex-M0采用ARMv6-M架构,Cortex-A5/A8采用ARMv7-A架构, 传统的ARM7系列采用的是ARMv4T架构。基于ARM内核的32位MCU,内核为ARM公司为要求高性能、低成本、低功耗的嵌入式应用专门设计的Cortex-M内核。6)强大的用户基础:最先成功试水CM4芯片的公司,积累了大批的用户群体,为其领先做铺垫。2)丰富合理的外设,合理的功耗,合理的价格。1)极高的性能: 主流的Cortex内核。3)强大的软件支持:丰富的软件包。
2024-01-02 09:13:43
346
10 STM32F4 - 串口DMA
2024-01-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人