- 博客(26)
- 资源 (1)
- 收藏
- 关注
原创 RT-Thread 5.0.2基于STM32F407ZG处理器使用MAILBOX实现线程间同步
本文介绍了在RT-Thread中使用mailbox实现线程间同步的方式。
2024-01-09 12:18:17 469
原创 RT-Thread 5.0.2基于STM32F407ZG处理器使用信号量实现线程间同步
为了实现复杂的功能,编程时免不了要进行线程间的同步操作,程序线程之间实现同步的方式有很多种,通过信号量实现线程之间的同步就是常见的一种方法,在此就给大家完整演示一下在RT-Thread中使用线程间实现同步的全过程。此软件工程源于之前的一个消息队列示范程序,我将在此软件工程中添加线程间同步的信号量测试代码。在MSH窗口中可以见到程序运行后的LOG信息,符合程序设计的预期目标。第3步,在usr_semaphore.c文件中添加信号量测试代码。至此,线程之间通过信号量实现同步功能的示范程序已经完成。
2024-01-09 11:57:52 930
原创 RT-Thread 5.0.2基于STM32F407ZG处理器使用消息队列在线程之间传递数据
消息队列是线程间通信的一个重要手段之一,本人目前正在开发一款8轴的步进电机驱动器,已经完成了底层的步进电机驱动、RS485接口驱动、CAN总线驱动、USB虚拟CDC串口以及FreeMODBUS协议移植等各方面的工作,后续将进入到APP层面的软件开发。下面是创建一个消息队列,并在二个线程之间传递消息的完整例程,在本例中,我所使用的处理器是STM32F407ZGT6。采用结构体形式的消息队列,可以定义任何形式的结构体,极大地方便了消息传递的灵活性。在出现的界面中,可以见到目标板发送的LOG信息。
2024-01-08 12:07:10 1039
原创 RT-Thread 5.0.2版本基于STM32F407ZG处理器使用RTC时钟
本文介绍了如何RT-Thread中启用RTC(实时时钟)的方法。
2024-01-04 16:03:44 649
原创 RT-Thread 5.0.2版本基于STM32F407处理器SPI接口挂载SD卡
本文介绍了基于STM32F407ZG处理器,在RT-Thread V5.0.2版本上使用SPI接口,通过虚拟文件系统将SD卡挂到了系统中,从而实现对SD中文件的访问。
2024-01-03 18:06:19 1428 1
原创 基于ST32F407ZGT6处理器在RT-Thread 5.0.2上挂载CAN BUS总线设备
发送测试代码部分的消息id值改为了0x100,这样可以与CAN总线硬件滤波器相匹配,以确保自己发出去的信息可以被自己接收。结构体定义中,没有hdr成员,但有hdr_index成员,看来又是因为改名所导致的问题,修改报错位置的结构体成员名称。跟踪到代码错误位置,发现这二个宏没有定义,匪夷所思,都5.0.2版本了,居然使用CAN总线这二个宏还没有定义。结构体定义中没有hdr成员,但有hdr_bank成员,应该是换名字了,修改报错定位点的成员名称。第4步,修改board.h文件,添加启用CAN总线的宏定义。
2024-01-02 13:13:46 1093
原创 RT-Thread 5.0.2版本基于STM32F407处理器挂载SPI接口的W25Q128 Flash存储芯片
见图2-1-6-2,在PC端启动Putty窗口中,已经可以见到固件运行后发送的LOG信息,关于Putty软件工具的作用和使用方法,请自行上网查找,这是一款可以远程登录Linux的终端工具,也可以用来与RT-Thread的MSH进行交互。见图2-2-2-1,使能USART1,这里需要补充说明一下,之前已经使用过串口1,为什么在这里要重新配置串口1呢?见图2-1-2-1,点击File->New->RT-Thread Project菜单。见图2-1-1-1,RT-Thread Studio启动成功。
2023-12-30 20:09:34 1417 1
原创 02-基于ART-PI开发板创建USB CDC 虚拟串口设备
本例在ART-PI开发板上,基于RT-Thread 5.0,5虚拟了一个USB32 CDC串口设备。
2023-12-27 16:36:32 1291 1
原创 ESP-Drone四旋翼无人机控制板上的MPU6050陀螺仪芯片I2C总线测试
1、摘要一款新的控制板卡在第一次使用时,都需要进行硬件功能的测试,以确保所有的硬件都能够正常工作后,才可以进入后续的软件编程阶段,ESP-Drone四旋翼无人机的控制板使用了mpu6050陀螺仪芯片作为惯性导航的传感器芯片,其可以用来测量无人机X、Y、Z方向的偏转角度和加速度信息,从而确定无人机的姿态,从而为控制系统提供控制无人机飞行的决策数据,mpu6050使用I2C总线与主控芯片进行通信,因此首先要做的工作就是测试主控芯片是否能够通过I2C总线来读取mpu6050芯片中的数据。2、I2C总线测试
2021-12-14 10:40:28 3873
原创 ESP32-Drone四旋翼无人机代码编译发现的二个问题及解决方法
摘要ESP32-Drone四旋翼无人机是乐鑫的一个开源项目,我根据官方的硬件参考设计,重新使用KiCAD绘制了原理图和PCB板,并制作了控制板样板,在配置了ESP-idf-4.4编程环境编译官方的软件包时遇到了二个比较严重的问题,具体过程记录如下:编译问题1:找不到FreeRTOS.h头文件。如图1-1所示,在编译的过程中,发现报没有找到FreeRTOS.h头文件,这应该是C语言程序编译过程中常见的头文件目录环境变量的设置有问题 。如图1-2所示,根据报错信息的提示,找到“craz.
2021-12-14 09:35:09 1820 1
原创 KiCAD绘制原理图---------创建一个新的原理图符号
1、创建一个新的原理图库文件第1步,打开原理图器件编辑界面。如图1-1-1所示,点击“Smbol Editor”图标进入器件编辑界面。第2步,进入文件管理菜单。如图1-2-1所示,点击“File”菜单,打开文件管理菜单界面。第3步,进入新的库文件创建界面。如图1-3-1所示,点击“New Library”菜单进入新的库文件创建界面。第4步,设定新的库文件存放目录和新的库文件名。如图1-4-1所示,在系统中选择一个合适的文件夹用来存放新创建的库文件,同...
2021-12-04 10:03:37 3034
原创 KiCAD绘制原理图的几个常用的操作之一
摘要在绘制原理图的的过程中,会用到很多的操作功能,今天就介绍几个在绘制原理图时必须要用到的几个功能:1、放置原理图符号;2、放置电源符号;3、绘制器件引脚之间的连线;4、修改器件的属性1、放置原理图符号第1步,选中放置器件符号图标。如图1-1-1所示,点击器件放置符号图标。如图1-1-2所示,器件放置符号图标已经被选中。第2步,指定器件放置的位置。如图1-2-1所示,移动鼠标至指定位置,...
2021-12-03 09:00:55 4533 1
原创 KiCAD-如何创建一个工程文件并放置原理图器件符号
1、摘要KiCAD是一款开源的EDA设计软件,它集成了原理图绘制、PCB绘制、GERBER文件浏览、阻抗计算器等实用功能模块,对于常见的使用场景来说已经足够用了,当然对于已经习惯了其它软件使用的人来说,刚开始可能会因为快捷键不同、设计界面不同而有点不习惯,但熟悉一段时间后就好了。2、设计过程记录第1步,启动KiCAD。如图2-1所示,点击桌面的KiCAD图标启动软件。如图2-1-2所示,启动后的KiCAD中有上次所使用的软件工程,如果是新安装的软件则没有这样的设计工程。.
2021-11-27 09:22:08 1222
原创 基于ESP32C3处理器创建Hello World工程-并使用OpenOCD进行Debug
1、编程环境1.1、硬件 序号 名称 描述 备注 1 ESP-C3-12F-KIT 深圳安信可开发的基于其自家ESP-C3-12F模块的开发板。 淘宝购买 2 ESP-Prog 乐鑫官方推出基于FT2232HL接口芯片的JTAG调试器。 淘宝购买
2021-11-26 10:47:35 4743
原创 ESP-Drone控制板设计的第6个任务-绘制摄像头接口及扩展接口电路
1、摘要 ESP-Drone飞行控制板内置了一个摄像头接口,可以外接OV2640摄像头,通过此摄像头可以实现简单的航拍功能,从而增加使用者的乐趣。2、设计过程记录 第1步,查看官方参考设计摄像头及扩展接口部分的原理图。 如图2-1-1所示,这是一款基于OV2640摄像头的接口路及扩展接口部分的原理图,电路主要分为3个部分:1、 稳压电源;2、摄像头连接器;3、扩展连接器。 稳压电源部分有2组电源,均采用微盟电子公司的芯片进行设计,一路输出...
2021-11-24 11:08:48 1201
原创 ESP-Drone控制板设计的第5个任务-绘制电机驱动电路
1、摘要 ESP-Drone飞行控制板目前是为4旋翼无人机而设计,有4组独立的电机驱动电路。基于这是一款袖珍无人机的设计方案,故电机的驱动电路无需复杂的电调板,只用一个电子开关(例如: N-MOSFET)开启电机的电源就可以了。2、设计过程记录 第1步,查看官方参考设计电源部分的原理图。 如图2-1-1所示,这是一号电机的控制电路,其它3组电机的驱动电路与此电路都是一样的。此电路的工作原理如下: 电机的二个电极接在连接器J5上,电机的工作电...
2021-11-23 09:51:33 699
原创 ESP-Drone控制板设计的第4个任务-绘制3.3V电源电路
1、摘要单片机系统工作离不开电源,ESP-Drone控制板核心处理器的工作电源为+3.3V,考虑到无人飞行器一般采用+3.7V电池进行供电,此类电池充满电后的电压一般为+4.2V,所以要获得+3.3V的电源,必须使用低压差的线性稳压器(LDO)。2、设计过程记录第1步,查看官方参考设计电源部分的原理图。如图2-1-1所示, 官方的参考设计使用的LDO是盛邦微电子的SGM2205,经查阅资料,确认它在满负荷工作时的压差为450mV。在官方的电源设计电路中,还采用了一个P-MOSFET组成防
2021-11-22 10:02:18 1418
原创 ESP-Drone控制板设计的第3个任务--绘制MPU-6050-陀螺仪电路
1、摘要ESP-Drone控制板使用了一款陀螺仪芯片MPU-6050,陀螺仪是在航空航天领域被广泛所使用的仪器,有了它可以实时检测飞行器在空中的位置变化值,具体包括:Pitch(俯仰角)、Roll(滚动角)、Yaw(方位角),MPU-6050是一款集成了XYZ三轴陀螺仪、XYZ三轴加速度计的芯片,通过其内置的陀螺仪和加速度计加上数学算法,可以计算出飞行器物体的实时运动信息,给控制系统提供有效的实时控制所需要的反馈数据,从而让飞行器实现稳定可靠地飞行。2、设计过程记录第1步,查看官方参考设计陀螺仪
2021-11-18 09:34:36 1849
原创 ESP-Drone控制板设计的第二个任务-绘制USB-TTL串口下载电路和ESP32-S2芯片内置USB接口电路
1、摘要ESP32系列处理器一般会需要采用串口来下载代码,因此在其设计中都会保留一个USB-TTL串口电路,查看乐鑫官网的参考设计,基本上是采用CP2102这颗USB转TTL串口芯片,但在本设计中,我会用另一颗常见的国产芯片CH340来进行设计,这么做基于3个方面的考虑:1、支持国货;2、手头有现货;3、在以前的设计中用过,原理图不用重新绘制。2、设计过程记录第1步,阅读官方参考设计原理图。如图2-1-1所示,乐鑫官方ESP-Drone参考设计原理共分为3个部分:1、USB连接器...
2021-11-16 14:28:51 6026
原创 ESP-Drone无人机控制板设计的第一个任务---绘制ESP32-S2-WROVER模块及周边电路
第1步,查看官方ESP-Drone无人机ESP32-S2-WROVER模块的参考设计原理图第二步,用KiCAD绘制ESP32-S2-WROVER模块及周边电路。1、如图2-1所示,从KiCAD的原理图符号库中直接调出ESP32-S2-WROVER的原理图符号。注意,在安装KiCAD软件后,它的原理图符号库中已经有ESP32-S2-WROVER的原理图符号,可以直接调用,对于没有的原理图符号,可以进行自己创建。2、如图2-2所示,给ESP32-S2-WROVER模块...
2021-11-15 13:42:52 5878
原创 跟我一起复制一款基于ESP-Drone无人机控制板
1、ESP-Drone无人机项目简介ESP无人机是基于ESPRESIF ESP32/ESP32-S2 Wi-Fi芯片的开源解决方案,可通过Wi-Fi连接到手机应用程序或游戏控制台。ESP无人机具有简单的硬件、清晰和可扩展的代码体系结构,因此该项目可用作为STEAM(科学、技术、工程、数学)的教育平台或其它的控制领域。它的主要代码从CrazyFle开源项目移植而来,采用了GPL3.0协议。关于ESP-Drone更多的信息,请访问:https://hub.fastgit.org/espressi
2021-11-15 09:50:18 1890 2
原创 ESP32平台基于Kconfig.projbuild文件配置GPIO口设计LED跑马灯程序
1、摘要在嵌入式系统软件设计的过程中,总是要经常性地操作GPIO口,在ESP32平台中,我们可以使用下面的函数来初始化GPIO口:在图1-1所示的函数的时候,用到了一个结构体:如图1-2所示,在该结构体中有一个64位的变量:pin_bit_mask,该变量的每个比特位则对应一个GPIO口:当需要初始化特定的GPIO口时,只要将该变量对应的比特位置为1,然后后调用gpio_config函数即可。下面我就基于ESP32平台,使用Kconfig.projbuild文件创建LED配.
2021-11-08 09:58:21 1953
原创 使用Eclipse编译基于ESP32平台的Hello World工程
第1步,安装软件开发包。下载软件包,访问https://dl.espressif.com/dl/esp-idf/如图1-1所示,有二个安装包,可以根据自己的喜好选择一个进行安装,个人推荐下载离线安装包进行安装。第2步,启动Eclipse集成编程环境。如图2-1所示,ESP32平台开发环境安装完成后,在电脑的桌面有3个启动图标,选择“ESP-IDF Eclipse”图标启动Eclipse。启动后的软件界面见图2-2。第3步,创建一个ESP32软件工程。如图3-1所.
2021-11-04 14:51:47 522
原创 一款基于nRF52833的蓝牙开发板的技术方案选型
1、摘要 最近浏览Micro:bit Educational Foundation | micro:bit,发现他们推出了一个被称之为BBC micro:bit的项目,该项目针对儿童计算机编程教育而开发,可以采用积木方式、Python、JavaSript进行编程,可以看出这是一个非常有意思的项目,经过对此项目的进一步了解后,发现它是采用Daplink(一个ARM公司推出的软件、硬件都开源的调试器项目) + nRF52833(知名蓝牙芯片方案公司Nordic的一颗蓝牙芯片)进行设计,出于对其积木方...
2021-10-27 13:25:29 1510
原创 基于stm32f103xb处理器的Daplink固件编译
1、编译环境wsl虚拟Linux环境工作环境 Python 3.8.10 arm-none-eabi-gcc (15:9-2019-q4-0ubuntu1) 9.2.1 20191025 (release) virtualenv 20.8.12、编译过程记录第1步,在电脑中创建一个工作目录,当前创建的目录如下:D:\daplink_workspace工作目录可以创建在操作系统的任何盘符或者任何目录下,可根据自己的喜好进行设置。第2步,进入命令行界面,启动wsl虚拟...
2021-10-26 13:11:51 2011
TEST_LED_BLINK-ESP32平台-跑马灯-程序-2021-1108.rar
2021-11-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人