- 博客(82)
- 资源 (6)
- 收藏
- 关注
原创 CH395Q之CH395Q驱动库移植与驱动库分析(二)
本节主要介绍以下内容:一、CH395Q驱动库移植二、源码分析一、CH395Q驱动库移植驱动库移植主要有两个途径,一个是南京沁恒官方网址,一个是通过正点原子官方,原子官方对沁横官方提供的驱动库进行了完善与修改。自用的话推荐原子官方。原子与沁横官网相比主要有以下区别:(1)在沁恒的基础上对格式进行了规范,并且条件编译相对较少(2)统一了接口,并且添加了部分辅助功能。1.1 移植流程1.2 准备工程在裸机例程中,以跑马灯实验作为移植基础工程重命名工程为《网络实验1 CH395移植实验》
2024-01-28 22:50:48
2043
原创 OV7725 摄像头驱动
STM32 的处理速度比传统的8、16 位机快得多,所以使用它驱动摄像头采集图像信息并进行基本的加工处理非常适合,本章讲解使用STM32 驱动OV7725 型号的摄像头。一、摄像头简介在各类信息中,图像含有最丰富的信息,作为机器视觉领域的核心部件,摄像头被广泛地应用在安防、探险以及车牌检测等场合。摄像头按输出信号的类型来看可以分为数字摄像头和模拟摄像头,按照摄像头图像传感器材料构成来看可以分为CCD 和CMOS。现在智能手机的摄像头绝大部分都是CMOS 类型的数字摄像头。1.1 OV7725 摄像头。
2024-01-25 20:57:50
3157
原创 MPU6050传感器—姿态检测
MPU6050模块,它是一种六轴传感器模块,采用InvenSense公司的MPU6050作为主芯片,能同时检测。
2024-01-23 22:14:49
6443
原创 RS-485通讯
RS-485通讯协议简介与CAN类似,RS-485是一种工业控制环境中常用的通讯协议,它具有抗干扰能力强、传输距离远的特点。RS-485通讯协议由RS-232协议改进而来,协议层不变,只是改进了物理层,因而保留了串口通讯协议应用简单的特点。
2024-01-20 22:04:02
2519
原创 CAN—通讯实验
CAN是控制器局域网络(Controller Area Network)的简称,它是由研发和生产汽车电子产品著称的德国BOSCH公司开发的,并最终成为国际标准(ISO11519),是国际上应用最广泛的现场总线之一。 CAN总线协议已经成为汽车计算机控制系统和嵌入式工业控制局域网的标准总线,并且拥有以CAN为底层协议专为大型货车和重工机械车辆设计的J1939协议。近年来,它具有的高可靠性和良好的错误检测能力受到重视,被广泛应用于汽车计算机控制系统和环境温度恶劣、电磁辐射强及振动大的工业环
2024-01-19 23:55:41
1409
原创 高级定时器
计数器16bit,上下两边 计数,TIM1和TIM8,还有一个重复计数器RCR,独有。有4个GPIO,其中通道1~3还有互补输出GPIO时钟来自PCLK2,为72M,可实现1~65536分频高级控制定时器(TIM1 和TIM8)和通用定时器在基本定时器的基础上引入了外部引脚,可以实现输入捕获和输出比较功能。高级控制定时器比通用定时器增加了可编程死区互补输出、重复计数器、带刹车(断路)功能,这些功能都是针对工业电机控制方面。
2024-01-12 23:52:30
1566
原创 LCD—液晶显示中英文
有了编码,我们就能在计算机中处理、存储字符了,但是如果计算机处理完字符后直接以编码的形式输出,人类将难以识别。因此计算机与人交互时,一般会把字符转化成人类习惯的表现形式进行输出,如显示、打印的时候。但是如果仅有字符编码,计算机还不知道该如何表达该字符,因为字符实际上是一个个独特的图形,计算机必须把字符编码转化成对应的字符图形人类才能正常识别,因此我们要给计算机提供字符的图形数据,这些数据就是字模,多个字模数据组成的文件也被称为字库。
2024-01-11 09:00:55
1415
1
原创 LCD—液晶显示
如果给液晶施加电场,会改变它的分子排列,从而改变光线的传播方向,配合偏振光片,它就具有控制光线透过率的作用,再配合彩色滤光片,改变加给液晶电压大小,就能改变某一颜色透光量的多少。图中的触摸面板带有触摸控制芯片,该芯片处理触摸信号并通过引出的信号线与外部器件通讯面板中间是透明的,它贴在液晶面板上面,一起构成屏幕的主体,触摸面板与液晶面板引出的排线连接到。,做出可控红、绿、蓝光输出强度的显示结构,把三种显示结构组成一个显示单位,通过控制红绿蓝的强度,可以使该单位混合输出不同的色彩,这样的一个显示单位被称为。
2024-01-07 22:44:46
1546
原创 FSMC—扩展外部SRAM
STM32控制器芯片内部有一定大小的SRAM及FLASH作为内存和程序存储空间,但当程序较大,内存和程序空间不足时,就需要在STM32芯片的外部扩展存储器了。系列芯片可以扩展外部SRAM用作内存。给STM32芯片扩展内存与给PC扩展内存的原理是一样的,只是PC上一般以内存条的形式扩展,而且内存条实质是由多个内存颗粒即SDRAM芯片组成的通用标准模块,而STM32扩展时,直接直接与SRAM芯片连接。1.1 型号为的SRAM芯片外观。
2024-01-06 20:09:25
1673
原创 二、串行FLASH文件系统FatFs移植
经过上一节的分析,我们对文件系统有一定的理解了,这一节给大家介绍怎么把FatFs文件系统的这些代码移植到STM32S上,然后STM32利用这一些代码或者函数,以文件的格式对FLASH进行读写数据。实则对diskio.c提供一些函数接口。首先将 ff11a\src文件夹拷贝至user底下,重命名为fatFs,以方便我们后续操作移植文件系统主要就是实现底层disk函数的具体功能。
2024-01-04 22:15:09
1160
原创 SPI-FLASH移植FATFS文件系统返回FR_DISK_ERR, /* (1) A hard error occurred in the low level disk I/O layer */
读取设备ID的操作通常是一个简单的查询,不涉及对设备状态的修改。FR_MKFS_ABORTED, /* (14) f_mkfs()由于任何参数错误而中止 */FR_DISK_ERR, /* (1) 在底层磁盘I/O层发生了严重错误 */FR_TOO_MANY_OPEN_FILES, /* (18) 打开的文件数> _FS_LOCK */FR_INVALID_OBJECT, /* (9) 文件/目录对象无效 */
2023-12-21 11:13:20
3574
3
原创 一、串行FLASH文件系统FatFs简介
当我们在使用SPI FLASH直接存储数据 当需要记录字符时。可以把这些文字转化成ASCII码,存储在数组中,然后调用函数,把数组内容写入到SPI Flash芯片的指定地址上,在需要的时候从该地址把数据读取出来,再对读出来的数据以ASCII码的格式进行解读。但是这样存在以下弊端:难以记录有效的数据位置难以确定存储介质的剩余空间不明确应以何种格式来解读数据。
2023-12-19 15:43:37
1364
原创 总线二:SPI读写串行FLASH
W25Q64,是一种NOR FLASH。容量为64M bit = 8M Byte(8M 字节),实际上将8M字节分成0~127个block(块),每个块都64字节块,块又细分位0-15Sector(扇区),每个扇区大小为4k。支持高达80MHz的时钟频率,可以真正的支持XIP。灵活的架构,具有4KB扇区,统一扇区擦除:可以统一擦除每个包含4K字节数据的扇区。块擦除:芯片支持块擦除,可选择32K和64K字节的块。该芯片允许一次性编程从1到256字节,提供了数据存储的粒度。
2023-12-17 21:43:24
2058
原创 项目一:IIC读写EEPROM AT24C02
文档已经上传了,需要的同学可以自行下载哈,下面为下载链接。AT24C02我大概照着文档翻译了一下:存储器内部按组织256字节 × 8位 (2K)组织双线串行接口(IIC)兼容400kHz通信速率具有硬件数据保护的写保护引脚8字节/页写模式允许部分页写入高可靠性:100万次写周期,数据保留:100年串行时钟(SCL)、串行数据(SDA)不再赘述。A2,A1和A0引脚用于AT24C02的设备地址输入。WP为写保护引脚,提供硬件数据保护。写保护引脚在连接到地(GND)时允许正常的读写操作。
2023-12-12 22:44:20
1175
原创 总线一:I2C简介(介绍看这一篇就够啦)
I2C通讯协议(Inter是由Phiilps公司开发的,由于它引脚少,硬件实现简单,可扩展性强,不需要USARTCAN等通讯协议的外部收发设备,现在被广泛地使用在系统内多个集成电路(IC)间的通讯。1.1 I2C物理层的特点(上图上拉电阻一般为4.7KΩ)它是一个支持多设备的总线。“总线”指多个设备共用的信号线。在一个I2C通讯总线中,可连接多个I2C通讯设备,支持多个通讯主机及多个通讯从机。一个I2C总线只使用两条总线线路,一条双向串行数据线(SDA)
2023-12-12 20:01:24
2184
原创 20231212—这是一篇深刻的反思
考虑了很久,这个可能是我离职直接的导火索,如果我不曾见到外面的世界,那么我可能会干到退休,我在某研究所工作,承担软件设计一职。我们所的待遇很好,效益很好,就导致了加班很多,其实我不排斥加班,任务忙,工作没完成,那么加班很正常,同样的工作对工作经验三四年或者四五年的工程师,与像我这样一两年的工程师的工作效率是完全不同的,比如同样是第一次吃螃蟹的人,他们可能触类旁通,可以很快调好一个外设,而我可能需要一两周,所以对于加班,我不排斥。总的来说,通过对自己之前博客的反思,我意识到写作是一个不断学习和提升的过程。
2023-12-12 11:38:15
414
2
原创 二十一、FreeRTOS之FreeRTOS内存管理
在使用FreeRTOS创建任务、队列、信号量等对象的时候,一般都提供了两种方法:动态方法创建:自动的从FreeRTOS管理的内存堆中申请创建对象所需的内存,并在对象删除后,可将这块内存释放回FreeRTOS管理的内存堆静态方法创建:需要用户提供各种内存空间,并且使用静态方式占用的内存一般固定下来了,即使任务、队列被删除后,这些被占用的内存空间一般没有其他途径。总结:动态方式管理内存相比静态方式更加灵活。除了FreeRTOS提供的动态内存管理方法,标准的C库也提供了malloc()函数和fre
2023-12-11 20:42:39
1126
1
原创 二十、FreeRTOS之Tickless低功耗模式
本节需要掌握以下内容:1,低功耗模式简介(了解)2, Tickless模式详解(熟悉)3, Tickless模式相关配置项(掌握)4,Tickless低功耗模式实验(掌握)5,课堂总结(掌握)很多应用场合对于功耗的要求很严格,比如可穿戴低功耗产品,物联网低功耗产品等一般MCU都有相应的低功耗模式,裸机开发可以使用MCU的低功耗模式。FreeRTOS也提供了一个叫Tickless的低功耗模式,方便带FreeRTOS操作系统的应用开发1.1 STM32低功耗模式这里我们主要使用的时这个睡眠模式1、进入睡眠模式W
2023-12-11 16:41:40
1010
原创 十九、FreeRTOS之FreeRTOS软件定时器
函数描述()动态方式创建软件定时器静态方式创建软件定时器()开启软件定时器定时()在中断中开启软件定时器定时xTimerStop()停止软件定时器定时()在中断中停止软件定时器定时()复位软件定时器定时()在中断中复位软件定时器定时()更改软件定时器的定时超时时间()在中断中更改定时超时时间5.1,创建软件定时器API函数形参描述软件定时器名定时超时时间,单位:系统时钟节拍定时器模式,pdTRUE:周期定时器,pdFALSE:单次定时器。
2023-12-10 19:17:37
1363
原创 十八、FreeRTOS之FreeRTOS任务通知
任务通知:用来通知任务的,任务控制块中的结构体成员变量ulNotifiedValue就是这个通知值。(队列、信号量、事件标志组也可以用来通知任务。队列可以往其它任务发数据,信号量同样发送一个资源,释放信号量,另外一个任务获取信号量,事件标志组把某一位置一,另一个任务就来读这个位是不是1。这些都能用来通知任务,为什么我们还要用任务通知呢?最主要的是:内存消耗比较小,因为队列、信号量、事件标志组使用之前都要提前创建好,才能去操作它,而任务通知就不用去创建,因为它的结构体成员就在任务控制块TCB里面。
2023-12-09 21:09:15
1179
1
原创 十七、FreeRTOS之FreeRTOS事件标志组
函数描述使用动态方式创建事件标志组()使用静态方式创建事件标志组()清零事件标志位在中断中清零事件标志位设置事件标志位()在中断中设置事件标志位()等待事件标志位()设置事件标志位,并等待事件标志位此处只列举了常用的一部分,更多事件标志组相关的API函数介绍请查阅FreeRTOS开发指南》--第十六章“FreeRTOS事件标志组”
2023-12-08 17:47:17
971
原创 十六、FreeRTOS之FreeRTOS队列集
一个队列值允许任务间传递的消息为同一数据类型,如果需要在任务间传递不同数据类型消息时,那么就可以使用队列集!作用:用于对多个队列或信号量进行“监听”,其中不管哪一个消息到来,都可以让任务退出阻塞状态。二,队列集相关API函数介绍(熟悉)函数描述创建队列集队列添加到队列集中从队列集中移除队列()获取队列集中有有效消息的队列在中断中获取队列集中有有效消息的队列。
2023-12-07 22:30:04
1119
原创 十四、FreeRTOS之FreeRTOS消息队列
队列是任务到任务、任务到中断、中断到任务数据交流的一种机制(消息传递类似全局变量?假设有一个全局变量a = 0,现 有两个任务都在写这个变量a。
2023-12-06 12:12:34
1152
原创 十二、FreeRTOS之FreeRTOS任务相关API函数
()获取任务优先级()设置任务优先级()获取系统中任务的数量()获取所有任务状态信息()获取指定单个的任务信息()获取当前任务的任务句柄()根据任务名获取该任务的任务句柄()获取任务的任务栈历史剩余最小值()获取任务状态vTaskList()以“表格”形式获取所有任务的信息()获取任务的运行时间学习资料可参考手册FreeRTOS开发指南第11章——FreeRTOS其他任务API函数”1.1 获取任务优先级函数。
2023-12-05 15:43:59
1235
原创 十一、FreeRTOS之FreeRTOS时间片调度
同等优先级任务轮流地享有相同的CPU时间可设置, 叫时间片,在FreeRTOS中,一个时间片就等于SysTick中断周期运行条件:1、创建三个任务:Task1Task2Task32Task1Task2Task3的优先级均为1;即3个任务同等优先级运行过程如下:1、首先Task1运行完一个时间片后,切换至Task2运行2Task2运行完一个时间片后,切换至Task3运行3Task3运行过程中(还不到一个时间片),Task3。
2023-12-04 11:27:18
981
原创 十、FreeRTOS之FreeRTOS任务调度
作用:用于启动任务调度器,任务调度器启动后,FreeRTOS便会开始进行任务调度该函数内部实现,如下:1、创建空闲任务2、如果使能软件定时器,则创建定时器任务3、关闭中断,防止调度器开启之前或过程中,受中断干扰,会在运行第一个任务时打开中断4、初始化全局变量,并将任务调度器的运行标志设置为已运行5、初始化任务运行时间统计功能的时基定时器6、调用函数()()作用:该函数用于完成启动任务调度器中与硬件架构相关的配置部分,以及启动第一个任务。
2023-12-03 17:57:50
965
原创 九、FreeRTOS之FreeRTOS列表和列表项
列表是FreeRTOS中的一个数据结构,概念上和链表有点类似,列表被用来跟踪 FreeRTOS中的任务列表项就是存放在列表中的项目列表相当于链表,列表项相当于节点,FreeRTOS中的列表是一个双向环形链表列表的特点:列表项间的地址非连续的,是人为的连接到一起的。列表项的数目是由后期添加的个数决定的,随时可以改变数组的特点:数组成员地址是连续的,数组在最初确定了成员数量后期无法改变在OS中任务的数量是不确定的,并且任务状态是会发生改变的,所以非常适用列表链表这种数据结构。
2023-12-02 17:03:05
1231
原创 八、FreeRTOS之FreeRTOS临界段代码保护及调度器挂起与恢复
本节主要需要掌握以下内容:1,临界段代码保护简介(熟悉)2,临界段代码保护函数介绍(掌握)3,任务调度器的挂起和恢复(熟悉)4,课堂总结(掌握)什么是临界段:临界段代码也叫做临界区,是指那些必须完整运行,不能被打断的代码段适用场合如:问题1:什么可以打断当前程序的运行?answer:中断和任务调度问题2:那如何程序不被打断呢?answer:关中断!那么中断就打断不了当前任务了,而任务调度也就不能了。因为PendSV就是实现任务切换的一个中断,而这个中断我们设置的是最低优先级。那么我们直接关中断,那么最低优先
2023-12-01 17:07:04
616
原创 七、FreeRTOS之FreeRTOS中断管理
简介:让CPU打断正常运行的程序,转而去处理紧急的事件(程序)(其实就是ISR中断服务函数),就叫中断。Example如下图所示,像不像屏幕前各位小伙伴呢?中断执行机制,可简单概括为三步:中断请求:外设产生中断请求(GPIO外部中断、定时器中断等)响应中断:CPU停止执行当前程序,转而去执行中断处理程序(ISR)退出中断:执行完毕,返回被打断的程序处,继续往下执行。
2023-12-01 13:27:55
1319
1
原创 六、FreeRTOS之FreeRTOS的任务挂起和恢复函数介绍
()挂起任务()恢复被挂起的任务()在中断中恢复被挂起的任务那么问题来了,挂起和删除的区别是什么呢?挂起:挂起任务类似暂停,可恢复;删除任务,无法恢复恢复:恢复被挂起的任务FromISR:带FromISR后缀是在中断函数中专用的API函数1.1 任务挂起函数介绍void。
2023-11-30 19:26:49
1492
1
原创 总线二:SPI简介
SPI协议是由摩托罗拉公司提出的通讯协议(Serial Peripheral Interface),即串行外围设备接口,是一种高速全双工的通信总线(I2C是半双工)。它被广泛的使用在ADC、LCD等设备与MCU之间,要求通讯速率比较高的场合(协议自己好像没有限制,但是受制于设备,最高达40/50M)。
2023-09-27 15:15:58
669
2
原创 四、FreeRTOS之FreeRTOS移植
名称描述FreeRTOSFreeRTOS内核FreeRTOS-PlusFreeRTOS组件tools工具GitHub-FreeRTOS-HomeFreeRTOS的GitHub仓库链接Quick_Start_Guide快速入门指南官方文档链接Upgrading-to-FreeRTOS-xxx升级到指定FreeRTOS版本官方文档链接History.txtFreeRTOS历史更新记录其他其他 FreeRTOS内核名称描述DemoFreeRTOS演示例程LicenseFreeRTOS相关许可SourceFreeR
2023-09-25 19:48:16
1683
5
AT24C02.pdf
2023-12-12
IIC总线协议 中文版PDF
2023-12-12
KCF跟踪算法 从run-tracker.m点进去可以直接运行
2022-11-07
限速标志模型yolov5,限速10-80
2022-11-03
限速标志数据集yolov5,限速标志识别
2022-11-03
火焰检测源码 里面有两个.py文件,可直接对火焰进行检测
2022-11-01
yolov5 行人多目标检测模型
2022-10-18
火焰、烟雾数据集 已标注好 共3681张标注好的图片以及标签可用于直接训练yolo
2022-06-10
垃圾数据集voc格式可直接用于yolo训练
2022-05-07
车辆以及行人数据集可直接用于yolo训练
2022-05-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人