自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 第1周---ROS1.0环境安装与配置

1.熟悉ROS基本命令,并运行小海龟demo例子,通过键盘控制小海龟运动。同时用话题查看器查看两个node之间的消息传递;2.用C++或python写一个程序,控制小海龟走一个标准的圆形;成功后,再采用两台电脑,重新进行远程小海龟实验。(采用的直接导入Ubuntu18+ROS 镜像的方式)

2024-03-17 14:34:04 257 1

原创 第2周--ROS通信编程

存放工程开发相关文件的文件夹,其中主要包括src,build,devel,install文件夹。名称用途src代码空间(Source Space )build编译空间(Build Space)devel开发空间(Development Spaceinstall安装空间(Install Space)

2024-03-16 16:32:36 1513 1

原创 Proteus仿真51程序_LED流水灯

【代码】Proteus仿真51程序_LED流水灯。

2024-01-06 19:26:22 726 1

原创 stm32+OLED显示数据

2、 字库根据字节所表示点的不同有分为横向矩阵和纵向矩阵,目前多数的字库都是横向矩阵的存储方式(用得最多的应该是早期UCDOS字库),纵向矩阵一般是因为有某些液晶是采用纵向扫描显示法,为了提高显示速度,于是便把字库矩阵做成纵向,省得在显示时还要做矩阵转换。1、 在汉字的点阵字库中,每个字节的每个位都代表一个汉字的一个点,每个汉字都是由一个矩形的点阵组成,0代表没有,1代表有点,将0和1分别用不同颜色画出,就形成了一个汉字,常用的点阵矩阵有12x12, 14x14, 16x16三种字库。

2023-12-31 12:18:15 1852 1

原创 FPGA编程入门

再改用 Verilog编程(3种模式:门电路、数据流和行为级描述),完成这个4位全加器设计,并观察Verilog代码编译综合后生成的 RTL电路,与之前电路图设计的4位全加器电路进行对比。如果仿真波形的逻辑功能正确,就连接的实验室 DE2-115开发板硬件上,完成引脚绑定,烧录,再拨动按钮开关,进行加法器 正确性的验证。然后封装这个1位全加器为自定义的一个子电路模块(比如名称为OneAdder),然后新建一个项目,用1位全加器串行级联方式完成一个4位全加器的设计,并进行功能测试。

2023-12-22 22:04:17 25

原创 嵌入式RTOS多任务程序设计

在#include 下面添加 #include “gpio.h” #include “app_cfg.h”#define APP_TRACE BSP_Ser_Printf 改为 #define APP_TRACE(void)将#include 改为 #include “stm32f1xx_hal.h”链接:https://pan.baidu.com/s/10RqsDRecbmVteWmDv2oUNQ。打开app_cfg.h文件。打开lib_cfg.h文件。

2023-11-26 21:11:16 35 1

原创 定时器&PWM应用编程

定时器是一种计时的工具,它具有延时、频率测量、PWM输出、电机控制及编码接口等功能.STM32F103微控制器内部集成了多个可编程定时器,可以分为基本定时器(TIM6和TIM7)、通用定时器(TIM2~TIM5)和高级定时器(TIM1、TIM8)3种类型。从功能上看,基本定时器的功能是通用定时器的子集,而通用定时器的功能又是高级定时器的一个子集。:定时器的时钟源经过预分频器分频后作为计数器的时钟输入。:配置计数器的计数模式(向上计数、向下计数、向上/向下计数)、计数方向(递增或递减)以及计数器的初始值。

2023-11-23 20:27:41 39

原创 STM32通过IIC协议采集温湿度

I2C总线是Philips公司在八十年代初推出的一种串行、半双工的总线,主要用于近距离、低速的芯片之间的通信;I2C总线有两根双向的信号线,一根数据线SDA用于收发数据,一根时钟线SCL用于通信双方时钟的同步;I2C总线硬件结构简单,简化了PCB布线,降低了系统成本,提高了系统可靠性,因此在各个领域得到了广泛应用。I2C总线是一种多主机总线,连接在 I2C总线上的器件分为主机和从机。主机有权发起和结束一次通信,从机只能被动呼叫;

2023-11-13 15:37:11 40

原创 基于DMA的串口通信

DMA的基本定义DMA,全称Direct Memory Access,即直接存储器访问。DMA传输将数据从一个地址空间复制到另一个地址空间,提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。当CPU初始化这个传输动作,传输动作本身是由DMA控制器来实现和完成的。DMA传输方式无需CPU直接控制传输,也没有中断处理方式那样保留现场和恢复现场过程,通过硬件为RAM和IO设备开辟一条直接传输数据的通道,使得CPU的效率大大提高。DMA的主要特征。

2023-11-04 21:14:46 51 1

原创 基于HAL库的LED流水灯(外部中断模式控制亮灭)

黑线接A7,低电平,红线接A1,高电平,棕线接B5,为开关。User Label设置别名,方便以后调用。2)在main.c重写中断处理。下图为设置触发模式。1)寻找中断处理函数。3)流水灯的实现代码。

