自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zqx的博客

嵌入式成长之路

  • 博客(36)
  • 收藏
  • 关注

原创 串口中断与环形队列——高级应用

由于串口中断服务函数处理串口的数据寄存器的数据时,存储数据和处理数据需要一定的时间,所以接收数据的频率不能太快。为了解决这个问题,在中断服务函数中将串口的数据寄存器值存储在环形队列中,只做存储功能,处理数据的功能放在主函数中。这样一来,就不会遗漏任何一个字节的数据。

2024-04-24 17:09:30 79

原创 串口的空闲中断与DMA——高级应用

串口中断接收数据,例如AT指令发送与接收。检测到数据寄存器有数据后触发串口中断,在中断服务函数中,将数据寄存器值存到内存中,并清理非空标志位,这种传统做法是传输一个字节产生一次中断。现在使用DMA,数据寄存器有数据后,DMA自动把数据寄存器值存到指定位置,DMA规定传输n个字节后串口空闲了,然后触发串口中断,在中断服务函数中,清理空闲标志位,这种做法是串口接收到n个字节后产生一次中断。

2024-04-24 17:08:33 145

原创 电源——BUCK详解

开关管断开时,(放电)L1产生一个左负右正的感应电动势,L1给负载供电,此时电流通过D1流向L1。开关管导通时,(充电)L1产生一个左正右负的感应电动势并慢慢消失,Vi给负载供电。如图,给一个一定频率的PWM波控制Q1,使得输入电压不停的导通断开,达到降压的目的。Q1是开关管,通常使用的是MOS管。如图,BUCK电路封装在芯片内,此芯片为TPS5450,芯片的典型应用电路如图。BCM:电感电流连续工作临界模式(周期结束时电感电流刚好降为0)储存在电感上的能量等于电感释放出的能量。输入与输出的极性相同。

2024-04-13 00:46:15 261 1

原创 单片机 软件 硬件 调试 BUG 持续更新

调试单片机bug是非常头疼的,基本是一些非常简单却非常难找到的bug。如果按照一定的排查方法分步骤去做,避免重复排查验证,极大的缩短排查时间,增加排查bug的成功率。主要是分为硬件排查和软件排查两个部分。

2024-01-27 16:21:45 233

原创 EPROM与EEPROM的区别——OTP与MTP

ROM也有很多种,PROM是可编程的ROM,PROM和EPROM(可擦除可编程ROM)两者区别是,PROM是一次性的,也就是软件灌入后,就无法修改了,这种是早期的产品,现在已经不可能使用了,而EPROM是通过紫外光的照射擦出原先的程序,是一种通用的存储器。另外一种EEPROM是通过电子擦出,价格很高,写入时间很长,写入很慢。1、电子擦除的EEPROM用来多次读写最普遍,flash的区块擦除也可以2、EPROM虽然可擦除,但是紫外线照射方式非常笨拙,因此与PROM一样,只烧写一次。

2024-01-15 15:55:57 1215

原创 九齐单片机低功耗——睡眠模式

四种工作模式中睡眠模式是最省电的,低功耗功能关键点是怎么唤醒单片机,何时唤醒单片机,单片机换醒后何时才能再次进入睡眠模式,如此往复。

2024-01-05 13:09:34 617

原创 STC单片机 下载口 P3.0 注意问题

官方手册上说P3.0和P3.1上电默认是准双向口。如果你的下载口不小心接了上拉电阻或者下拉电阻或者影响下载口的电平,这些行为都会使IO上电初始化失败,也就不能下载程序。例如,将P3.0用来做ADC转换,上电时接下拉电阻拉低电平,电平始终为低电平,下载口初始化失败,不能下载程序。

2023-11-24 07:45:45 594

原创 按键检测 与 数码管显示 引脚 复用 电路设计

之前讲过发光二极管工作电压为2V左右,按键按下时,单片机引脚通过电阻R14接地,由于引脚高电平通过电阻,此时引脚电平不至于为0V应该有2-3V左右,引脚同时也连接着数码管这样才能让发光二极管导通。当我们发现按键没有按下,按键会自动触发时。二极管截止,那么单片机引脚配置上拉电阻的高电平不会被拉低,即电流不会从IO口经过数码管的二极管流出,电流只会在按键按下时从电阻R14流出,这样才能正确检测按键是否被按下。数码管是共阴极,它的段引脚需要加电阻,电阻连接单片机的引脚,发光二极管的工作电压是2V左右。

