- 博客(143)
- 资源 (13)
- 问答 (1)
- 收藏
- 关注

原创 项目实战第六篇:STM32智能小车OLED显示开发(OLED开发篇)
文章目录OLED的驱动及开发OLED.COLED.HOLEDFONT.h通过前面的介绍已经可以正常的驱动小车进行各个方向的行走了,那么为了方便我们后面的开发方便,比如距离的显示、行进方向及状态的显示等,那么接下来就具体讲解下OLED的软件开发这部分的功能·OLED的驱动及开发关于OLED的基本原理这里都不在赘述了,直接上干货比较实在。同样的进行了对OLED代码进行了封装,这都是为了我们后面做项目方便移植及修改。OLED一般分为SPI驱动(7线或6线),IIC驱动(四线制),他们的原理都一样。我这里使用
2021-08-26 17:12:37
1552

原创 项目实战第五篇:STM32智能小车驱动开发(电机驱动开发篇)
文章目录基于L298N驱动功能开发PWM配置(car部分)car.ccar.h小车转向功能封装(turn部分)trun.cturn.h主函数前门几篇文章已经从硬件的选型,再到组装,基本上都一一的讲解清楚了,也就是硬件部分已经完成,那么接下来就是逐一对软件功能进行开发基于L298N驱动功能开发本次项目使用的是红板L298N驱动模块,优缺点前面已经说过了,该模块左右两边分别接两个电机,可以直接通过高低电平控制,也可以通过PWM来控制,本次为方便扩展测速等功能,所以使用的是PWM,PWM的基本原理不再赘述,
2021-08-24 17:24:15
2828
2

原创 项目实战第四篇:STM32智能小车硬件连接(接线篇)
硬件接线目录1、电源驱动部分2、开发板部分3、传感器部分从前面几篇文章中已经大致的了解了小车的基本硬件选型及组成框架,那么接下来就是开始实操的部分了,那么实操第一部分就是硬件的基本接线,主要分为电源驱动部分、开发板部分及传感器部分。1、电源驱动部分首先看下驱动模块、电机以及电源不部分的接线方法。看下下图的驱动模块,1)首先左右分别有输出A和输出B,这两个分别接两个电机2)三端蓝色接线底座,分别有12V输入、GND以及5V输出,那么12V则是接电池供电,而5V接线出来刚好可以给开发板供电3)逻辑输
2021-08-02 15:43:01
11944
4

原创 项目实战第三篇:STM32多功能智能小车硬件选型2(传感器选型篇)
目录预览1、概述2、传感器选型2.1、超声波传感器2.2、蜂鸣器2.3、蓝牙模块2.4、显示模块2.5、循迹模块3、自由扩展功能3.1、机械臂3.2、视觉抓取小车4、总结1、概述通过项目实战第二篇博客,小车的底部驱动框架已经选好了,可以通过软件来进行小车的驱动,比如前进后退等基础功能就可以实现了,小车实现单一的功能还不够,还需要加入一些常用的传感器进行功能的丰富和扩展,那么接下来就来进行传感器的选择。2、传感器选型2.1、超声波传感器超声波选择常用的HC-SR04,能检测最大有效距离2M左右,价格
2021-07-26 14:38:29
1785

原创 项目实战第二篇:STM32多功能智能小车硬件选型1(驱动选型篇)
硬件概述通过第一篇博客了解了本次项目的需求后,那么接下来就需要根据自己的需求来采购合适的硬件,其中就要考虑硬件的功能、成本、兼容性以及可扩展性等条件,来选购适合本次项目的相关的硬件,当然也可以根据自己的实际需要来增删某部分硬件,总而言之,围绕自己项目的实际需求来即可。说多了,本次以该小车为例,下面主要从以下方面来考虑硬件,主要从开发板、驱动部分、电源部分、检测部分、报警、显示部分以及控制部分。核心控制板(MCU)...
2021-07-15 17:31:54
2816
1