2023-10-29 19:05:18 213 1

原创 STM32简单串口通信

野火串口助手链接:提取码: 5x3aSTM32串口下载软件链接:FlyMcu提取码: 9y4cchar c;//指令 #:停止 *:开始\n";//输出信息char tips[]="无效指令......\n";//提示1char tips1[]="开始发送......\n";//提示2char tips2[]="暂停发送......\n";//提示3//标志 #:停止发送, *:开始发送。

2023-10-28 21:28:07 83 1

原创 嵌入式Linux系统开发基础【04】

在只使用keil的时候,无论是创建工程还是代码编写,都要麻烦很多,而用STMCubeMX+keil+hal库实现则比较容易。

2023-10-17 21:39:33 25

原创 嵌入式Linux系统开发基础【03】

3)将x2x、x2y目标文件用 ar工具生成1个 .so 动态库文件, 然后用 gcc将 main函数的目标文件与此动态库文件进行链接,生成最终的可执行程序,记录文件的大小,并与之前做对比。由前面的分析我们知道,代码区和常量区的内容是不允许被修改的,ROM(STM32就是Flash Memory)也是不允许被修改的,所以代码区和常量区的内容编译后存储在ROM中。全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量、未初始化的静态变量在相邻的另一块区域。

2023-10-07 20:29:58 28 1

原创 嵌入式Linux系统开发基础【02】

通过以上实践,结合阅读ARM、STM32技术手册,深入思考STM32F103系列芯片的地址映射和寄存器映射原理,GPIO端口的初始化设置的一般步骤。2)volatile关键字:用于告诉编译器该变量可能被程序以外的因素修改,因此每次访问该变量时都必须从内存中读取或写入,而不是使用寄存器中的副本。对外部设备的操作需要通过访问寄存器来实现,寄存器的地址一般是固定的,通过读写寄存器来实现对设备的控制。对内存中的变量进行读写操作时,编译器会将变量的值存储在内存中的特定地址,并通过变量名来引用。

2023-09-26 21:32:51 40

原创 嵌入式Linux系统开发基础之使用gcc和Makefile编译C程序

请编写一个主程序文件 main1.c 和一个子程序文件 sub1.c, 要求:子程序sub1.c 包含一个算术运算函数 float x2x(int a,int b),此函数功能为对两个输入整型参数做某个运算,将结果做浮点数返回;主程序main1.c,定义并赋值两整型变量,然后调用函数 x2x,将x2x的返回结果printf出来。1) 请在ubuntu系统用gcc 命令行方式编译主程序main1.c 并运行;2) 请在windows系统下用你熟悉的编译工具编译主程序main1.c 并运行;

2023-09-16 18:01:35 64 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除