2023-11-23 08:05:41 683

原创 九齐e64a——ADC详解

配置相应IO口为ADC模拟输入模式并关上下拉电阻,配置IOSTB寄存器。选择一个ADC通道,先清理通道即置零,配置ADMD寄存器。设置ADC参考电压,配置ADVREFH寄存器。开启ADC输入总通道,配置ADMD寄存器。开始ADC转换命令,配置ADMD寄存器。设置ADC位数,配置ADCR寄存器。设置ADC时钟,配置ADR寄存器。设置采样时间,配置ADCR寄存器。使能ADC,配置ADMD寄存器。开启ADC中断,配置ADIE。

2023-11-22 08:05:27 613

原创 C语言之stdbool头文件中的bool类型

在嵌入式开发中常常用到,但是有的单片机不支持bit类型,资源很少,例如九齐的8位机不能用bit类型,只能用bool类型,上面的语句只适用于bit类型,而bool类型必须使用下面的写法。bool类型通常使用取反操作,类似于开关的作用。bit类型也是这样的用法,例如。

2023-11-11 15:00:03 231

原创 嵌入式C语言之代码优化——多个字节拼接为一个变量或一个变量拆分为多字节

将两个u8类型拼接为一个u16类型或者u16拆解为u8类型该怎么写呢?使用运算符,还有使用或,这个方法是最常见的左移8位即乘0x16右移8位即除0x16更加高效的方法是使用union。

2023-10-29 09:31:41 166

原创 白嫖封装 立创EDA 封装库PcbLib EDA格式转AD格式

每个人都要有属于自己的封装库和原理图库,但最主要的还是封装库,元器件的封装多种多样。使用AD画图时,怎么将别人的封装保存到自己的PCBLIB文件中呢?只需要打开别人的PCBSCH文件或PCBLIB文件找到你想要的封装,然后复制这个封装,粘贴到自己PCBLIB文件中并保存命名就可以了。常见的获取封装的方式是在立创商城上,将封装导出为AD的格式,白嫖封装文件,这样就不需要自己画封装了。

2023-08-31 13:52:39 483

原创 嵌入式 C语言 生命周期 作用域 存储区 详解

一旦开发的项目功能变多了,相应的定义的变量也会变多,例如一些标志位、存储区等等。这些变量需要关键字来修饰,以便更规范的编写代码,避免出现意外。我们用关键字来修饰变量是用得最多的,但是函数也有用关键字修饰的情况,例如static等。那么不同的关键字的作用究竟是什么呢?什么时候创建、什么时候销毁、在哪能调用、在哪不能调用,答案在下面。

2023-08-26 11:27:15 96 1

原创 STC——下载程序 硬件复位 软复位 不断电ISP下载 一键下载 USBLINk下载

开发项目时,需要不断的修改代码、下载代码,实现不断电ISP下载能很好的解决这个问题。ISP代码只有在重新上电时才会被执行。单片机有两个代码区:用户代码区和ISP代码区。前者是代码在RAM上运行,后者是代码下载保存在flash中。当然RAM当中的程序也是从flash中读取的,但掉电不会保存。通过配置软件复位寄存器IAP_CONTR可以在不断电的情况下,复位到ISP程序区下载代码执行代码。搭配STC-ISP软件可以实现一键点击下载功能。

2023-07-25 23:43:14 3602 1

原创 AD导出BOM表单——Excel模版使用方法

在需要的列小方框上勾选上,相应的会生成所需的表格内容;聚合部分一般默认不用设置(这部分相当于数据库中的双重分组);模版的使用需要借鉴官方所给的模版,调试成自己需要的模版,此处需要掌握一些excel操作。常用的列有:Comment(元件值)、Designator(位号)、Footprint(封装)、Quantity(元件数量)需要的列中的内容在原理图中规范标记,会方便BOM表的导出;双击元件设置它的符号、大小、封装、名称等。官方模版使用的是:BOM Simple.xlt。

2023-07-12 10:01:29 1992

原创 win7系统的电脑默认共享和所有共享文件的管理

取消、共享文件夹

2023-07-10 14:52:00 304

原创 protel使用之立创EDA笔记

立创EDA使用总结

2023-06-19 21:34:58 165

原创 SPI协议详解

SPI(Serial Peripheral Interface)是由Motorola公司开发的一种通用数据总线SPI有四根通信线:SCK(Serial Clock)、MOSI(Master Output Slave Input)、MISO(Master Input Slave Output)、SS(Slave Select);网上对于通信线的名称大同小异但是功能是一样的同步,全双工支持总线挂载多设备(一主多从):每一个从机都有单独连接主机的SS线,且低电平有效。

