点灯配置cubemx配置时钟配置GPIO口将PC13选择为输出模式,在左侧配置默认电平,GPIO模式,用户标签配置工程Toolchain/IDE选择要用的软件,在code generator中勾选Generate peripheral initialization as a pair of.c/.h’ files per peripheral(初始化代码生成在对应的外设文件。 如UART初始化代码生成在uart.c中)
点亮led灯LED_GPIO_Port代表目标引脚的端口号,例如GPIOB。LED_Pin代表目标引脚的引脚号,例如GPIO_Pin_5。GPIO_PIN_RESET代表当前引脚的高低电平,高电平(GPIO_PIN_SET)、低电平(GPIO_PIN_RESET)。
HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, GPIO_PIN_RESET);
翻转引脚电平
HAL_GPIO_TogglePin(LED_GPIO_Port,LED_Pin);
配置按键将PA7设置为输入模式,并且设置为上拉读取引脚电平,并点亮LE ...
本周学习内容绘制STM32最小系统板泪滴:
参考:https://blog.csdn.net/qq_44705488/article/details/118229268
避免电路板受到巨大外力的冲撞时,导线与焊盘或者导线与导孔的接触点断开
保护焊盘,避免多次焊接时焊盘的脱落,生产时可以避免蚀刻不均,以及过孔偏位出现的裂缝等。
信号传输时平滑阻抗,减少阻抗的急剧跳变,避免高频信号传输时由于线宽突然变小而造成反射,可使走线与元件焊盘之间的连接趋于平稳过渡化。
铺铜:
参考:https://zhuanlan.zhihu.com/p/567859828
将主要的地(GND,SGND(信号地),AGND(模拟地))连接在一起。
提高PCB的散热能力
降低地线阻抗以及提供屏蔽防护和噪声抑制。
避免铜箔不均匀,导致PCB生产过程中出现变形,起翘等不良。批量过孔:
参考:https://blog.csdn.net/gutie_bartholomew/article/details/123957575
使得元器件可以和GND完美接触,缩短走线距离和环路面积,改善EMC功能。
对于大功率器 ...
逃离华农校园网指北要干什么?这篇文章主要是介绍如何通过二手路由器和二手5G手机制作丐版5G CPE并配合物联卡实现宿舍多人低价上网。
准备材料小米路由器3G,中兴远航10,网线,fat32文件系统的U盘
文件下载(文件丢失)WinSCPbreed-mt7621-xiaomi-r3g.binx-wrt-23.10-b202310211921-ramips-mt7621-xiaomi_mi-router-3g-squashfs-breed-factory.binx-wrt-23.10-b202310211921-ramips-mt7621-xiaomi_mi-router-3g-squashfs-sysupgrade.bin
成本计算小米路由器3G拼多多购买二手55元,中兴远航10于拍机堂软件购买,屏幕有压伤,价格169元。物联网卡每个月套餐40元1200G流量,宿舍6人平摊每人每月6.7元。
网络测速测速时间:10月29日周日13:28测速时间:10月26日周四00:08
中兴领航10开启usb网络共享在设置>关于手机中连续点击5次版本号开启开发者模式,在系统与更新>开发者模 ...
摘要:介绍了使用一路超声波测距和两路红外测障的自动避障小车##功能实现:材料:51单片机,L298N模块,超声波模块HC-SR04,Sg90舵机,红外传感器,18650电池###硬件连接:###代码编写:####马达运动:调节L298N的IN接口,控制电机正反转,通过变量PWMA和PWMB调节占空比从而调节小车左右轮的速度。
#include <REGX51.H>sbit IN1 = P2^4;sbit IN2 = P2^3;sbit IN3 = P2^2;sbit IN4 = P2^1;extern unsigned char PWMA,PWMB;void straight(){ IN1 = 1; IN2 = 0; PWMA = 25; IN3 = 0; IN4 = 1; PWMB = 25;}void turnleft(){ IN1 = 1; IN2 = 0; PWMA = 34; IN3 = 1; IN4 = 0; PWMB = 21;}void turnright(){ IN1 = 0; IN2 = 1; PWMA ...
if语句:用于根据条件执行不同的分支。其一般形式为:
if (expression) statement
如果expression为真(非0),则执行statement;否则,跳过statement。
if else语句:用于在两个分支中选择一个执行。其一般形式为:
if (expression) statement1else statement2
如果expression为真(非0),则执行statement1;如果expression为假(0),则执行statement2。
else if语句:用于实现多重选择。其一般形式为:
if (expression1) statement1else if (expression2) statement2else statement3
如果expression1为真,执行statement1;如果expression2为真,执行statement2;否则,执行statement3。
else与if的配对:如果没有花括号,else与离它最近的if匹配,除非最近的if被花括号括起来。
ge ...
第六章fabs()函数
声明在math.h头文件中
可以方便地比较浮点数
返回一个浮点值的绝对值(即,没有代数符号的值)
布尔值和关系运算符
一般而言,所有的非零值都视为真,只有0被视为假
关系表达式为真,求值得1;关系表达式为假,求值得0
_Bool类型的变量只能储存1(真)或0(假)
如果把其他非零数值赋给_Bool类型的变量,该变量会被设置为1
关系运算符的优先级比算术运算符(包括+和-)低,比赋值运算符高
关系运算符之间有两种不同的优先级:
高优先级组: <= >=
低优先级组: == !=
for语句
使用3个表达式控制循环过程,分别用分号隔开
initialize表达式在执行for语句之前只执行一次
然后对test表达式求值,如果表达式为真(或非零),执行循环一次
接着对update表达式求值,并再次检查test表达式
for语句是一种入口条件循环,即在执行循环之前就决定了是否执行循环因此,for循环可能一次都不执行
statement部分可以是一条简单语句或复合语句
形式:
for ( initialize; test; update ) ...
while循环
while函数使用一对花括号({})来标出while循环的范围。花括号之间的内容就是要被重复执行的内容。花括号以及被花括号括起来的部分被称为块(block)。
while循环的一般形式为:
while (条件){ 循环体;}
条件是一个关系表达式或逻辑表达式,如果为真(非零),则执行循环体;如果为假(零),则跳出循环。
循环体可以是一条或多条语句,也可以是一个空语句(;)。
pow()函数
C 的标准数学库提供了一个pow()函数用于指数运算。例如,pow(3.5,2.2)返回3.5的2.2次幂)。
pow()函数的一般形式为:
double pow(double x, double y);
x是底数,y是指数,返回值是x的y次幂。
pow()函数需要引入<math.h>头文件,并在编译时加上-lm选项。
减号和求模运算符
减号还可用于标明或改变一个值的代数符号。
在C语言中,整数除法结果的小数部分被丢弃,这一过程被称为截断(truncation)。整数除法会截断计算结果的小数部分(丢弃整个小数部分),不会四舍五入结 ...
C语言中的字符串:字符串是以空字符(\0)结束的字符数组,使用%s转换说明来输入和输出。字符串的长度可以用strlen()函数获取,数组的容量必须比字符串的字符数多1。
C语言中的数组:数组是同类型数据元素的有序序列,使用方括号来声明和访问。例如,char name[40]表示一个包含40个字符元素的数组,name是数组名,char是元素类型。
C语言中的预处理器:预处理器可以用来定义符号常量和宏。符号常量用#define指令定义,一般用大写字母表示,例如#define TAXRATE 0.015。宏可以用来定义字符和字符串常量,使用单引号和双引号分别表示,例如#define BEEP '\a'和#define MSG "Hello"。
C语言中的const关键字:const关键字可以用来限定一个变量为只读,表示其值不可更改。例如,const int MONTHS = 12;表示一个只读整型变量MONTHS,其值为12。
C语言中的scanf()和printf()函数:scanf()和printf()函数可以用来输入和输出基本变量类型的值,使用%和 ...
整数
整数类型有多种,如 short , int , long , long long , unsigned long , unsigned int 等。
把一个较小的常量作为 long 类型对待,可以在值的末尾加上 l 或 L 后缀,如 10L 。
使用 ll 或 LL 后缀来表示 long long 类型的值,如 3LL 。另外,使用 u 或 U 后缀表示 unsigned long long ,如 5ull , 10LLU , 6LLU 或 9Ull 。
打印 unsigned int 类型的值,使用 %u 转换说明;打印 long 类型的值,使用 %ld 转换说明。
以十进制显示数字,使用 %d ;以八进制显示数字,使用 %o ;以十六进制显示数字,使用 %x 。另外,要显示各进制数的前缀 0 , 0x 和 0X ,必须分别使用 %#o , %#x , %#X 。
在 x 和 o 前面可以使用 l 前缀, %lx 表示以十六进制格式打印 long 类型整数, %lo 表示以八进制格式打印 long 类型整数。
对于 short 类型,可以使用 h 前缀。 %hd 表示以十进制显 ...
本文介绍了如何利用CloudflareSpeedTest和Cf Worker来提高Alist和Onedrive的访问速度和下载速度。
教程
由该大佬给出的方案,首先下载CloudflareSpeedTest,然后按下列步骤:
筛选优选ip,并将Alist域名a.b.net通过cf解析,并再增加一个加速域名cf.b.net设置A记录至优选ip(关闭云朵);
参照alist官方教程设置Cf Worker(命名如:alistworker),代码见https://github.com/alist-org/alist-proxy/blob/main/alist-proxy.js;注意:HOST: 你的Alist地址,必须添加协议头,且后面不能添加/。如https://alist.nn.ci;TOKEN:参见Alist部分的Token
设置Worker路由:点击添加路由按钮,路由填cf.b.net/*服务下拉菜单选刚建好的alistworker然后保存;
在Alist管理面板编辑Onedrive账号,在down_proxy_url填入https://cf.b.net保存并刷新缓 ...