自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 AD导出gerber文件(光绘文件)

AD导出gerber文件

2024-09-29 18:56:03 231

原创 中断服务程序要注意的地方

在实现中断服务函数(Interrupt Service Routine, ISR)时,有几个关键点需要特别注意,以确保系统的稳定性和高效性

2024-09-16 10:38:25 274

原创 字符串转换为整数、整数转换为字符串

是 C 语言标准库中的一个函数,用于将格式化的数据写入一个字符串中。它的用法与 类似,但不同的是, 输出到标准输出(通常是屏幕),而 输出到一个字符数组(字符串)。输出结果:在这个例子中, 将 和 分别格式化为字符串,并将结果存储在 中。 函数是 C 语言标准库中的一个函数,用于将字符串转换为长整型()数值。与简单的 不同, 提供了更多的功能,例如进制选择和错误处理,适合更复杂的场景。运行结果:

2024-09-09 22:05:48 458

原创 static 变量和 static 函数各有什么特点?

关键字在 C、C++ 等编程语言中用于指定变量和函数的存储类型和可见性,其特点如下:作用域:生命周期:全程生命周期。即使在函数执行完成后,局部静态变量的值也会保留。初始化:全局静态变量和局部静态变量都在程序启动时被初始化一次,如果没有显式初始化,它们会被默认初始化为零或空指针。作用域:静态函数的作用域仅限于定义它的文件内。即使在其他文件中有相同名字的函数,它们也不会发生冲突。这样可以避免名字冲突,并增加封装性。生命周期:静态函数的生命周期和其他函数相同,即程序运行期间都存在。调用:静态函数只能在定义它的文件

2024-09-09 19:57:32 300

原创 volatile 关键字

volatile关键字在编程中,尤其是在C和C++语言中,用于指示编译器一个变量可能会在程序的执行期间被意外的更改,因此每次使量的时候都必须从读取它的值,。这个关键字提醒编译器不要对这个变量的读取和写入优化,以保证程序运行的正确性。

2024-08-14 21:08:05 450

原创 typdef 与 struct

int age;int num;//每使用一次就要多一个struct。使用typdef就简洁些。

2024-08-14 20:21:21 178

原创 普通PCB布局

5、如果板中有多个AD转换芯片尽量将几个ADC放在一起模拟地数字地在ADC下方单点连接,模拟地和数字地也应用磁珠或者0R电阻进行隔离。1、画好板子形状之后,主控芯片尽量放在板的偏中心地方,电源放在板子的开阔地方便于散热。10、走线的时候优先对差分线进行布局,尽可能的减少过孔数量和拐角,减少信号的反射。3、布局的时候,尽量模块化布线,将所有元器件分成几组分别进行布线。2、在重要的信号附近加测试点,方便调试的时候进行测量。4、相邻的焊盘需要相连,首先确认在外面进行连。9、使用相同电源的尽量放在一起。

2024-08-10 12:57:56 205

原创 AD20的快捷键及规则、问题

AD的使用和问题的解决(逐步更新)

2024-07-30 12:11:54 201

原创 stm32寄存器开发

也可以直接对寄存器赋值 abc->de = 0x00000000 相应的也可以直接读取寄存器的值 data = abc->de 在通讯发送和接收数据寄存器 USART1->DR非常好用,可以对整个数据寄存器进行读写操作。//同理2的2进制是10 相当于10从最右边开始左移了0位 作用是把GPIOA的CRH寄存器的最后2位置1 开始启动某些功能。abc->de |= (x

2024-06-02 21:37:07 305

原创 Ardunio 串口监视器无法显示/发送数据

Ardunio 串口监视器无法显示/发送数据

2024-03-27 00:27:14 2953 1

原创 C语言指针1

C语言指针说明1

2024-03-24 14:51:27 911 1

原创 stm32学习之ADC

借助江协科技ppt学习STM32F103C8T6。AD.c://例子adc单次扫描不连续。ADC1和ADC2通道引脚一样的。