2023-06-07 23:45:18 674

原创 STM32——时钟树、时钟系统、滴答定时器

Systick定时器,是一个简单的定时器,Systick定时器常用来做延时,或者实时系统的心跳时钟。这样可以节省MCU资源,不用浪费一个定时器。比如UCOS中,分时复用,需要一个最小的时间戳,一般在STM32+UCOS系统中,都采用Systick做UCOS心跳时钟。Systick定时器就是系统滴答定时器,一个24 位的倒计数定时器,计到0 时,将从RELOAD 寄存器中自动重装载定时初值。配置CLKSOURCE时,外部时钟源是 HCLK(AHB总线时钟)的1/8,内核时钟是 等于HCLK时钟的。

2023-05-13 23:46:28 1122

原创 STM32——DMA详解

DMA 全称Direct Memory Access,即直接存储器访问。DMA传输将数据从一个地址空间复制到另一个地址空间。当CPU初始化这个传输动作,传输动作本身是由DMA控制器来实现和完成的。DMA传输方式无需CPU直接控制传输,也没有中断处理方式那样保留现场和恢复现场过程,通过硬件为RAM和IO设备开辟一条直接传输数据的通道,使得CPU的效率大大提高。存取方向:存储器和存储器间的传输、外设和存储器、存储器和外设之间的传输DMA作用:为CPU减负。

2023-05-10 22:24:58 2239

原创 STM32——PWM DAC详解

PWM输出的是方波,若占空比100%则PWM的实际有效值是3.3v,若占空比50%则PWM的实际有效值是3.3/2v,若占空比为0%则PWM的实际有效值是0v。如图所示:所以PWM DAC输出的电压值等于方波的有效值,有效值又通过占空比控制的,占空比由CCR控制,即PWM DAC输出电压大小与CCR的值成正相关。

2023-05-10 17:48:02 1111

原创 STM32—DAC详解

数字/模拟转换模块(DAC)是12位数字输入,电压输出的数字/模拟转换器。DAC输出可以配置为8位或12位模式,也可以与DMA控制器配合使用。DAC工作在12位模式时,数据可以设置成左对齐或右对齐。DAC模块有2个输出通道,每个通道都有单独的转换器。在双DAC模式下,2个通道可以独立地进行转换,也可以同时进行转换并同步地更新2个通道的输出。DAC可以通过引脚输入参考电压VREF+以获得更精确的转换结果。

2023-05-10 17:07:35 1644

原创 STM32—ADC详解

