- 博客(365)
- 资源 (5)
- 收藏
- 关注
原创 Cadence
三极管在TRANSISTOR PNP三极管 2N1132A, NPN三极管 2N2218。只有电源类VDD GND 都是Power的,不用区分,普通引脚不能同名,要区分。电源VDD GND引脚 要改为Power ,一般的引脚都是Passive。RESET# 后面带#代表低电平有效,也可以R\E\S\E\T。section有几个部分就填几,如果有A B C D,那就填4。开关 SW PUSHBUTTON-SPST-NC。也可以同样的方式选择我们自建的库。无极性电容 CAP NP。
2026-05-05 20:32:10
333
原创 Allergo Cadence学习笔记
FINISH 存放项目完成之后最终版本的PCB 原理图 和Gerber相关的文件。正常我们的Gerber里面需要包含两个电气层,如果四层板就是四个电气层,如果是十层版就是十个电气层。ETCH/BOTTOM 底层走线层。以上是电气层的部分,接下来我们需要添加丝印层、阻焊层、钢网层、参考信息层。设置封装库路径,如果不设置封装库路径,导入网格表的时候就会缺少封装。一般情况下,这些全部勾选,如果不勾选,那么通孔焊盘看起来会像表贴的。
2026-04-25 21:56:46
434
原创 stm32f103c8t6主控最小电路
首先把BOOT0接地,那就是0,这样会去flash里面执行程序,如果拉高是可以用其他烧录方式。器件:TAXM8M4RDBCCT2T 会比XL2EL89COI-111YLC-8M便宜。参考别人画的,是这样的,本次无人机用外部高速晶振就行,外部低速晶振太慢了,不画了。主控电源滤波 因为有4个VSS VDD所以接四个电容。器件:3111-08RG0BK00T1。做个标记NC表示后续PCB那不连接。器件:SKRPACE010。
2026-03-08 12:11:19
88
原创 ESP32S3 下载烧录
下载安装后,要和VS Code 的插件配合起来,新版不太一样,不知道如何导入,但是发现VS Code 直接有。先选择目标芯片,再配置menu config ,最后编译下载就可以。项目生成的bin文件找到复制到下载工具的bin文件夹中。前面下载插件ESP-IDF版本里有例程。把bin的3个都选中,右边的是偏移地址。以例程helloworld为例。Ctrl + ] 可以结束终端。VSCODE的下面都可以。点这个编译烧录终端显示的。其中ESP-IDF参考。在线的安装感觉不太好用。测试用的两个直接删除。
2026-02-26 22:29:00
621
原创 STM32CUBEIDE Hal
AIRCR中断和复位控制寄存器0-7 位设置抢占优先级和子优先级 8位=256种组合8到10位是优先级的分组 3位 =8种组合抢占优先级和子优先级的作用:触发中断的时候,抢占优先级就可以先抢下这个位置,当抢占优先级越高就会优先触发,而当抢占优先级相同时,子优先级高的就会优先触发下表第一列也就是优先级分组 8种组合,后面是抢占优先级和子优先级,我们知道共有8位,如果抢占占7位那就是128,子占1位那就是2对于STM32F103C8T6。
2026-02-12 19:23:55
648
原创 STM32CUBEIDE用STLINK下载以及失败解决
先下载STM32 ST-LINK Utility。调试选择JTAG 4 pins 默认没有调试。下载好后,boot 0跳帽要连1。
2026-02-07 22:34:36
257
原创 ESP32C3编写AT驱动代码
输入 python at.py modify_bin --tx_pin 7 --rx_pin 6 --cts_pin -1 --rts_pin -1 --input factory_MINI-1.bin 然后回车。现在重新下载一下ESP32的固件到板子ESP32。把at.py放在下载的固件factory里。这样就修改好了AT固件的UART。会生成target.bin这个文件。SSCOM不要占用端口。
2026-01-29 17:33:32
119
原创 SPI基础
SPI传输速度远远快于I2C,并且是全双工可以同时接收和发送,而I2C是半双工,只有一条时钟线SCL和一条数据线SDA,要么发送要么接收不能同时。单片机一般采用320*240分辨率 RGB565 6+5+5=16bit=2Byte。SPI的是MOSI MISO。
2026-01-14 00:58:41
152
原创 中断(按键、SYSTICK、串口)
SystemCoreClock是内核主频,因为我用的芯片主频168MHz,其实啥主频都是这么写,SystemCoreClock如果是168MHz,也就是每秒能数 1.68 亿次(168000000Hz,1MHz=1000KHz=1000000Hz),数完也就是过了1s,1s/1000=1ms,减1的原因是(比如10到1,就正好10个,但是现在是10到0,最终到0,所以多了一次要减1),所以SysTick->LOAD=SystemCoreClock/1000 -1这个表示load减到0就过去了1ms。
2026-01-09 23:14:05
388
原创 按键与中断
没按下时KEY1连接R16到3V3,所以没按下时是高电平,按下时导通到GND,按下是低电平按键是输入,按键对应的GPIO这个不需要设置上拉和下拉。
2026-01-03 20:10:29
230
原创 STM32F407 systick延迟
SystemCoreClock:STM32F4 的核心时钟(默认 / 常用为 168MHz,即 168,000,000 Hz)所以 168MHz = 168 × 1000000 次 / 秒 = 168000000 次 / 秒。168,000,000/1000/1000=168次/us,1us有168次,要多少us乘多少。MHz(兆赫兹) = 10^6 Hz(1 兆 = 100 万)Hz(赫兹) = 「次 / 秒」(每秒完成的周期数)168MHz 是 STM32 内核时钟的频率。
2025-12-27 22:29:12
244
原创 机械狗软件部分
/---按键//按键标志//按键标志//上次按键时间//消抖时间 ms//上次按键时间//消抖时间 ms//---ADC定义//分压器比例(输入电压到ADC电压的比例)//分压比(8.4倍缩小)//电压范围(电池电压)//电压为0%时//电压为100%时//采样次数//计算电池电压//---舵机//舵机引脚//---屏幕//SCL引脚5 SDA引脚4//---WIFI账号密码const char *ssid ="猪八戒";
2025-12-22 22:01:05
401
原创 【梅花】2.工程模板的搭建
国内所有的STM32的板子主时钟晶振和那个STM32官方板子上的主时钟晶振是不一致的。如果没有定义HSI_VALUE,HSI_VALUE的值就是16000000。国内基本8M,官方基本25M,所以要修改HSI_VALUE和PLL_M。分频器PLL_M 也修改为8,和HSI是匹配的。
2025-12-15 00:10:47
256
原创 9.5 【定时器】输入捕获
比如捕获上升沿,如果选择1分频,那每出现一个上升沿,右边就会触发一个cc1事件,执行1次拍照动作,如果选择2分频,就要出现2次上升沿,才会产生一个cc1事件,并且进行拍照,依次类推,一般都设置1分频,用的比较少。通道1和通道2有交叉引脚的箭头,通道3和通道4有交叉引脚的箭头,说明它们的信号是可以交叉引用的。CH1捕获上升沿,此时CNT=2,就会拍照给事件cc1,那CCR1=2。CH2捕获下降沿,此时CNT=8,就会拍照给事件cc2,那CCR2=8。输入滤波模块是用来滤除输入信号这些细小的毛刺的。
2025-12-13 23:14:24
277
原创 机器狗原理
每一个舵机大概要200-250mA电流,4个舵机就要差不多1A的电流了,4个舵机要1A,加上oled等其他的,要1200mAh的电池才行,如果要买小了,机器狗可能不动,一卡一卡的一个电池充电后满电4.2V,那两个电池串联就8.4VLDO稳压搞两次目的是5V给舵机供电,3.3V给OLED屏幕供电如果1117只搞一个5V,因为4个舵机要1V,还有OLED屏幕,而1117数据手册是1V,这样会很烫。
2025-12-08 21:31:31
402
原创 9.4 呼吸灯实验
通过呼吸灯实验来看一下输出比较在实际编程中是如何写代码的原理:Tim_CH1正常输出配置PA8,Tim_CH1N互补输出配置PB13,让两个灯交替闪烁通过调整CCR1就可以控制PWM信号的占空比可调输出比较模式设置PW1,当CNT<CCR的时候,OCxRef输出高电压,否则输出低电压。
2025-12-03 11:46:18
858
原创 9.3【定时器】输出比较
定时器的4个通道输入捕获用来测量外部输入信号的一个时延参数,比如测量输入信号的周期、占空比、脉冲宽度等等所有和时间有关的参数寄存器的右边是输出比较,输出比较的作用是通过定时器去产生精确定时的方波信号,然后通过引脚把方波信号输出出去,因为此时的方波信号是通过定时器产生的,定时器本身时间精度就是特别高的,所有它产生的方波信号的精度也是特别高的,所以我们可以使用方波信号驱动各种各样的外部设备,可以达到非常好的效果。
2025-11-30 22:05:14
584
原创 关于C51的中断
C51有5个中断,外部中断0(INT0),外部中断1(INT1),定时器中断T0,定时器中断T1,串口中断(RX TX)定义外部中断名,C51函数名可以随便,只要有后面的interrupt有标识就行,不像32。比如使用外部中断0,先定义一个函数,直接在main函数中调用。比如INF0 也就是。
2025-11-29 12:32:37
243
原创 9.1【定时器】时基单元
单片机内部所有跟时间有关的操作几乎都会用到定时器定时器分为3种,高级定时器、通用定时器、基本定时器功能最全的就是高级定时器,在高级定时器基础上阉割一部分功能就得到通用定时器,再阉割一部分功能就是基本定时器对于STM32F1系列的定时器来说内部最多有14个定时器,其中定时器1和定时器8是高级控制定时器,定时器6和定时器7是基本定时器,定时器2-5和9-14是通用寄存器定时器总体的结构框图。
2025-11-24 21:30:41
824
原创 数 码 管
Write74HC164是基础的 “单字节串行发送” 工具,WriteDisplayArray则是基于它实现的 “多字节批量发送” 功能 —— 前者负责将单个段码拆分为串行信号,后者负责协调多个段码的发送顺序和初始复位,共同完成多位数码管的显示驱动。关键逻辑:利用 74HC164 的级联特性(前一级的串行输出接后一级的串行输入),先发送的数据会被后发送的数据 “推” 到后续寄存器,最终所有Len个段码会分别存入对应的 74HC164,并行输出驱动多位数码管。每次循环先拉低时钟PCLK=0,准备数据;
2025-11-15 16:38:55
326
原创 STM32F103配置寄存器
以引脚Pin0为例,GPIOx_CRL的低 4 位(MODE0[1:0]和CNF0[1:0])定义其配置:MODE0[1:0]:配置输出模式的速度(输入模式时为 00)。00:输入模式(复位状态)01:输出模式,最大速度 10MHz10:输出模式,最大速度 2MHz11:输出模式,最大速度 50MHzCNF0[1:0]:配置引脚的工作模式(输入 / 输出类型)。输入模式下:00:模拟输入01:浮空输入10:上拉 / 下拉输入11:保留。
2025-11-12 16:49:25
457
原创 智能家居项目-搭建工程
如果定义了 STM32F10X_CL 宏(表示使用 STM32F10x CL 系列芯片,如 STM32F105/107),则默认外部晶振频率为 25MHz(25000000 Hz)。如果没有定义 STM32F10X_CL(即使用普通 STM32F10x 系列,如 STM32F103),则默认外部晶振频率为 8MHz(8000000 Hz)。HSE是8MHz,SYSCLK是72MHz,所以要做 PLL 倍频(9倍频)得到 72MHz 系统时钟。对于普通系列芯片,默认定义系统时钟频率为。)对应的时钟配置函数。
2025-11-10 16:00:10
234
原创 8.2 时钟数编程
我们写的代码会被烧录到Flash模块当中,当单片机运行的时候,我们Cortex-M3内核会在Flash当中把代码一条一条读出来,然后放在内核里面去执行,但是读取Flash的速度远远赶不上内核执行代码的速度,所以为了解决这个问题,在内核和Flash中间加一个缓冲区,Flash提前把下一条要执行的指令放在缓冲区,当内核需要指令的时候,内核直接从缓冲区里面读取指令,这种叫指令预取。带颜色的代表可开关的,灰色底色的代表默认状态下关闭的,绿色底色的代表默认状态下开启的。第四步切换SYSCLK的来源。
2025-11-03 16:52:30
806
原创 8.1 时钟树
中间的粗树枝对应AHB分频器,分频后产生的分频信号就是HCLK,使用HCLK继续给它分频,这里各自有两个分频器,经过APB2分配器得到是PCLK2,PCLK2就会分配给左上面那些树叶,经过APB1分配器得到是PCLK1,,PCLK1就会分配给右上面那些树叶。左边的大树时钟频率比较高,一般是几十MHz,右边的小树时钟频率比较低,一般是几十KHz。因为内部的时钟源位于单片机的内部,虽然使用起来比较方便,但是他们精度不高,如果对精度有要求的话就要外接时钟源,如果没有要求,用内部的就行。Internal表内部的。
2025-10-26 22:51:39
469
【嵌入式软件开发】C语言基础与RTOS应用:面试常见技术问题及解决方案综合解析
2026-03-08
JDBC基础-Java学习笔记
2022-05-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