2024-03-23 20:10:46 179

原创 定时器编码器接口

黑色为正转,红色为反转。对应三种模式。

2024-03-14 20:59:17 332

原创 定时器输入捕获

检测到左边的通道123,某一个发生电平翻转(与其他通道电平不同)会通过输入滤波器,可以去到ICx->预分频器->由输入捕获/输出比较寄存器(再一定时间里计数)得到计数值返回到CNT计数器里(CNT由内部标准时钟驱动)->下一个上升沿来前CNT先清零 (配置从模式复位清零,由硬件执行清零)*(频率不要太小,频率太低计数有可能会溢出(超过计数范围65535) )

2024-03-13 23:01:37 386

原创 使用Arduino点亮ESP32S3R8N8

Arduino 使用的是基于 C/C++ 的编程语言,但是进行了一些简化和封装,使得编写代码更加简单和易于理解。,Arduino 的编程语言相对简单易懂,即使你没有深厚的编程基础,也可以通过学习和实践快速上手。如果你有 C/C++ 的基础,那么学习 Arduino 编程将会更加轻松。: 这个函数在程序启动时运行一次。选择工具下的开发板和你的连接端口(端口要安装CH340)使用Arduino之前,先了解这一下他的编程语言。只需要知道怎么用就行,不需要了解内部结构。用于执行程序的主要逻辑。

2024-03-10 22:11:20 1049 1

原创 配置定时器输出比较(输出PWM波)

配置输出比较(PWM波):1、打开定时器和所用定时器通道OCx(x=1,2,3,4)所在的GPIO的时钟。输出比较可以通过比较CNT与CCR寄存器值的关系,来对输出电平进行置1、置0或翻转的操作,用于输出一定频率和占空比的PWM波形。配置TIMx_CHx_所在引脚的GPIO模式为复用开漏输出 ->定时器控制引脚输出PWM波。通道OC1、2、3、4分别各自对应SetCompare1、2、3、4。圈起来的对应功能是在输出停止时,强制置0/1》红线接5V,棕色接地,黄色接输出。借用江协科技ppt学习一下。

2024-03-07 22:39:59 979 1

原创 引脚的重定义功能

503:部分复用1 504:部分复用2 505:完全复用 复用模式不同,复用引脚就不同,要根据复用模式来选择复用的引脚。以PA0为例,我想同时使用USART2_CRTS和TIM2_CH1_ETR功能,因为一个引脚只能同时实现一种作用,那我只能找到带有重定义(映射)TIM2_CH1_ETR功能的PA15。这样复用引脚就配置完成。

2024-03-07 13:23:01 1309 1

原创 STM32里定时器一边定时,一边运行其他代码,为什么对定时没有影响

这是因为定时器的计时是由硬件中的计数器来完成的,而不是由CPU执行指令来完成的。即使CPU在执行其他代码时,定时器的计数器仍在按照设定的频率进行计数,当计数器的值达到设定的定时时间时,定时器会触发相应的中断或事件,不会受到其他代码的影响。在STM32中,定时器是通过硬件来计时的,定时器的工作不会受到软件代码的影响。即使你同时在程序中运行其他代码,定时器仍然会按照设定的定时时间定时触发。这也是定时器在实时系统中常用的一种功能,可以用于精确的时间测量和控制。

2024-03-04 17:36:43 556 1

原创 stm32学习4——定时器中断配置

配置定时器:选择时钟来源——选择时钟模式——配置时基单元——使能中断(中断输出控制)——配置NVIC(打通通道)——打开定时器。还是以江协科技ppt来学习,这次以配置通用定时器TIM2为例。定时器配置可能用到的函数(在库函数中的tim.h)如果配置高级定时器TIM1,还要增加一点东西。

2024-03-04 13:46:03 549 1

原创 stm32学习3,配置外部中断函数

