自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 [ROS] 创建并启动功能包 & 收发topic例程

[ROS] 创建并启动功能包 & 收发topic例程ROS 版本:melodic1. 创建工作环境 ws(如果已经有工作环境可忽略)mkdir -p ~/catkin_ws/srccd ~/catkin_ws/catkin_make2. 在 ws 中创建 packagecatkin_create_pkg 只是创建了包目录和默认的配置版本,没有做啥其他神奇的事情。cd ~/catkin_ws/srccatkin_create_pkg testpkg roscpp std_

2022-05-14 23:06:50 623

原创 【ESP】win10 win11 Arduino 安装 ESP32 C3 S2 ESP8266 扩展

1 安装并打开Arduino2 设置 ESP32 C3 S2 ESP8266 扩展链接https://dl.espressif.com/dl/package_esp32_index.jsonhttp://arduino.esp8266.com/stable/package_esp8266com_index.jsonhttps://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_dev_index

2022-05-01 17:29:31 1683

原创 C++ 自己实现一个string类

#include <iostream>#include <string.h>using namespace std;#define KSTRING_BUFF_MAX 100#define KSTRING_DEFAULT_CH '\0'class kstring{private: char data[KSTRING_BUFF_MAX]; int data_p;public: kstring(void) .

2021-10-10 15:47:59 391 1

原创 wds - 输入子系统实现按键功能

输入子系统是所有I/O设备驱动的中间层Linux内核为了能够处理各种不同类型的输入设备,比如 触摸屏,鼠标 , 键盘 , 操纵杆 ,设计并实现了为驱动层程序的实现提供统一接口函数;为上层应用提供试图统一的抽象层 , 即是Linux 输入子系统 。软件实现步骤一、创建输入设备结构体static struct input_dev *_dev = NULL;_dev = input_allocate_device();步骤二、设置该设备将支持哪些事件、哪些按键

2021-10-01 17:49:53 189

原创 wds - 如何实现按键消抖

一个关于按键的道理 在按键被按下的时候,发生的信号不是一个完美的信号,而是会产生一些抖动,连续产生几个信号后,稳定下来,经过按键厂家们的测试,大概在10ms~20ms之后,按键信号会稳定下来。 消抖 其实就是消除这10ms~20ms期间的信号不稳定。 定时器延时消抖原理: 收到按键信号后,设定一个闹钟,闹钟将在10ms之后提醒我们进行处理按键信号。如果发生抖动,则在下一个按键信号修改闹钟的时间为这个时刻的10ms之后,以此类推。 最后按键信号稳定下来之后,只会触发

2021-10-01 17:49:07 190

原创 wds - 按键button 异步通知 signal实现

一、Signal小测试步骤一、编写测试代码#include <stdio.h>#include <signal.h>void my_signal_fun(int signum){static int cnt = 0;printf("signal = %d, %d times\n", signum, ++cnt);}int main(int argc, char **argv){ //绑定用户信号...

2021-10-01 17:48:20 140

原创 wds - 按键button 三种方式(查询、中断、poll)

