- 博客(32)
- 资源 (6)
- 收藏
- 关注
原创 key组合按键,长短按键,连续按键 识别方案
假如我们有30个按键,要实现识别所有按键的组合短按,组合长按,组合连续按,等等,按规则写出来非常麻烦,我们使用宏定义,整型变量按位检测就很方便。
2022-07-26 11:47:02 1564 1
原创 httpd和cgi 的使用
在linux上面我们可以搭建一些web服务器,然后通过浏览器进行访问交互。我们的soc上面也是基于linux的,所以只要网络连通了,我们也可以搭建服务器,然后连接网络后,通过浏览器实现访问交互,可以实现配置参数,上传下载图片等一系列操作。目前流行的web服务器有很多,大多是C/S程序结构。常用的有nginx,Apache,IIS,apache的运行程序是常见的httpd。这里的Client可以是各种脚本或其它语言的程序,包括c程序。Client和sever都是运行在同一设备上的。......
2022-07-26 11:25:52 969
原创 最小的BootLoader 更新引导程序
用于stm32工业控制芯片的最小boot更新程序。程序整体小于1k,对ram较小,flash充足,有程序备份区域的适用。其它单片机快速移植使用。
2022-07-26 11:08:53 466
原创 widows计算器恢复
右键Windows Powershell并使用管理员身份运行:商店恢复:Get-AppXPackage *WindowsStore* -AllUsers | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}计算器恢复:Get-AppxPackage *calculator* -AllUsers| Foreach {Add-AppxPackage
2021-12-31 16:45:04 443
原创 vscode 下载加速方法
vscode 下载加速方法:官方的下载链接例如下:https://az764295.vo.msecnd.net/stable/83bd43bc519d15e50c4272c6cf5c1479df196a4d/code_1.60.1-1631294805_amd64.deb将加粗部分替换为vscode.cdn.azure.cn,镜像下载快的飞起。https://vscode.cdn.azure.cn/stable/83bd43bc519d15e50c4272c6cf5c1479df196a4d/cod
2021-09-22 10:44:54 5233 1
原创 ESP32 esp-idf linux最快环境配置,使用自定义环境配置文件。
需求我们在开发esp32系列的wifi模组时,官方的说明比较繁杂,且服务器github在国外速度慢死,但实际上都是可以解决的,只是找不到要点。在这里我把最近调试的流程写成脚本文件,这样,以后在使用的时候只需要按部就班,执行几个shell脚本就可以完成环境搭建。第一步 选择linux虚拟机这里选择ubuntu18.04.5 感觉对比20.04 和 16.04 要好用些。安装好后,换上阿里云的源(这里自行百度)后。我们下载些基本工具。sudo apt updatesudo apt install
2021-07-07 19:10:30 784
原创 linux 安装中文输入法 ubuntu
简单的命令安装下就可以使用了sudo apt-get install ibus //通常默认安装了sudo apt-get install ibus-pinyin然后输入ibus-setup进行配置ibus-setup选择添加–》汉语–》具体输入法。最后重启。输入法切换一般是win键+空格。还有一个设置,可能上面配置无效,使用下面配置即可在系统设置中选择文本输入点击+号后,选择汉语,添加后记得把汉语拖到第一个,然后重启试试。...
2021-06-28 14:33:01 366
原创 win10快速访问 文件夹无法删除
快速访问的文件夹右键无法取消固定,不管怎么试都删不掉。解决办法找到快速访问的存储目录是这里,大家可以应对自己所用环境修改用户名:C:\Users\用户名\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations删除路径中的所有文件,快速访问就会重置到最初的状态!https://blog.csdn.net/qq_43827595/article/details/100013746...
2021-06-28 09:54:30 7732 2
原创 git linux快速入门
GIT的入门使用说明git的使用非常灵活,但却很零散,简单说下基本的window和linux下面git的使用一、GIT的优缺点优点:1、适合分布式开发,强调个体,强调备份 2、由于每个用户都有一份本地备份,基于本地工作,所以服务器基本没什么风险压力 3、速度快,灵活,随时从服务器上克隆下来。 4、任意两个开发者之间可以很容易的解决冲突 5、基本离线工作,服务仅作备份和合入的工作缺点:1、学习周期相对比较长
2021-06-25 16:00:05 910
原创 SVN windows 快速入门
SVN的入门使用说明鉴于工作上 使用SVN较多,在此总结下使用经验。一、SVN的优缺点优点:1、项目本地拆简版本,节省硬盘空间; 2、易上手,管理方便,逻辑明确,适合一般人的思维习惯 3、易于管理,集中式服务器更能保证安全性 4、代码一致性非常高 5、适合开发人数不多的项目开发缺点:1.依赖单一服务器,服务器安全风险大。二、软件安装windows端:服务器:https://www.visualsvn.co
2021-06-15 09:51:50 869
原创 SVN linux 快速入门
linux服务器快速创建linux的服务器快速,小巧,很方便我们搭建一些简单的服务器,但是搭建SVN服务器会碰到些意外的错误,我这里写下快速搭建的流程。第一步 安装subversion首先ubuntu的服务器环境sudo apt-get updatesudo apt install subversion第二步 创建版本库注意这里的版本库是配置文件存放的位置,并不是简单的指存放项目的文件夹,我们不能直接把想上传版本库的文件复制进去。和版本库的沟通只能是 提交和更新mkdir svncd sv
2021-06-08 13:31:29 248
原创 STM32 RC522串口驱动程序 (简单直接)
rc522作为使用非常多的读写卡芯片,使用SPI芯片读写应用已经非常广了。但有些时候我们只有串口可以使用,或者我们觉得串口使用更加方便,那么就必须要编写串口的驱动程序。不过很难找到可以直接使用的串口程序。所以在此将我这边写好的串口驱动写好如下:直接上代码下面是RC522.C的驱动文件。支持读写卡号8位数据。rc522用的是stm32 的串口3,调试显示是串口1;#include "rc522.h"#include "delay.h"/////////////////////////////////
2020-10-27 17:58:22 7795 7
原创 stm32 最小的boot 仅一个main文件 用作更新
通常boot的功能时用来引导app区程序运行的,对于小的项目这仅仅是一个跳转程序。当然还有一个重要的功能,就是用作程序区域的更新升级。所以下面的方案就只针对引导程序区和更新程序区而设计,仅用一个main 文件实现该功能。上代码#include "stm32f10x.h"#define APP_CNT (100)/* 基地址和分区大小 */#define ADDR_START (0x08000000)#define SIZE_FLASH (256*1024)#define SIZE_BOOT
2020-10-26 03:39:55 264
原创 STM32 rtc唤醒 低功耗待机模式 避免iwdog看门狗方案
我们知道stm32f103有很好的低功耗模式,可以使用rtc的闹钟用于定时的唤醒。但很难在IWDOG的使用情况下,设置低功耗。我为了处理这个问题,我们需要设置掉电标志位,因为stm32复位重启后看门狗会失效,在配置看门狗前去检查低功耗标志是否使能,如果使能则直接进入低功耗。从而避免了看门狗的重启困扰。BKP区域用于掉电标志非常安全合适。直接上代码(测试板子stm32f103)首先是rtc.c文件,包含掉电备用数据读写(BKP区域用作设置掉电标志位最合适了,有20个16位寄存器),RTC时钟初始化函数,时
2020-10-26 03:20:28 2035
原创 STM32 内部flash 数据掉电存储
说明对STM32内部的flash进行结构体数据存储,和读取。方便小型工程的数据掉电保存。在初次使用的时候进行自动初始化默认值,后续掉电就不会再初始化了。直接上代码代码中的DATA_STORE需要自行定义结构体变量。#include "store.h"#define FLASH_START 0x0803D800//flash起始地址extern STORE_SHEET DATA_STORE;//数据存储结构体extern u16 crc_cal_by_byte(const u8* ptr, u
2020-10-22 12:13:27 5734
转载 获取结构体中的成员偏移量((size_t) &((TYPE*)0)->MEMBER)
define offsetof(TYPE, MEMBER) ((size_t) &((TYPE*)0)->MEMBER)对于这个宏可以大致分为5步:0((TYPE *)0)( ((TYPE *)0)->MEMBER )&( ((TYPE *)0)->MEMBER )( (size_t) &( ((TYPE *)0)->MEMBER )1、内存地址开始于0;2、将0转换为type类型的结构体指针,换句话说就是让编译器认为这个结构体是开始于程序
2020-10-15 14:25:02 954
原创 linux socket循环连接测试代码。
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录一、linux socket 学习和编写?二、直接上代码三、效果图示一、linux socket 学习和编写?主要目的是使用vs 调试linux socket程序(直接linux上可以运行)。服务器端循环接收客户端消息,发送消息给客户端,客户端同样发送和接收消息。循环建立连接。使用vs 调试linux程序,具体可以参考 linux c程序编写工具(使用visual studio)二、直接上代码/* 服务器端 */#i
2020-10-14 12:38:26 459
原创 stm32大小端转换宏定义函数(包含uint64_t转换)
大小端问题:提示:这里简述项目相关背景:stm32f03上面编程使用的是小端模式,但网络传输使用的是大段形式,我们需要使用大小端转换宏转换成大端。转换宏定义如下:#include “stdint.h”#define sw16(A) ((((u16)(A) & 0xff00) >> 8) | (((u16)(A) & 0x00ff) << 8))#define sw32(A) ((((u32)(A) & 0xff000000) >>
2020-10-12 18:04:06 3535
原创 linux c程序编写工具(使用visual studio 2019)
学习目标:使用visual studio 2019作为linux程序编写的新手,常常苦于linux单调的编程环境,最合适的方式莫过于在windows上面使用友善的IDE编程界面,编写好代码,再复制到linux上编译运行。最近我就探索了一下在windows上使用VS来编写,vs自动编译在linux上运行。开发环境搭建:我们尽量选择最新的软件去安装,新的东西总比老的东西有提升改进。1.首先是要有一台电脑,我这边安装了window102.其次是安装VMware虚拟机,准备linux的镜像文件。V
2020-10-10 01:21:07 1421
原创 ubuntu更新时程序被锁
1.换个阿里云的源,重启2.可以稍微等待下,可能被其它程序占用3.终端输入 ps aux ,列出所有进程。找到有apt-get的进程的PID,sudo kill PID。4.或者强制解掉sudo rm /var/cache/apt/archives/locksudo rm /var/lib/dpkg/lock...
2020-09-29 23:36:22 381
原创 vmware tools安装最快捷方法。sudo apt-get install open-vm-tools-desktop -y
sudo apt-get install open-vm-tools
2020-09-28 22:59:40 6942
转载 newlib简介笔记(解决undefined reference to _sbrk() _write() _lseek() _read()的连接错误)
说明:newlib 的说明,网上找不到清楚的介绍,但是百度给出了答案https://baike.baidu.com/item/newlib/1886687?fr=aladdin简单的废话介绍:Newlib是一个面向嵌入式系统的C运行库。最初是由Cygnus Solutions收集组装的一个源代码集合,取名为newlib,现在由Red Hat维护,最新的版本是3.3.0。对于与GNU兼容的嵌入式C运行库,Newlib并不是唯一的选择,但是从成熟度来讲,newlib是最优秀的。newlib具有独特的
2020-05-28 19:41:25 2297
原创 关于stm32 卡死在串口接收中断中的处理方法。卡死原因是串口自带的BUG出现USART_FLAG_ORE标志位无法清除。
前端时间遇到正常使用的串口一直卡死在USART_FLAG_ORE标志位处,有一定概率发生这个,但在发生后,就会一直进入中断。按照网上的方法做了清除标志位处理,但结果还是解决不了。下面是之前写的代码连接,https://blog.csdn.net/qq_42074368/article/details/103404573通过调试发现,中断一直进入这个地方 if(USART_GetFl...
2020-01-18 16:21:55 23594 5
原创 STM32 定时器与延时函数
上代码首先头文件timer.h#ifndef __TIMER_H_#define __TIMER_H_#include "stm32f10x.h" void TIM2_init(u16 arr,u16 psc);__weak void Timer2_ISR(void);u32 F420_TICK(void);_Bool F420_CHECK_TIMEOUT(u32 ...
2019-12-05 16:34:00 1500
原创 STM32 5个串口初始化,前三个DMA操作,自制队列缓存机制,测试稳定
直接上代码:首先头文件uart.h#ifndef _IOT_UART_H_#define _IOT_UART_H_#include "stm32f10x.h" #define buff 5#define blen 350typedef struct { char DMA_Buffer[blen]; char RxBuffer[buff][blen]; char ...
2019-12-05 14:51:49 3172
原创 STM32 CAN 配置 过滤器测试可用
//======================================================================================//使用32位的掩码模式,但只使用了后16位作为ID 。发送的话我们直接使用32位的扩展ID:过滤器的ID和掩码MASK需要做按位平移 CAN_FilterInitStructure.CAN_Fi...
2019-12-04 15:28:52 976
原创 WINDOWS 耳机 有驱动 没声音
找了好久找到 耳机没有声音的解决办法了。第一步不要怀疑你的电脑驱动问题,可能就是驱动默认不使用前面板插孔。所以我们得开其它.首先打开控制面板,找到硬件和声音第二步,我们打开硬件和声音界面,千万别管声音那一行一堆垃圾东西。我们点最下面的Realtek高清晰音频管理器。打开第三步,我们看到的界面可能并不相同,但都是一个模子刻出来的。而且看到没,前面板,后面板全是黯淡无光的,显然...
2019-12-02 20:29:58 596
转载 EMMC内存芯片和NAND区别
eMMC全称为embeded MultiMedia Card。eMMC为MMC协会所订立的内嵌式存储器标准规格,主要是针对手机和移动嵌入式产品为主。而且eMMC目前是最当红的移动设备本地存储解决方案,目的在于简化手机存储器的设计。使用emmc的好处是,除了得到大容量的空间(这一点,只用NAND FLASH多堆叠也可以做到),还有就是emmc可以管理NAND(坏块处理,ECC)等。NAN...
2019-11-16 22:09:14 10512
原创 QT打包程序,使用Enigma Virtual Box9.40
之前编写了几个QT 程序,感觉还可以,但看上去文件特别多于是在网络上找了一个打包程序Enigma Virtual Box,将这些文件变成一个exe文件。我们下载并打开这个文件。然后把文件拖进去,出现提示框,我们点确认。选择可以执行的exe主程序文件,默认输出虚拟文件不变,最后点击打包。程序运行,并生成文件QT_QWQB_boxed.exe这样我们的程序...
2019-11-14 22:33:45 534
原创 远程桌面卡顿
最近一直使用远程面在家访问公司的电脑。但每次都是从远程云服务器,再远程公司的电脑,原因是因为直接访问公司的电脑远程桌面会一直卡顿。(公司是专线网络,自己的计算机在路由器上做了映射,所以可以直接访问)。 为了排除这个每次都是走服务器的过程,网上也找了许多方法,但全部是局域网玩的方式。无奈自己下手对比下和服务器远程的区别。下面分别是服务器设置和家里电脑设置:...
2019-11-13 23:25:12 6059
Windows11 右键菜单恢复脚本
2022-08-14
linux设备使用http服务自动更新检测
2022-07-26
最小的BootLoader 更新引导程序
2022-07-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人