- 博客(19)
- 收藏
- 关注
原创 【项目经验】小智ai源码学习记录
这就是面向对象的编程思想,C语言没有类的概念,也就没有继承和多态,得益于esp32的高性能,可以使用C++来实现应用层代码,大大提高了开发效率和代码的复用能力,当我们需要适配自己的开发板和外设时,只需要实现对应的子类,再修改一下配置,上层的应用代码根本不需要修改。打开SDK配置编辑器,找到Xiaozhi Assistant,修改Board Type选项,我这里选择的是面包板新版接线(WiFi),对应的是BOARD_TYPE_BREAD_COMPACT_WIFI。main.cc是程序入口。
2025-07-17 17:56:21
609
原创 STM32F103ZET6移植FreeRTOSv202406.01问题记录
记录遇到的一些问题,会持续更新。当然,最简单的方法还是使用STM32CubeMX直接生成。几乎没有下面这些问题。。。
2025-06-12 12:04:09
711
原创 STM32F103 FSMC详解
FSMC(Flexible static memory controller)灵活的静态存储器控制器,从名字来看这是一个提供控制静态存储器SRAM的外设。这种通过软件的方式效率是很低的,毕竟每行代码都需要多个时钟周期去执行。而FSMC提供了一个解决方案,通过硬件来控制时序和线路。
2025-06-08 16:02:10
960
原创 STM32F103 ADC详解
ADC(Analog-to-digital converters,模数转换器)的作用是将外部的模拟信号转变为数字信号。STM32F103的ADC使用的是12位逐次逼近型的模数转换器,共有18个通道,可测量16个外部和2个内部信号。ADC框图如下:这个框图展示了ADC的18个输入源、注入组与规则组的结构、可触发的中断请求和DMA请求等。要注意的是ADC的输入范围是0~3.3V,如果超过3.3V可能会导致芯片烧毁。
2025-05-29 11:32:15
937
原创 STM32F103 RTC实时时钟详解
RTC本质是一个定时器,有后备区域,该区域用来保证持续计时,需要单独供电。当复位或唤醒后,后备区域有写保护,所以需要修改后备区域时即修改时间时,需要先取消后备区域BKP的写保护。RTC核心有两个模块,20位的预分频器与32位的可编程计数器。RTC可以产生三种中断,一般设置预分频器产生1秒的时间基准TR_CLK,通过RTC_CR寄存器设置,可以每秒产生一次秒中断。计数器有一个RTC_ALR闹钟寄存器,通过设置RTC_CR寄存器,当RTC_CNT与RTC_ALR的值匹配时,发生一次闹钟中断。
2025-05-19 13:45:04
480
原创 STM32F103 I2C详解
IIC(Inter-Integrated Circuit)是一种串行通信的总线协议。在这条总线上可以挂载多个设备,其中控制时钟信号且可收发数据的称为主设备,只能收发数据的称为从设备。在我们学习一种通信协议的时候,需要搞清除三个问题:物理接口、时序和通信过程。下面就从这三个方面来了解IIC。
2025-05-18 15:30:03
958
原创 STM32F103 通用定时器详解
为了使定时器可以与外设相互协作,在通用定时器中增加了4个通道,使用通道可以实现其他功能。比如:输出PWM、输入捕获、输出比较和单脉冲模式输出。下面就介绍一下该如何使用这些功能。
2025-04-22 11:12:08
960
原创 STM32F103 基本定时器详解
比如,预分频值设为71,那么分频后的时钟频率就是72MHz/(71+1)=1MHz,这样计数器每微秒计数一次,16位定时器的最大定时时间就能达到65.535毫秒,明显更实用。我们需要500ms的中断周期,所以我们让计数器级数5000个数就能满足要求,即需要设置自动重载寄存器的值为4999,另外还要把定时器更新中断使能位UIE置1,计数器使能位CEN也要置1。较低的预分频值则相反。是分频后的时钟,它是计数器实际的计数时钟,通过设置预分频器寄存器(TIMx_PSC)的值可以得到不同频率CK_CNT。
2025-04-17 17:30:50
1072
原创 STM32F103 独立看门狗与窗口看门狗详解
碎碎念:第一次接触看门狗时很是疑惑,这玩意为什么叫做看门狗?为什么要有看门狗?它能被用来做什么?可惜当时在课堂上并没有学到这些看似没用但实际有助于理解的内容。联系一下现实中的看门狗,正如其名,一只用来看家护院的狗娃,每当有陌生人靠近家门的时候就会旺旺叫,提醒主人有特殊情况!如此看来,我们的stm32也会遇到特殊情况,这时就需要一个看门狗来警示我们。有时我们的电子设备并不按照我们的期望去运行,而这就是特殊情况,比如有软件异常(死循环、任务阻塞等),或因外部干扰导致程序跑飞。
2025-04-16 17:31:10
1212
原创 STM32F103 中断详解
到这里,中断的流程与配置就结束了。我们来简单总结一下,将GPIO配置成中断对应的模式,初始化GPIO时HAL库会帮我们完成AFIO的配置,EXTI负责筛选中断信号并将中断信号发送给NVIC,最后由NVIC根据中断优先级来使CPU触发中断处理函数。配置GPIO配置中断优先级并使能中断实现中断处理函数。
2025-03-31 18:17:08
1120
原创 STM32F103 GPIO详解
GPIO是通用输入输出接口,负责接受外设的输入信息和输出信号给外设。STM32F103ZET6提供了七个GPIO组,即GPIOA、GPIOB、GPIOC、GPIOD、GPIOE、GPIOF 和 GPIOG。每组GPIO包含16个I/O引脚,通过修改寄存器来配置每个I/O引脚的功能。
2025-03-27 20:05:59
1153
原创 STM32启动过程分析
从注释上我们可以看到,中断向量表被映射到了0地址,也就是0x0000 0000,通过之前对启动模式的了解,我们知道0x0800 0000被映射到了0x0000 0000,所以从0x0800 0000获取到的就是__initial_sp,栈的指针。首先,开辟栈空间,代码如上图,栈的大小是0x0000 0400(1KB),AREA表示汇编一个新的代码段或者数据段,这里开辟了段名为STACK的空间,NOINIT不初始化,READWRITE可读可写,ALIGN=3即按照2^3=8字节对齐。
2025-03-14 17:24:22
629
原创 stm32F103最小系统简述
最小系统是指能让芯片工作起来的最小电路,由电源电路、晶振电路、复位电路、下载调试电路和BOOT启动电路这五个电路组成。人有不同血型,同样,一块芯片所能接受的电压也是不同的,比如stm32F103就有两种电压,3.3V和5V,如果超过响应的电压,就会导致芯片烧毁。这么看芯片还是挺轻松的,下载代码也就一小会的事,被动接受就行,而人学习却要主动去学,终身去学。:电子设备的运行是需要一个节拍的,通过这个节拍,使得所有部件协调的运行,而晶振的作用就是产生节拍。可以从U盘启动,也可以从硬盘启动。
2025-03-02 13:58:51
414
原创 知不足——java(2)继承
继承 继承是个很棒的功能,它使代码可以复用,极大程度上降低了工作量。 java中的继承只能单继承,不能多继承。但可以多层次继承。 从某种程度上说,继承是对抽象的进一步使用。我们可以抽象出猫和鸟的共同点,例如:它们都会叫、都会吃东西等,这样就可以得到一个实现它们共同点的类animal,然后,我们可以创建cat类和bird类,并让这两个类继承animal类。因为我们在animal类中实现了叫和吃的方法,所以不用在cat类和bird类中再次实现这两个方法。//animal类class Ani
2020-06-21 18:52:01
149
原创 知不足——java(1)面向对象
面向对象 如《Java核心技术·卷一》所述,一个面向对象的木匠始终首先关注的是所制作的椅子,其次才是使用工具;非面向对象主要考虑的是所用的工具。 面向对象编程时,主要关注的是类具有什么功能,而不是类怎么实现功能。在面向过程编程时,考虑更多的如何实现一个又一个的功能。就如木匠考虑应该使用什么样的工具、怎么使用工具来制作椅子。而面向对象则是去考虑我想要一个什么样的椅子,不需要把重心放在工具如何使用上。(在创建自定义类的方法时,是否采用的是面向过程呢?需要考虑如何实现想要的功能?) 面向对象给
2020-06-21 18:51:03
227
原创 关于算法的时间复杂度
一、时间复杂度的概念一般情况下,算法中基本操作重复执行的次数是问题规模n的某个函数f(n),算法的时间量度记作:T(n) = O(f(n))它表示随问题规模n的增大,算法执行时间的增长率和f(n)的增长率相同,称作算法的渐进时间复杂度,简称时间复杂度。二、概念详解基本操作多数情况下,为最深层循环内的语句所描述的操作。时间规模n一个算法的运行工作量只取决于问题的规模(通常用...
2019-02-24 20:05:00
704
原创 树莓派3B搭建Samba文件服务器
这是之前学习某书时做的笔记,写在这里留个记录,顺便回顾一下。(借的书,已还,时间太久,书名忘记了。(lll¬ω¬))1.安装Sambaapt install samba samba-common-bin2.配置/etc/samba/smb.confsudo vim /etc/samba/smb.conf更改security = user --> 取消注释 (删掉#)此更...
2019-01-27 21:25:35
1871
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人