按键实现的三种方式 查询——消耗CPU资源 中断——read会休眠,唤醒,但是不会返回 poll——需要指定超时时间 一、查询方式传出4个字节的数组,分别表示4个按键的当前状态static ssize_t _drv_read(struct file *file, char __user *buf, size_t size, loff_t *ppos){unsigned char state[4] = {0}int r...

2021-10-01 17:47:40 549

原创 wds - 2440挂载NFS

挂载NFS的步骤 1、需要实现2440与ubuntu之间的互联 2、在2440上挂载nfs,实现文件夹共享 硬件接线方式步骤步骤一、配置win10以太网口【注意】:这里的网段需要配置与WLAN不同。步骤二、配置虚拟机上的Ubuntu【注意】:这里需要选择主机与2440开发板网线所相连接的那个网卡;步骤三、配置共享文件夹在Ubuntu中,添加共享文件sudo mkdir -p /ku...

2021-10-01 17:46:50 209

原创 wds - 第一个字符设备驱动编码 模板 led

如何添加一个驱动程序步骤一、实现file_operation结构体,包括open、read、write包含的头文件#include <linux/module.h>#include <linux/kernel.h>#include <linux/fs.h>#include <linux/init.h>#include <linux/delay.h>#include <as...

2021-10-01 17:42:28 96

原创 wds - 根文件系统

关系链 uboot的目的是启动内核 内核的目的是启动应用程序 应用程序的位置,在根文件系统中 什么是根文件系统 类似于win下的CDE盘,Linux将存储设备分为几个分区,不同分区存放不同类别的文件; 然而,Linux中有些必要的、基本的文件,它们合称为【根文件系统】 比如内核映像文件、第一个程序init,shell,依赖的库等 文件类型:用busybox制作根文件系统.

2021-10-01 17:40:53 159

原创 wds - 为什么要重定位呢?

芯片上电时,会将Nand中的前4K复制到SDRAM(硬件实现)从Nand 0地址开始运行什么要重定位呢?情形一:程序从Nand中启动 如果是从Nand中启动,Soc上电后硬件会自动把Nand的前4K代码拷贝到Soc内部的SRAM中,并从SRAM开始运行;(因为内部SRAM只有4K) 由于这个4K的限制,代码超过4K就无法运行,所以,需要Nand上的程序首要任务就是把Nand的代码全部拷贝的外部的64K的SDRAM中,然后在SDRAM中运行程序。 情形...

2021-10-01 17:39:03 144

原创 wds - 制作Linux内核

内核的终极目的——启动应用程序获得内核二进制文件步骤第一步:解压缩tar xjf linux-2.6.22.6.tar.bz2第二步:打补丁cd linux-2.6.22.6patch -p1 < ../linux-u2.6.22.6_jz2440.patch第三步:配置如果遇到“** No rule to make target 's3c2410_defconfig'. Stop.”这个问题,可以参考:make ..

2021-10-01 17:37:24 162

原创 wds - 第一个实验——点亮LED

1、先来认识几条基本的汇编指令 LDR——load读内存(4字节,32位) STR——store写内存 B——跳转 MOV——move赋值 2、编写汇编代码/* LED引脚:GPF4 */.text.global _start_start:/* TODO: 配置GPF4为输出,将0x100写到0x56000050 */ldr r1, =0x56000050ldr r0, =0x100str r0, [...

2021-10-01 17:24:41 118

原创 wds - uboot,自己做一个bootloader

bootloader的目标——从Nand中读出内核、启动内核一、uboot如何获得一个uboot文件【注意,uboot文件与patch不要在共享路径下进行解压和打补丁,否则可能会有问题】【如果出错的话,可以加上“sudo”试一试】步骤一:先在liunx环境下解压uboot开源源代码tar xjf u-boot-1.1.6.tar.bz2步骤二:然后打开发板的补丁patch -p1 < ../u-boot-1.1.6...

2021-09-28 22:19:09 121

原创 wds - JZ2440开发板新上手

开发板资源图一些注意事项 uboot可以烧写到nand和nor,裸板程序只能烧写到nand 启动选择开关——选择从nand启动,还是nor启动 烧写成功后需要将JTAG断开,因为JTAG中有复位引脚 注意你烧录的位置的nor还是nand,选择启动位置 软件目录链接:https://share.weiyun.com/AVlDR0RV 密码:8j3d7y1、仿真烧录的驱动(需要禁用签名)2、win下的of...

2021-09-28 21:24:43 462

原创 STM32CubeMX+RTThread 移植Finsh

上一篇已经完成在cubemx中添加rtt内核源码,这一篇来简单的添加Finsh控制台;STM32CubeMX+RTThread 生成Keil5工程一、添加Finsh源码step 1:step 2:step 3:二、配置串口、生成工程step:配置串口1为异步串口,其他参数保持默认值;PA9(TX)、PA10(RX)三、添加代码(以下代码直接添加即可,不需要更改源码,因为源码函数定义为__weak类型)step 1:由于SYS时钟,我也选择了滴答定时器,

2021-04-24 00:31:40 731

转载 (转)K210学习笔记(基于PlatformIO IDE)(1环境搭建)

https://www.jianshu.com/p/2d9065bf997a

2021-04-18 13:05:12 433

原创 windows10 Arduino 安装ESP32

打开Arduino 【文件】-->【首选项】-->【附加开发板管理器网址】-->https://dl.espressif.com/dl/package_esp32_index.json 【工具】-->【开发板】-->【开发板管理器】 输入esp32,查找安装...

2021-04-17 19:24:39 568

原创 STM32CubeMX+RTThread 生成Keil5工程

软件信息STM32CubeMX:V6.0.1Keil MDK:V5.28硬件信息stm32f103c8t6最小系统板ST-LINKV2一、使用CubeMX创建一个stm32工程初始化Debug、时钟选择芯片; Pinout & Configuration标签页中,左侧选择【SYS】,选择【SerialWire】(SWD); 选择【RCC】,打开HSE、LSE; ClockConfiguration标签页中,靠中间位置输入框中填入最大时钟频率——7...

2021-04-07 00:14:59 2812 1

原创 老电脑宏基E1-471G SSD 装win10系统

背景 给我姐的笔记本电脑(宏基E1-471G)重装系统;老机器,原来用的系统的win7,想要装个SSD固态硬盘,再装个win10; 问题:SSD装在光驱位还是原硬盘位呢? 光驱位接口是SATA2,硬盘位为SATA3,为了保持SSD是最优运行,将SSD放置在硬盘位,将拆下来的HDD放在光驱硬盘托,放在光驱位。 问题:使用微软官方的U盘启动盘制作工具,为啥不能够成功从U盘启动呢? 我按照以往的方式,使用微软官方提供的启动盘制作工具,将自己的U盘作为启动盘;但当按照以往...

2021-03-08 22:30:41 4482 1

原创 Keil V5.2X环境 无法烧录 STLink无法更新固件

Keil V5.2X环境 无法烧录 STLink无法更新固件一、问题描述:点击下载时,提示STLink需要更新;点击yes后提示打开升级界面;先点击DeviceConnect,然后点yes,提示升级失败——【The up-to-date firmware is too big for this board. Can't update.】如果点击No,不升级STLink固件时,则弹出【Command not supported】二、问题分析问1:为什么无...

2021-03-03 23:39:43 3957 19

原创 lvgl使用外部SRAM,图像边缘显示模糊重影

文章目录简述环境硬件环境软件环境问题描述问题解决简述使用正点原子HAL库例程移植littlevGL(lvgl),使用外部SRAM作为内存池,图像边缘显示模糊问题解决;环境硬件环境正点原子F407探索者开发板480x800 TFT显示屏软件环境Keil v5.28lvgl v7https://github.com/lvgl/lvgl工程来源(A盘)\4,程序源码\3,标准例程-HAL库版本\实验28 触摸屏实验 例程代码进行移植SRAM代码来源(A盘)\4,程

2020-10-13 01:14:16 3840 5

原创 CubeIDE移植letterShell报错怎么办?教你

[TOC]]lettershell 开源地址:https://github.com/NevermindZZT/letter-shell参考mculover666的博客文档移植;https://blog.csdn.net/Mculover666/article/details/105141286在这里与上述链接不同的是——使用了CubeIDE——故需要多一个步骤。如果没有添加这个步骤,就会报错即使你自己定义了这两个变量,还是运行不了[]那么是添加什么步骤呢?查阅gith

2020-08-28 14:36:43 792

原创 Source Insight 如何兼容AutoSAR编码风格

近来使用AutoSAR架构的软件框架,使用的函数申明、变量申明、宏定义等,都使用该架构的规范。公认代码阅读神器Source Insight 却不能够支持该规范,这里将介绍如何修改Source Insight 的C.tom文件,使得兼容。先来介绍以下AutoSAR的编码风格函数申明或定义是这样的:FUNC(void,AAA_CODE) Aaa_Init(void){}全局变量的...

2019-12-18 18:37:23 1856 2

原创 stm8s001 - SWIM复用为ADC输入 & ADC电压值不准确?

文章目录引脚功能软件配置引脚功能软件配置

2019-08-09 23:09:16 1775 1

原创 stm8s001j3 - UART串口发送

文章目录UART-TX引脚软件配置Option Byte配置STVP配置IAR配置演示效果UART-TX引脚由图中可以看到UART-TX第5脚和第8脚都有,但是由于第8脚需要用到SWIM烧录,避免麻烦便使用了第5脚——PA3。软件配置uart_init(uint32_t baud_rate){ // }void uart_send_byte(uint8_t Data){ ...

2019-08-08 13:30:32 2158 3

空空如也

空空如也

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

TA关注的人

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