原创 项目实战第一篇:STM32多功能智能小车介绍(需求篇)
基础功能介绍本次项目主要是基于 STM32F407 开发板为基础来对小车进行驱动,可以用手机控制小车前进、后退、左转、右转、后左转、后右转、停止等方向,还可以自动进行避障遇到障碍物会左转或右转来绕开障碍物,离障碍物一定距离时蜂鸣器会报警,不同的距离蜂鸣器响的频率不一样,同时 OLED 会实时显示距离、小车行进方向及报警的状态。后期可进行二次开发,也可进行功能扩展!实物图接线版PCB转接板版STM32技术介绍本次项目主要使用STM32的部分常用硬件功能,驱动使用PWM,显示使用SPI或IIC
2021-07-05 21:51:58
9912
2
原创 stm32怎么查看指定代码段的执行时间
Core Clock配置为对应单片机的频率,下载器默认是10MHZ,这里要改为单片机对应的主频,比如F1是72,F4是168Mhz,根据型号进行对应配置即可,并且勾上Trace Enable。为了验证时间是否准确,中间加个延时,再次测试时间,原理同上,直接看图示。配置好后保存退出,点击在线调试,并设置对应的断点,设置好后点击运行。运行到第一个断电时记录时间,左边的Sec就是运行至此所花时间。再点击运行时,系统就会运行到下一个断点处停止,同样记录时间。两次时间差即是两处断点处的程序所运行时间。
2025-02-19 17:04:20
315
原创 第一章:什么是STM32?嵌入式和STM32简单介绍
除了桌面PC之外,所有的控制类设备都是嵌入式嵌入式系统的定义:“用于控制、监视或者辅助操作机器和设备的装置”。嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板,是一种专用的计算机系统。国内普遍认同的嵌入式系统定义为:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。
2024-07-12 15:54:20
1046
原创 STM32F4的USB Host驱动移植详细步骤及问题解决
这三个从上到下分别为USB从机驱动库,USB主机驱动库,USB_OTG内核驱动代码,本次使用HOST和OTG进行移植FATFS实验工程,并将LCD改为printf,因为没有用到LCD,调试信息就只有通过printf进行查看打开工程,新建USB文件夹并拷贝USB驱动库,在拷贝的目录下并新建一个USB_APP文件夹MSC相关代码到USB_APP文件夹内相关代码,即:en.stm32_f105-07_f2_f4_usb-host-device_lib\Project\USB_Host_Examples\MSC
2023-09-14 17:47:27
4298
8
原创 西门子S7-200 SMART软件的下载安装步骤
正确的方法是右键单击STEP 7 MicroWIN SMART V2.7.0.0.iso,将其加载至虚拟光驱,安装包就这虚拟光驱里面。然后点击第一个下载即可,截止博客发布日期,最新版本为STEP 7 MicroWIN SMART V2.7.0.0。这里找不到软件下载的地方,点击SIMATIC S7-200 SMART返回上一层目录。下载下来解压后如下图所示,很纠结的是并没有exe文件无法安装,我也搞了半天,一直下一步,直到安装完成,中途也不需要破解注册什么的。点击进入即可,然后就进入到了这个页面。
2023-09-07 11:06:58
52014
6
原创 STM32F4的USB Slave驱动移植详细步骤及问题解决
访问官网:https://www.st.com,搜索UM1021选择STSW-STM32046下拉到下面,获取下载即可下载下来解压后的文件如下图所示:准备基础工程一份,这里以W25Qxx工程为例,直接拷贝原子的工程过来打开库文件,定位到当前目录这三个从上到下分别为USB从机驱动库,USB主机驱动库,USB_OTG内核驱动代码打开工程,新建USB文件夹并拷贝USB驱动库,在拷贝的目录下并新建一个USB_APP文件夹MSC相关代码到USB_APP文件夹内相关代码,即:en.stm32_f105
2023-09-06 10:42:50
2880
3
转载 STM32分析栈、堆、全局区、常量区、代码区、RAM、ROM详细说明
在一个STM32程序代码中,从内存高地址到内存低地址,依次分布着栈区、堆区、全局区(静态区)、常量去、代码区,其中全局区中高地址分布着.bss段,低地址分布着.data段。总的分布如下图所示内存高地址栈区堆区.bss段.data段常量区内存低地址代码区下面分别对每一个区做详细的介绍。
2023-08-15 09:22:56
2649
1
原创 第四章:C语言的条件分支控制结构
运行结果会一直打印goto flag上面那一行所在的行数,goto flag下面那一行会直接被跳过。理论上可以无限嵌套,但是嵌套多了看起来就比较冗余复杂,所以就衍生出了下面的switch。可以看出这里每次执行后都会顺序打印,并没有达到实际的效果,所以正确的应该下面的完整语法。这样看起来非常的不爽,所有就有了下面的另一种分支控制结构。标准格式:if{}else if{}else{}{}里面的语句表示条件是否成立再决定是否执行。标准格式:if{}else{}
2023-07-31 17:07:43
371
原创 第三章:C语言的循环控制结构
()内需要填写三个参数,可以理解为第一个条件为开始执行位置,第二个条件为执行结尾,第三个执行方式。括号后面也可以是执行条件,比如下面的代码是只有当i
2023-07-21 17:23:57
283
原创 eeprom sram flash区别
ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写。ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是在掉电之后就丢失数据,典型的RAM就是计算机的内存。SRAM听名字可以知道是属于RAM,而其他两个数据ROM。
2023-06-02 11:46:25
547
原创 【通过STLINK Utility下载程序和加解密方法】
1、STLINK Utility下载首先,去官网下载一个STLINK Utility工具,我这里下载的最新版本为v4.62、STM32 ST-LINK Utility介绍STM32 ST-LINK Utility软件主要的功能就是量产(批量下载代码的工具)。它也是比较实用的一个工具,当我们需要查看芯片FLASH数据时,可以很快定位查找到想要的数据(前提是没有添加保护)。STM32 ST-LINK Utility软件包含ST-Link驱动。若你安装了STM32 ST-LINK Utility软件,你
2022-03-03 17:44:19
6088
2
原创 MPU6050初始化失败原因及常见问题解决方法
1、6050初始化失败如果是6050初始化失败,首先看下是否是读出的地址不对res=MPU_Read_Byte(MPU_DEVICE_ID_REG); printf("mpu addr=%x\r\n",res); if(res==MPU_ADDR)//器件ID正确 { MPU_Write_Byte(MPU_PWR_MGMT1_REG,0X01); //设置CLKSEL,PLL X轴为参考 MPU_Write_Byte(MPU_PWR_MGMT2_REG,0X00); //加速度与陀螺仪都工
2022-03-02 17:17:03
22279
31
原创 项目实战第十一篇(实物展示篇)
基于众多粉丝私信,表示前面部分只能学习到理论知识,自己动手能力较弱,所以特此给各位粉丝提供完整的项目展示,以及有需要的可直接采购,所以下面给大家展示下各种小车的具体的实物,由于博主精力及资金有限,所以目前仅展示博主自费做出来的实物,仅供各位粉丝参考。如有更好的想法和意见欢迎随时沟通,尽力优化及改进!一、接线版优点:纯手工打造,硬件成本减少到最低缺点:接线复杂,看起来比较乱1、基础功能版2、 图像识别版3、语音识别及播报版二、PCB转接版优点:减少线束,外观更整洁美观缺点:成本稍微高
2022-02-21 15:35:16
1081
1
原创 keil编译时,提示function “xxx“ declared implicitly错误解决办法
当keil编译时,出现function “USART3_Config” declared implicitly错误,意思是存在隐式申明,也就是在申明头文件或者函数名的时候存在一定的问题通过错误指向的地方可以看到,此句前面也会有黄色感叹号提示,如下图所示这里以我遇到的USART3_Config函数为例,那么首先去看下相关的函数申明或头文件路径是否正常,通过检测都是正常的那么就是在其他地方还会存在冲突的地方,通过检测发现,USART3和USART1的头文件申明存在相同申明,如下图所示那么改掉其中一
2022-02-21 13:41:52
28056
5
原创 第二章:C语言的各种运算符说明及使用
2.1 算术运算符(+ - * / % ++ --)2.2 关系运算符< >= <= == !=2.3 逻辑运算符: && (有假为假,全真为真) || (有真为真,全假为假) ! (把结果取反)2.4 位于运算 << ------------左移(乘2的N次方) >> ------------右移(除2的N次方)~ ------------取反& ----
2022-01-27 15:07:00
822
原创 优快云如何快速转载别人优秀得博客
首先在需要转载得博客空白处,右键单击选择检查然后下面就会弹出HTML代码,接着按下ctrl+f搜索article_content然后在这一栏处右键单击复制-整体HTML即可,然后自己发表博客时直接粘贴刚刚复制得HTML代码即可。转载博客记的注明出处哦!!!...
2021-12-22 18:04:42
241
转载 【麦克纳姆轮(万向轮)驱动原理及安装方法】
麦克纳姆轮(万向轮)驱动和玩法 麦克纳姆轮介绍麦克纳姆轮运动分析及方向确定麦克纳姆轮安装组合及运动分析分析错误例子【AAAA】正确的麦轮分布应该是【ABBA】 麦克纳姆轮的安装位置安装方法 麦克纳姆轮介绍 在工业制造盛世年代,人们就感受到传统车辆的转向在一些特...
2021-12-22 17:21:59
22503
6
原创 TortoiseGit怎么切换为中文版本
首先需要去官网下载一个中文包,下载地址为https://tortoisegit.org/download/,对应的有软件和语言包,下载即可下载完成后双击安装然后进入设置一下点击Generea,选中中文即可。这样就变成中文版本了。...
2021-12-22 16:11:46
5473
原创 git如何搭建本地仓库进行代码的版本管理
文章目录1、Windows平台上的软件安装2、本地仓库创建3、代码上传4、版本相关管理及操作4.1、版本信息查看4.2、文件误删或丢失相关操作4.3、代码修改及操作4.4、版本回撤及代码恢复处理办法1、Windows平台上的软件安装首先需要安装两个软件,git和Tottoisgit(俗称小乌龟)Windows 平台上安装 Git 同样轻松,有个叫做 msysGit 的项目提供了安装包,安装包下载地址:https://gitforwindows.org/官网慢,可以用国内的镜像:https://n
2021-12-20 11:42:09
3847
原创 strlen 和 sizeof 计算字符串长度的区别
两者区别sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型。该类型保证能容纳实现所建立的最大对象的字节大小。sizeof是运算符(C++ 关键字),strlen是函数。sizeof可以用类型做参数,strlen只能用char*做参数,且必须是以”\0”结尾的。sizeof还可以用函数做参数sizeof计算的是变量的大小,而strlen计算的是字符串的长度,前者不受字符’\0’影响,后者以’\0’作为长度判定依据测试代码int main(){
2021-10-18 17:27:36
7953
原创 项目实战第十篇(完结篇):STM32智能小车综合功能测试及扩展(综合功能/完结篇)
文章目录1、超声波HCSR-04的驱动及开发本次的超声波主要是用于测试小车前方与障碍物之间的距离的,本次主要是通过获取到超声波的距离后,然后通过OLED将距离显示出来,所以本次需要将前面一章节的OLED的相关代码进行结合起来使用,下面进行具体的讲解。1、超声波HCSR-04的驱动及开发...
2021-09-26 13:51:21
1560
原创 项目实战第九篇:STM32智能小车红外循迹功能开发(寻迹小车开发篇)
文章目录前门几章已经详细的介绍了硬件的基本知识,那么接下来就开始进入正题,进行项目的软件开发部分。前面也说过,首先是单独的功能调试,然后再进行综合调试
2021-09-26 11:09:24
3897
原创 项目实战第八篇:STM32智能小车蓝牙控制开发及显示(蓝牙开发篇)
文章目录1、超声波HCSR-04的驱动及开发本次的超声波主要是用于测试小车前方与障碍物之间的距离的,本次主要是通过获取到超声波的距离后,然后通过OLED将距离显示出来,所以本次需要将前面一章节的OLED的相关代码进行结合起来使用,下面进行具体的讲解。1、超声波HCSR-04的驱动及开发...
2021-09-25 11:47:24
3709
原创 项目实战第七篇:STM32智能小车超声波距离获取(避障)开发及显示(超声波开发篇)
文章目录1、超声波HCSR-04的驱动及开发本次的超声波主要是用于测试小车前方与障碍物之间的距离的,本次主要是通过获取到超声波的距离后,然后通过OLED将距离显示出来,所以本次需要将前面一章节的OLED的相关代码进行结合起来使用,下面进行具体的讲解。1、超声波HCSR-04的驱动及开发关于OLED的基本原理这里都不在赘述了,直接上干货比较实在。同样的进行了对OLED代码进行了封装,这都是为了我们后面做项目方便移植及修改。OLED一般分为SPI驱动(7线或6线),IIC驱动(四线制),他们的原理都一样。
2021-09-23 17:22:25
4737
原创 STM32每次下载后正常运行,但是断电或复位后程序运行就无法正常运行的解决办法
STM32每次下载程序后能正常运行,但是断电或复位后程序运行就无法正常运行,大概解决办法如下1、查看boot0和boot1是否都正常接地2、查询其他外设是否卡死在其中一个里面了,我遇到的问题是有一个模块有电源控制部分,因为接的电容容量比较大,充电的时间比较长,所以需要进行延时,等待充电完成,才能对模块进行一些列的操作...
2021-08-25 17:59:23
7925
1
原创 Keil工程编译后的程序大小及存储位置说明
keil全局编译后,可通过以下信息查看代码所占大小,如下图所示可以看见,keil编译后分别有code,RO-data,RW-data,ZI-data四个类别,那么后面的数据就是其大小,这些参数的单位是Byte,几个参数分别代表含义如下:Code:代码的大小 RO :常量所占空间 RW :程序中已经初始化的变量所占空间 ZI :未初始化的static变量和全局变量以及堆栈所占的空间 上述参数和芯片Flash以及SRAM的对应关系是 :Flash占用大小=Code+RO+RW(前三个之和)S
2021-08-09 11:46:24
7963
2
原创 【远距离无线模块】WDS3及SI4338使用步骤及配置说明
一、WDS3配置说明1.1 操作模式与芯片选择界面安装好WDS软件后,双击打开此处会询问是连接到物理设备还是虚拟设备。连接到物理设备需要使用 Silabs 公司的 Development Kits 开发工具。本章仅在连接虚拟设备模式下对 Si4438 射频芯片的配置进行说明选择好所用芯片,如图所示 请注意选择对应版本。具体介绍如下:此时可以直接在列表中选中Si4438,或使用下方的过滤器进行快速选择。在选中芯片型号后还需要选择对应的芯片版本,用户可通过芯片上方的标识文字查看版本信息或与供货商联
2021-02-09 17:56:54
3376
8
原创 keil使用Jlink下载时出现No Cortex-M SW Device Found 解决方法
问题现象首先,点击settings可以看到没有识别到JLINK下载,那么有如下两种情况接线错误
2020-11-16 17:22:35
21077
2
原创 GitLib详细使用手册(附工具)
GitLib详细使用手册(附工具)一、登录与注册首先肯定需要一个gitlab得账号,自动动手注册一个,有账户得直接登录即可二、创建群组## 2.1创建群组首先,登录自己的gitlab账户,点击上图右侧的”New group”,创建一个组,如下图所示:,终端输入下列代码进行下载cd /home/pi/Downloadswget https://github.com/Itseez/opencv/archive/3.1.0.zipwget https://github.com/Itseez/opencv_contrib/archive/3.1.0.zip输入以下命令解压opencv压缩包,也可以在Windows下解压后直接通过传输工具传输到目前目录下cd /home
2020-06-19 17:26:16
5688
4
原创 树莓派4B如何使用串口与外部进行通信
外设IO口定义说明从树莓派的相关资料我们可以看到,树莓派有两个串口可以使用,一个是硬件串口(/dev/ttyAMA0),另一个是mini串口(/dev/ttyS0)。硬件串口有单独的波特率时钟源,性能好,稳定性强;mini串口功能简单,稳定性较差,波特率由CPU内核时钟提供,受内核时钟影响。树莓派(3/4代)板载蓝牙模块,默认的硬件串口是分配给蓝牙模块使用的,而性能较差的mini串口是分配给G...
2020-01-19 14:19:50
21679
23
原创 树莓派4B如何手动固定IP地址
在使用树莓派的过程中,DHCP往往会自动分配树莓派的IP,因此树莓派的IP地址并不是固定的,那么每次在远程登录树莓派前都需要查看一下树莓派的IP地址,非常麻烦。因此,我们手动给树莓派设定一个静态IP地址后,树莓派的IP地址就是固定的了。无线(热点)IP固定方法首先在无线连接下查看自己局域网的IP网段,然后在树莓派终端输入:sudo nano /etc/dhcpcd.conf,也可以使用VIM编...
2020-01-18 18:03:35
27171
8
Git TortoiseGit小乌龟及中文安装包
2023-08-08
STM32F4xx-FreeRTOS-LWIP移植工程
2023-06-14
STM32F103C8T6原理图及PCB-AD21版
2023-02-17
基于STM32F407VET6的多功能智能蓝牙循迹避障小车
2022-11-03
基于STM32F407VET6的RFID智能门禁控制系统
2022-11-03
STM32F407通过机智云进行数据采集上传及报警(上行处理)
2019-10-24
STM32F407通过机智云控制进行多路控制
2019-10-24
STM32F407通过机智云控制LED(STM32F4xx机智云协议移植模板)
2019-10-24
Git和小乌龟安装包
2019-06-04
ANO-TC匿名四轴上位机v2.6和v6.5安装包
2019-05-16
PCA9685驱动16舵机(电机调速)STM32F4代码
2019-04-17
基于STM32F407的PS2遥控手柄代码
2019-04-15
JQ8400FL-10P功能代码(STM32F4版本)
2019-01-15
gcc最新版下载
2018-10-17
一对多无线(433M,2.4G)数据传输方案及解决办法
2021-09-16
TA创建的收藏夹 TA关注的收藏夹
TA关注的人