通过这幅图我们很容易知道:配置外部中断函数,使用stm32先要打开时钟(GPIO,AFIO,EXIT,NVIC),再配置GPIO,再配置AFIO,再配置EXIT,再配置NVIC。最后写实现外部中断函数。

2024-03-01 20:30:12 409 1

原创 stm32学习2--按键和光敏传感器

电路图中N1为光敏电阻,光敏电阻的阻值与光照强度之间有一定的关系。一般来说,光照强度越大,光敏电阻的阻值就越小;光照强度越小,光敏电阻的阻值就越大。这是因为光敏电阻的阻值受到光照强度的影响,光照强度越大,光敏电阻中的光敏材料会吸收更多的光子,电阻值就会减小。第1:PA0接一个按键再接地,为了让按键实现按下为低电平松开为高电平,内部一定是高电平,所以PA0要设置为上拉输入模式。在这次学习中我使用光敏传感器和蜂鸣器,作用:当环境光比较大时,蜂鸣器回响。同理第2种要设置为下拉输入模式。借助江协科技ppt说一下。

2024-02-29 20:51:48 478 1

原创 stm32学习1之成为点灯大师——流水灯

GPIO口时先要配置时钟——GPIO初始化——配置GPIO——PA0到PA7按顺序各自点亮一次——流水灯大师。使用GPIO口时先要配置时钟——GPIO初始化——配置GPIO——对某一个口不断反转电平——成为点灯大师。

2024-02-28 21:03:55 416 1

原创 STM32基于标准库新建工程

回到固件库文件夹->Library->CMSIS->CM3->DeviceSupport->ST->STM32F10x->startup->arm->(复制全部)到工程文件夹里再新建文件夹(start)用来存放启动文件。回到固件库文件夹->Library->CMSIS->CM3->DeviceSupport->ST->STM32F10x->把这3个复制到stm32xxx工程模板的startup文件中。回到固件库文件夹->project->……->复制选中的这三个到工程模板里的User中。

2024-02-27 17:00:30 390

原创 单片机小作品之倒车雷达2:按键+键值选择led或者蜂鸣器模式

51单片机小作品倒车雷达2

2024-01-13 01:02:14 493 1

原创 51单片机学习之倒车雷达1(超声波模块+oled显示屏模块)

51单片机小作品倒车雷达

2024-01-11 11:58:40 2307 2

原创 单片机基础知识1:简单介绍单片机

单片机是由数据处理能力的中央处理器CPU(Central Processing Unit / Processor)、随机存储器RAM(Random Access Memory)、只读存储器ROM(Read-Only Memory)、多种I/O口和中断系统、定时器/计数器等功能部分集合组合成在一块芯片上形成的微型计算器。P0、P2、P3口都分别有第二功能,P0口第二功能为当系统外接存储器和拓展I/O口时,用作低8位的地址/数据总线分时复用口,低8位的地址由地址锁存信号ALE下降沿锁存在外部地址锁存器内。

2023-07-26 15:42:30 155 1

原创 单片机中_nop_()函数

在单片机中,通常需要延时函数,经常用到_nop_()函数,NOP指令是单片机指令中的空操作,常用于延时子程序,如果要求比较精确的延时,对循环次数作微调,以得到更加精确的较长时间的延时。12MHz晶振的机器周期为1us。在机器周期为1us的情况下,用法为你要延时几秒,就需要你需要延时的微秒数减去4us得到的需要的nop的个数。因为调用函数需要消耗一个指令周期,该指令消耗2个周期(2us),函数执行完毕之后需要返回主函数,需要一个返回指令,该指令消耗2个周期(2us)。

2023-04-22 19:27:44 4858 1

原创 函数pow( )用法

再有函数pow前,要在头文件加上#include<math.h>.pow(x,y) x为底数 y为次方表示x的y次方 x^y

2022-03-01 15:16:34 266

空空如也

空空如也

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

TA关注的人

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