- 博客(155)
- 资源 (3)
- 收藏
- 关注
原创 C语言利用编译器参数检查
原理sizeof(char[1])在编译阶段不会报错,而sizeof(char[-1])会报错用法#define BUILD_CHECK(condition) ((void)sizeof(char[1 - 2*(!(condition))]))struct XX{ int a; int b; int c;};int main(void){ //如果结构体不等于12个字节则在编译阶段会报错 BUILD_CHECK((sizeof(struct XX) == 12)); retu
2020-11-11 20:20:17 599 1
原创 树莓派4设置
不过,您可以要求所有以 sudo 运行的命令都输入密码,从而提高 Raspberry Pi 的安全性。输入网络密码,就可以成功连接到网络。如果你的树莓派可以通过以太网连接或第二个无线适配器访问互联网,那么你应该可以访问互联网。,您希望使用的用户名,紧接着是冒号,然后是您希望使用的密码的加密表示。出现提示时,输入密码并验证。然后,该命令将输出所提供密码的加密版本。要在命令行上创建托管无线网络,请运行以下命令,用自己的值替换。要求输入密码,请为你的用户账户编辑。文件,用你的用户名替换文件名中的。
2024-06-25 20:05:51 348
原创 雅特力串口485模式TCDT/TSDT说明
TCDT(发送器完成延迟时间(transmit complete delay time)占了5个bit位,则最大值为。在代码上设置TCDT = 31,最后一个字节发送的字节数据为0,则延时时间为。用逻辑分析仪实际测量时间为。波特率为9600,则周期。
2024-05-31 10:21:29 326
原创 c 语言超时溢出问题
在嵌入式开发过程中,经常会遇到溢出问题,例如在使用软定时判断时间是否超时。是一个无符号数,假如是一个无符号8位,当为254,超时时间为2个tick,则timeout为0,这时候条件成立,判断出错。
2023-08-28 18:43:20 1868
原创 modbus之crc16计算代码
这边提供两种方式,第1种是查表法方式,速度会快一点,但是需要多占用一些空间;第二种是纯计算方式,速度相对第一种会慢一点,但是比较省空间。
2022-11-14 19:07:04 723 1
原创 安装Ubuntu20.04后时间不准
买了一台瘦客户机,原先是安装Windows操作系统的,后面安装Ubuntu20.04后导致时间一直有问题,不准。
2022-08-01 22:56:15 721 1
原创 321备份策略
3-2-1备份策略3:除了原始数据,要有333份数据拷贝2: 至少要有222种存储介质来存储333份数据拷贝,比如不能放在同一个硬盘或者同一台计算机。1:有111份数据要放在异地,比如云盘或者其他城市参考链接...
2022-05-20 03:29:03 374
原创 NSSM使用教程
NSSM 介绍NSSM(the Non-Sucking Service Manager)是Windows环境下一款免安装的服务管理软件,它可以将应用封装成服务,使之像windows服务可以设置自动启动等。并且可以监控程序运行状态,程序异常中断后自动启动,实现守护进程的功能。不仅支持图形界面操作,也完全支持命令行设置。下载并使用下载链接使用注册服务:nssm install <servicename>启动服务: nssm start <servicename>停
2022-05-20 03:27:38 1368
原创 树莓派 安装 gogs
gogs官方主页主页下载安装方法有多种,这边用二进制的方法安装,从这里选择合适的二进制文件,复制连接,在树莓派/tmp目录下进行下载:cd /tmpwget https://dl.gogs.io/0.11.91/gogs_0.11.91_raspi_armv7.zip这样就把二进制文件下载下来安装在git用户下安装,这样不用改任何东西,已经创建git用户的不用再创建,没有创建的要创建下:sudo adduser --disabled-login git一路按回车,创建完以后,把刚才下
2021-07-30 10:37:11 387
原创 树莓派安装配置syncthing
下载从这里下载软件,下载后解压,把二进制文件放到/usr/local/bin/目录在命令行输入syncthing --version命令,能打印出版本即可。自动启动[Unit]Description=Syncthing - Open Source Continuous File SynchronizationDocumentation=man:syncthing(1)StartLimitIntervalSec=60StartLimitBurst=4[Service]User=piGr
2021-07-30 10:35:33 426
原创 树莓派安装、配置filebrowser
下载软件从这里下载最新的软件,然后解压,把二进制文件filebrowser放到/usr/local/bin/目录下在命令行输入命令filebrowser version,如果能正确显示版本号则OK配置创建配置数据库:filebrowser -d /etc/filebrowser.db config init设置监听地址:filebrowser -d /etc/filebrowser.db config set --address 0.0.0.0设置根目录:filebrowser -d /et
2021-07-30 10:13:27 558 2
原创 树莓派自动挂接硬盘
树莓派自动挂接硬盘获取分区PARTUUID输入指令:sudo blkid挂接硬盘编辑/etc/fstab文件,输入如下指令:PARTUUID=PARTUUID "root" ext4 defaults, 0 0其中PARTUUID要替换成上步查询到的具体的PARTUUID,root要替换成你想要挂接的具体目录...
2021-07-27 01:05:36 292 1
原创 Windows下使用rsync来同步文件
先安装git去官网选择你的系统点击进去(32位系统选择i686,64位系统选择x86_64)选择zstd和rsync下载,如下图所示,zstd选择xz格式,下载它主要是用来解压zst格式的,xz格式可以直接用7-Zip解压同时下载libzstd和libxxhash,这两个都下载zst格式的,一共下载这4个文件就可以,如下图所示:解压zstd,将 zstd 的相关文件复制到 Git 安装目录的对应位置,如下所示:D:\tools\zstd-1.4.5-2-x86_64.pk..
2021-06-12 21:38:24 783
原创 stm32f030c8之基础定时器TIM6
前几天在做项目时候发现,使用标准库建的工程在初始化TIM6时候没有TIM6_IRQn,需要自己添加,初始化如下所示:void tim6_init(void){ TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct; // RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM6, ENABLE); // TIM_TimeBaseInitStruct.TIM_Prescaler = 47;
2021-05-27 08:19:19 3249 1
原创 stm32f030内部高速时钟初始化
前几天在做项目时候发现,程序跑起来有问题,具体体现在时钟不准,后来经过排查发现,是因为标准工程默认初始化的外部高速时钟,但实际上是没有外部高速时钟的,所以导致出问题了。使用内部告诉时钟,初始化代码如下:(要注意把外部高速时钟初始化给屏蔽掉)static void SystemClock_Config(void){ RCC_DeInit(); FLASH_SetLatency(FLASH_Latency_1); RCC_HSICmd(ENABLE); while (RCC
2021-05-27 08:09:27 1063
原创 git设置代理
设置:git config --global http.proxy 'socks5://127.0.0.1:1080'去除:git config --global --unset http.proxy
2021-05-13 11:20:11 233
原创 everything搜索技巧
在指定的目录搜索目录加反斜杠,加空格,加关键词的方式进行搜索,例如:downloads\ *.pdf,只搜索downloads目录下的.pdf文件搜索指定大小的文件搜索大于50kb的文件:size: > 50kb搜索大于50kb小等于100kb的文件:size:500kb-100kb搜索重复文件dupe:该指令就可以搜索所有重复文件搜索指定文件名的重复:dupe:待搜索文件名...
2021-05-09 18:53:12 1034 1
转载 一种比较好的延时方案
#define bSystem10Msec gTimer.Status.field.bit0#define bSystem50Msec gTimer.Status.field.bit1#define bSystem100Msec gTimer.Status.field.bit2#define bSystem1Sec gTimer.Status.field.bit3#define bTemp10Msec g
2021-05-07 21:24:56 188
原创 N沟道和P沟道开漏输出
N沟道开漏输出,只能输出低电平,需要加上上拉电阻才能输出高电平,常见的开漏输出基本都是N沟道输出,例如51单片机的P0口。P沟道开漏输出,只能输出高电平,需要加下拉电阻才能输出低电平,一般不多见。...
2021-05-03 14:45:05 4326 2
原创 Dev C++切换到32位无法调试问题及解决
硬件信息电脑系统:64位win7系统Dev C++版本:4.9.9.2问题描述在使用“TDM-GCC 4.9.2 32-bit Release"调试时,发现弹出错误:解决方案去下载一个zlib1.dll文件,放到C:\Windows\SysWOW64目录下即可。
2021-03-25 01:23:38 1986 2
原创 stm32中断或异常的执行顺序
测试验证的芯片是stm32f103rct6首先查看进入中断或异常前后的寄存器数据:上图左边是进入中断前的寄存器值,右边是进入中断后的寄存器值,通过SP值得前后对比,可以看出在进入中断后被压了(0x20000330-0x20000310=0x20=32)32个字节数据(因为stm32栈是满递减),这32个字节数据分别是8个寄存器的值,它们分别是R0,R1,R2,R3,R12,LR,PC,PSR,怎么验证是这8个寄存器呢?打开Memory窗口,输入地址0x20000310,得到如下结果:每4个字节一
2021-03-20 09:35:21 882 1
原创 LPC1768生成bin文件夹问题
问题描述因为要远程升级,所以要需要生成.bin文件。但是发现生成的是.bin文件夹,里面有两个看不懂的文件,如下图所示:解决方案只要在下图所示的地方加上NO_CRP就ok了
2021-01-03 18:09:06 248
原创 HEX_DIGIT
#define HEX_DIGIT(n) ((char)((n) + (((n) < 10) ? '0' : ('A' - 10))))
2020-11-30 21:15:23 600
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人