12位逐次逼近型的模拟数字转换器。最多带3个ADC控制器最多支持18个通道,可最多测量16个外部和2个内部信号源。支持单次和连续转换模式转换结束,注入转换结束,和发生模拟看门狗事件时产生中断。通道0到通道n的自动扫描模式自动校准采样间隔可以按通道编程规则通道组和注入通道组均有外部触发选项转换结果支持左对齐或右对齐方式存储在16位数据寄存器ADC转换时间:最大转换速率 1us。(最大转换速度为1MHz,在最大时钟ADCCLK=14M,采样周期为1.5个ADC时钟下得到。

2023-05-09 21:12:25 5467 1

原创 STM32定时器——定时器输入捕获与主从模式详解

掌握ICPS、CCxE位的功能。

2023-05-08 12:28:52 5857 2

原创 STM32定时器——定时器输出PWM的呼吸灯应用

自动装载寄存器是预先装载的,写或读自动重装载寄存器将访问预装载寄存。根据在TIMx_CR1寄存器中的自动装载预装载使能位(ARPE)的设置,预装载寄存器的内容被立即或在每次的更新事件UEV时传送到影子寄存器。在比较模式下,预装载寄存器的内容被复制到影子寄存器中,然后影子寄存器的内容和计数器进行比较。捕获/比较模块由一个预装载寄存器和一个影子寄存器组成。在捕获模式下,捕获发生在影子寄存器上,然后再复制到预装载寄存器中。CCR1:捕获比较(值)寄存器(x=1,2,3,4):设置比较值。0:关闭,1:打开。

2023-05-08 09:53:11 499

原创 STM32定时器——定时器中断的计时应用

根据在TIMx_CR1寄存器中的自动装载预装载使能位(ARPE)的设置,预装载寄存器的内容被立即或在每次的更新事件UEV时传送到影子寄存器。APB1=AHB/2、4、8、16时,TIMCLK=APB1×2=AHB/2、4、8、16×2。在比较模式下,预装载寄存器的内容被复制到影子寄存器中,然后影子寄存器的内容和计数器进行比较。=72M,APB1由AHB分频可得72/1,72/2,72/4,72/8,72/16。CCR1:捕获比较(值)寄存器(x=1,2,3,4):设置比较值。0:关闭,1:打开。

2023-05-07 23:54:45 1654

原创 stm32串口——串口工作流程详解

串口的几个重要的参数:(详细可以看参考手册的串口章节)完全掌握串口需要先掌握一些串口的基础知识。

2023-05-05 12:21:36 231

原创 IIC协议详解

主机控制:起始信号与停止信号从机控制:应答信号(ACK与NACK)数据传输顺序:高位先出数据有效性:SCL为高电平时,SDA数据有效。SCL为低电平时才能改变SDA状态。IIC接上拉电阻,SDA与SCL默认状态为高电平。

2023-04-30 22:43:49 153

原创 LinuxVim使用笔记

【代码】Vim使用笔记。

2023-04-27 16:12:22 70

原创 Git基础教程——韦东山资料下载

一、Git命令详解-基础命令说明git log查看历史提交信息日志git log filename查看此文件日志git clone 链接下载链接上的文件git init新建本地仓库git add filename文件进入暂存区、准备上传文件到仓库,需commit -mgit add --all将当前目录下包括子目录下(所有改动的文件:包括删除操作)提交到暂存区git add .点表示当前目录,将目录里的现有文件(不包括删除操作)提交到暂

2023-04-18 17:16:00 119

原创 eclipse环境中的一些实用操作汇总

eclipse 在JavaEE模式下,新建一个项目后,在项目或者src上点右键NEW一个内容时,默认的全是各种工程,而不是我要找的东西 比如class 或者interface 或者 package之类的信息!为了能提高开发效率,eclipse中的快捷操作,必须得拥有!跟着下面一步步操作,就可以了!打开New没有相关的操作打开window -> Prespective -> Customize Perspective…选择 Shortcuts勾选Java。

2023-03-28 11:45:02 775

原创 AT指令透传-连接onenetmqtt服务器

注意波特率、停止位01引脚功能CH_PD为ENAT指令配置步骤。

2022-10-12 16:21:10 964

原创 stm32串口——printf重定向两种方法

此处使用的是usart1,记得先串口初始化。

2022-10-12 16:19:38 403

原创 51单片机串口 溢出率计算

例:若初始值 0xfd;溢出率=1/溢出一次时间=1/ {(0xff+1-0xfd)*(12/11.0592M)}=307200溢出一次的时间{(0xff+1-0xfd)*(12/11.0592M)} = 计数次数 * 时钟周期计数次数 = 0xff+1-0xfd = 最大值 + 1 - 初值时钟频率为11.0592MHZ不能约等于12MHZ串口模式1为8位自动重装载,需要设置SMOD位波特率=( (2^SMOD)/32 )*溢出率 //串口工作模式1,SMOD为0.........

2022-06-18 14:33:11 1280

原创 stm32工程模板创建

stm32工程模板创建一、项目文件一览COREOBJSTM32F10x_FWLibSYSTEMUSER以上部分文件来自官方提供的固件库文件:STM32F10x_StdPeriph_Lib_V3.5.0下面继续介绍1.1 CORE核心文件共3个在两个文件夹中可以找到:STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupportSTM32F10x_StdPeriph_Lib_V3.5.0\Libraries

2022-05-29 20:47:55 589

原创 stm32PCLK1=HCLK/2

stm32PCLK1=HCLK/2/* HCLK = SYSCLK */ RCC->CFGR |= (uint32_t)RCC_CFGR_HPRE_DIV1; /* PCLK2 = HCLK */ RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE2_DIV1; /* PCLK1 = HCLK 错误 */ /* PCLK1 = HCLK/2 正确 */ RCC->CFGR |= (uint32_t

2022-05-06 20:23:20 590

精密贴片电阻阻值对照表

精密贴片电阻阻值对照表

2024-01-11

PWM 冻结模式 模式1 控制LED闪烁

通过PWM切换模式实现LED闪烁,LED熄灭功能

2024-01-08

九齐单片机NY8BE64A数据手册

九齐单片机NY8BE64A数据手册

2024-01-05

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

TA关注的人

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