自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 挺好用的共用体+结构体的配合,记录下

【代码】挺好用的共用体+结构体的配合,记录下。

2024-02-23 23:36:09 97 1

原创 inline关键字使用

偶然在工作看到这么这样inline关键字inline uint8_t Get_Led_Num(void){ return num; //外部声明的变量}如果是我写的代码是不会加(因为没有这个意识),甚至直接用这个num变量直接放调用的地方。可是前辈写的一定有他的道理,不直接用num变量是为了方便代码的可读性,可这个inline是干嘛的确实有点不太清楚。后面查了下,其类似#define直接套用,相当于直接放在调用的地方,该函数不用保存什么栈指针和保存什么当前地址什么的,相当于直

2022-04-05 16:40:48 304

转载 二进制数里‘1’的个数

while(x) { countx ++; x = x&(x-1); } return countx;关于这个运作的机制:简单来说,当二进制数减1时,处在最后的一个位会减少1,如果这位本身就是1,那么直接变成0,如10101-->10100;但如果最后一个是0,那么套用从上一位借一个的原则;如10100-->10011;到这里我发现了,相当于从右往左的第一个1会让剩下的所有0再变成1;相当于把这一个减的操作从这一个1处截断,应为当前.

2022-03-21 23:09:40 201

原创 FreeRTOS基本任务控制函数

在 cmsis_os.h 文件中,433行① 创建任务osThreadId osThreadCreate (const osThreadDef_t *thread_def, void *argument);② 获取任务IDosThreadId osThreadGetId (void);③ 删除任务osStatus osThreadTerminate (osThreadId thread_id);在当前任务中可以使用这种:osThreadTerminate(NULL)

2022-03-05 17:15:48 1356

原创 Shell脚本编程(功能语句read)

read var#!/bin/bashecho -n "input 2 words:"read var1 var2echo $var1 $var2echo "input:\c"read var3echo $var3结果aston@ubuntu:~/test$ ./pro1.sh input 2 words:aa bbaa bbinput:\ccccc发现 \c 没有起作用,将首行的bash改sh#!/bin/shecho -n "input ...

2021-06-26 13:41:52 70

原创 Shell脚本编程(环境变量)

HOME :/etc/passwd 用户主目录PATH:shell搜索路径HISTSIZE:历史命令容量aston@ubuntu:~/test$ echo $HOME/home/astonaston@ubuntu:~/test$ echo $PATH/home/aston/bin:/home/aston/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/loc.

2021-06-26 11:48:16 96

原创 Shell脚本编程(位置变量)

$0 执行文件名语句$1,$2 ...... $9 命令行的九个参数$# 参数个数(不包括$0)$@ 或 $*所有命令行参数$$ 正在执行进程的ID号$? 包含前一个命令的退出状态例子echo $#echo $*echo $@echo '\$0'---$0echo '\$3'---$3echo '\$4'---$4echo '\$10'---${10}echo '\$11'---${11}当出现两位数时,最好加个{ },避免输出非理想结果结果...

2021-06-26 11:38:50 156

原创 c语言 (函数指针练习)

#include <stdio.h>int add(int a,int b){ return a+b;}int sub(int a,int b){ return a-b;}int mul(int a,int b){ return a*b;}int main(){ int x=10,y=20; int (*p)(int,int); p=add; print.

2021-06-22 21:08:01 209

原创 c语言(删除字符串中的空格)

#include <stdio.h> void Del32(char* pstr){ char *p; p=pstr; while(*pstr) { if(*pstr != 32) //空格的ASCII为32 { *p=*pstr; p++; } pstr++; } *p='\0'; //这个很关键 } .

2021-06-22 19:30:07 3412

原创 c语言(指针函数练习)

指针函数返回值:全局变量的地址/static变量的地址/字符串常量的地址#include <stdio.h> char* getstr(){ char* str="hello world!"; return str;} int main() .

2021-06-22 19:27:34 135

原创 c语言 (用指针数组表示二维数组)

#include <stdio.h> int main() { .

2021-06-21 22:29:20 164

原创 c语言(用数组指针(行指针)表示二维数组)

int a[][3]={{0,1},{2,3},{4,5}};int *p; p=a;刚开始我还以为a就是a[0][0]的地址,其实不然其输出是报警告warning: assignment from incompatible pointer type [-Wincompatible-pointer-types]后面查了才知道,一级指针p代表的是a的行,即a[0]的地址如果可以用以下代码#include <stdio.h> ..

2021-06-21 20:21:28 213

原创 c语言 (指针与一维数组的一些关系)

本次主要讨论指针名代替数组名后的结果和一些细节#include <stdio.h> int main() {

2021-06-21 16:52:37 72

原创 c语言(杨辉三角,二维数组练习)

10行内#include <stdio.h>#define N 10int main(void) { int a[N][N]={0}; int i,j; for(i=0;i<N;i++) { a[i][0]=1; if(i==0)continue; for(j=1;j<=i;j++) { a[i][j]=a[i-1][j-1]+a[i-1][j]; } } for(i=0;i<N

2021-06-21 12:56:16 213

原创 c语言 (100以内的素数)

#include <stdio.h>#include <math.h>int main(){ int i,j,z=0,nosu=0; for(i=2;i<100;i++) { for(j=2;j<=sqrt(i);j++) { if(i%j == 0) { nosu=1; break; } } if(!nosu) { if(z%5==0 &.

2021-06-21 00:01:51 587 2

原创 c语言(练习for循环、字母大写转小写)

#include <ctype.h>int main(){ int i,j,len,z; char c; printf("please input capital:"); c=getchar(); if(c==EOF || c<'A'|| c>'Z') { printf("input error!\n"); return 0; } len = c - 'A'+1; printf("len:%d\n",len); for(i=0;i<len;.

2021-06-19 18:29:52 1642

原创 c语言(九九乘法表)

1 =1*1 2 =2*1 3 =3*1 4 =4*1 5 =5*1 6 =6*1 7 =7*1 8 =8*1 9 =9*1 2 =1*2 4 =2*2 6 =3*2 8 =4*2 10=5*2 12=6*2 14=7*2 16=8*2 18=9*2 3 =1*3 6 =2*3 9 =3*3 12=4*3 15=5*3 18=6*3 21=7*3 24=8*3 27=9*3 4 =1*4 8 =2*4 12=3*4 16=4*4 20=5*4 24=6*4 28=7*4 32=8*4 36=9...

2021-06-19 16:35:47 465

原创 c语言(三位水仙花数)

#include <stdio.h>#include <math.h>int main(){ int a,b,c,i; for(i=100;i<1000;i++) { a=i/100; b=i/10%10; c=i%10; if(pow(a,3)+pow(b,3)+pow(c,3) == i) { printf("%d\t",i); } } return 0;}结果

2021-06-19 16:19:22 975

原创 c语言 (循环goto的使用)

zhuyint main(){ int i = 0;loop: if(i<5) { i++; goto loop; } printf("%d\n",i);}

2021-06-19 16:01:07 1044

原创 c语言(海伦公式求三角形面积)

三角形三边分别为 a,b,c

2021-06-19 15:53:24 11504 7

原创 #define常量的代入细节

代码如下:#include <stdio.h>#define One 1#define Two One+Oneint main(){ int a=10,b=20,c=0; c = One + Two*b + a; printf("c:%d\n",c);}结果:

2021-06-19 10:19:27 111

原创 运算符 &与 |优先级探讨

浮点数不能取余运算符优先级 int a=5,b=2,c=1; int z=0; z=a|b; z=z&c; printf("z:%d\n",z); z=0; z=b&c; z=z|a; printf("z:%d\n",z); z=0; z=(a|b&c); printf(.

2021-06-19 09:54:42 149

原创 I2C课堂笔记

SPI同步串行接口四根线 SCLK MOSI MISO SS主从模式相当于I2C无应答信号全双工(两个线)MOSI MISO速度快,因为用了SCLK,协议简单占线多,一主多从4种通信模式CPOL CPHA ( 00 01 10 11)时钟极性 时钟相位I2C两根线SCLK SDA协议复杂通过地址进行片选占线少,支持多主机多从机缺点:协议复杂,速度慢时钟信号需要周期性(开始位,停止位)...

2021-06-17 22:59:44 96 2

原创 嵌入式面试题1

1、单片机的最小系统单片机、时钟电路、复位电路、电源电路2、TTL与232区别逻辑电平定义不同:TTL232的 0 是用 0v 表示。1 是用 5V 表示。RS232的zhuan0是用 +3V ~ +15V表示,1是用 -3V ~ -15V表示。...

2021-06-17 22:57:27 256

原创 VM虚拟机无法开机

虚拟机开机出现此弹窗解决:进入电脑BIOS,将Intel虚拟化技术选项 由Disabled 改为 Enabled

2021-06-16 09:20:12 569

原创 平衡电桥

平衡电桥等电位点之间连接任意的阻值不会破坏其他支路量因为电流计两端电势相等,电压为0,所以没有电流等效电路

2021-06-09 22:20:29 1163

原创 单词的认识

SCH:原理图SCHEMATIClayout:PCB layout, 印刷电路板(Printed Circuit Board)设计 IC layout,集成电路(integrated circuit)版图设计BOM:物料清单(Bill of Material)

2021-05-12 23:11:01 97

转载 各种地

  1.一条粗横线:弱电电路的公共参考点;  2.四条长度递减的水平线:正规的接地线(模拟地或者电路地);  3.倒三角形有时会标有数字:电位参考点,有时会作为接地的参考位置。数字信号的公共参考点(数字接地端)  4.一条横线下方三条向下的斜线:大地或机箱(壳);...

2021-05-04 22:11:43 756

转载 电阻

电阻电阻类型贴片最常见测量方法万用表和数字电桥(LCR表)LCR表:又称为LCR测试仪能准确并稳定地测定各种各样的元件参数。用来测试电感、电容、电阻的测试仪。特性线性:伏安特性非线性:有:压敏电阻、热敏电阻(正温度系数、负温度系数)下面电路图交流输入电压very大时,如果没压敏电阻R1容易对后面电路造成破坏基本参数阻值额定功率 P=I²R 电流如果增加太大,需考虑额定功率大点的电阻值精度 允许误差 ...

2021-03-11 20:04:39 150

转载 各个存储区域

来看一个网上很流行的经典例子:main.cppint a = 0; 全局初始化区char *p1; 全局未初始化区main(){int b; 栈char s[] = "abc"; 栈char *p2; 栈char *p3 = "123456"; 123456\0在常量区,p3在栈上。static int c =0; 全局(静态)初始化区p1 = (char *)malloc(10); 堆p2 = (char *)malloc(20); 堆}关于...

2021-03-02 08:52:37 154

原创 关于#define中printf函数里指针地址问题(已解决)

关于#define原文链接:https://blog.csdn.net/lc250123/article/details/79469579代码如下:#include <stdio.h>#define MIN__MY(a,b) ((a)<=(b)?(a):(b)) int main(){ int arry[5] = {10,20,30,40,50}; int *p = &arry[0]; printf("MIN = %d, *p = %d\n"

2021-02-24 14:05:49 280

原创 指针解引用运算符 * 与 ++的关系

指针解引用运算符 * 与 ++关系1、*p++int arry[5] = {10,20,30,40,50}; int *p = &arry[0]; printf("*p:%d\n",*p++); printf("*p:%d\n",*p);结果:*p:10*p:202、*++pint arry[5] = {10,20,30,40,50}; int *p = &arry[0]; printf("*p:%d\n",*++p); printf("*p:%d

2021-02-19 09:53:59 367

原创 解决keil注册机在win10无法打开问题

解决keil注册机在win10无法打开问题刚开始笔者先以管理员模式打开,无效,弹出一个弹窗说为病毒文件以下提供一种解决办法,亲测有效就是安全模式里打开注册机详细做法如下:首先在 设置 ——》 恢复 ——》高级启动 ——》立即重新启动重启后,选择 疑难解答 ——》高级选项 ——》启动设置 ——》重启 ——》选择4启动安全模式启动后在此模式就可以打开注册机,然后操作注册机后...

2021-02-08 16:42:36 14111 7

原创 Notepad++相对有用的快捷键

Notepad++相对有用的快捷键Ctrl+d 复制上一行Ctrl+q 注释当前行Ctrl-Shift-Q 区块添加/删除注释Ctrl-G 跳转至某行对话框Ctrl-U 转换为小写Ctrl-Shift-U 转换为大写Ctrl-B 跳转至配对的括号Ctrl-Alt-F 收缩当前折叠Alt-Shift-(1~8) 展开所有层次折叠Ctrl+W 关闭当前文档Ctrl+L 删除当前行...

2020-10-22 14:46:09 200

空空如也

空空如也

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

TA关注的人

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