- 博客(29)
- 收藏
- 关注
原创 【STM32】WIFI
串口型WIFI模块,速度比较低,主要用与数据量传输比较小的场合,比如说温度信息,一些传感器的开关量等。一次只能传输几千字节的数据,而且通信非常稳定,可满足大多数应用。注意:由于是串口型,不能传输图像或者视频大容量数据按照输出提示信息,需要给模块创建 WIFI 热点名称、加密方式和密钥,其中输入格式为“名称字符+英文逗号+加密方式编号+英文逗号+密钥字符+空格” ,我按照规定格式输入:PRECHIN,4,12345678。
2025-03-18 09:53:45
1448
原创 【STM32】SD卡
特点:容量大、高安全性、体积小9pinSD卡内部结构SD 卡允许不同的接口来访问它的内部存储单元。最常见的是SDIO 模式和SPI 模式,根据这两种接口模式,我们也列出 SD 卡引脚对应于这两种不同的电路模式的引脚功能定义microSD 引脚,比 SD 卡少了一个电源引脚 VSS2,其它的引脚功能类似,操作时序也完全相同,所以可以用完全相同的代码驱动。
2024-10-28 15:14:46
1927
原创 【STM32】内存管理
内存管理,是指软件运行时对MCU内存资源的分配和使用的技术。如何高效、快速的分配,并且在适当的时候释放和回收内存资源**内存使用三部曲:内存申请(分配)内存使用内存释放malloc[用于内存的申请]和free[用于内存的释放]标准的C语言库也提供了mallow函数和free函数来实现动态申请和释放内存。那为啥我们不用C语言库的呢?原因如下:占用大量的代码空间 不适合在资源紧缺的嵌入式系统当中没有线程安全的相关机制运行有不确定性,每次调用这些函数时花费的时间可能都不一样内存碎片化。
2024-10-28 15:05:14
1783
原创 【STM32】 TCP/IP通信协议(3)--LwIP网络接口
LwIP协议栈支持多种不同的,由于网卡是直接跟硬件平台打交道,硬件不同则处理也是不同。那Iwip如何兼容这些不同的网卡呢?LwIP提供统一的接口,底层函数需要用户自行完成,例如网卡的初始化、接收和发送数据等。当LwIP底层接收到网络数据时,需要经过层层递交才会传入内核处理;相反,LwIP发送数据时也会调用网卡的发送数据。对于没有接触过LwIP的人新手来说,我们如何编写这个底层代码呢?不用担心,LwIP提供了一个ethernetif.c 文件作为底层接口的驱动模版。用户只根据自己的网络设备进行参照修改即可。
2024-09-30 15:40:57
1036
1
原创 【STM32】TCP/IP通信协议(2)--LwIP内存管理
(1)内存管理,是指软件运行时对计算机内存资源的分配的使用的技术,其主要目的是如何高效、快速的分配,并且在适当的时候释放和回收内存资源(就比如C语言当中的malloc 、free分配和释放)内存分配:大数组,完成之后返回内存地址内存释放:传入内存地址让算法进行释放(2)LWIP内存管理策略1.内存堆:提供合适大小的内存,剩余内存返回堆中2.内存池:只能申请固定大小的内存,能有效防止内存碎片3.C库:C运行时库自带的内存分配策略(不建议使用)lwip内存池和内存堆本质上直接操作数组实现。
2024-09-29 16:11:32
1424
原创 【STM32】 TCP/IP通信协议(1)--LwIP介绍
ARPIPICMPUDPTCPDNSDHCPHTTP、FTP、MQTT等等。TCP/IP 协议栈中不同协议所完成的功能是不一样的, 某些协议的实现要依赖于其它协议,依据这种依赖关系,可以将协议栈分层。低层协议为相邻的上层协议提供服务,是上层协议得以实现的基础。以太网MAC存在于TCPIP栈中的数据链路层上。STM32F4自带有10/100Mbit/s的以太网MAC内核,这个以太网MAC内核有如下特性:支持外部PHY接口实现数据传输速率。
2024-09-22 11:14:47
5413
2
原创 【STC32】CAN协议
CAN 是控制器局域网络 (Controller Area Network) 的简称,它是由研发和生产汽车电子产品著称的德国 BOSCH 公司开发的,并最终成为国际标准(ISO11519以及ISO11898),是国际上应用最广泛的现场总线之一。CAN 总线协议已经成为汽车计算机控制系统和嵌入式工业控制局域网的标准总线,并且拥有以CAN 为底层协议专为大型货车和重工机械车辆设计的 J1939 协议。
2024-08-12 17:20:01
1496
1
原创 【STM32 HAL库】DMA+串口
DMA传输无需CPU直接控制传输,也没有中断处理方式那样保留现场和恢复现场,它是通过硬件为RAM和IO设备开辟一条直接传输数据的通道,使得CPU的效率,使得CPU的效率大大提高。_HAL_DMA_GET_FLAG查询传输状态 _HAL_DMA_GET_COUNTER 获取当前传输剩余数据量。第一阶段(软件阶段):每个通道的优先级可在DMA_CCRx寄存器中设置,由四个等级:最高、高、中、低优先级。-----“数据搬运工”。第二阶段(硬件阶段):如果两个请求有相同软件优先级,较低编号的通道有较高的优先级。
2024-07-22 19:53:32
2972
原创 【STM32】MPU内存保护单元
介绍 功能: 设置不同存储区域的存储器访问权限(管理员、用户) 设置存储器(内存和外设)属性(可缓冲、可缓存、可共享) 优点:提高嵌入式系统的健壮性,使系统更加安全 阻止用户破坏操作系统的数据 阻止一个任务访问其他任务的数据区,从而隔离任务 把关键数据区域设置为只读,从根本上解决被破坏的可能 检测意外的存储访问,如堆栈溢出、数组越界 将SRAM或者RAM空间定义为不可执行,防止代码注释 内核地址映射 MPU可配置保护8(针对F7)/16(针对H7)个内存区
2024-07-17 10:52:19
1235
1
原创 【STC8H】DHT11 温湿度传感器
我们可以在上升沿开始计数>40(最好是40-60之间),计数完成后判断此时P22的引脚是高电平还是低电平,若是高电平则为数据“1”,若低电平则为数据“0”。/************************函数声明*************************************/P6 = 0XFF;P7 = 0XFF;//设置P0~P7所有I/O口为高电平。/****************************数据类型******************************
2024-06-26 14:00:03
885
原创 Altium Designer【AD】关于无原理图绘制PCB
首先下载最新版的Aultim designal24版,使用最新版的软件比较好,功能也一般更加完善。
2024-04-05 13:34:39
6533
1
原创 【STC8H】全网最详细的SPI协议解析
SPI(Serial Peripheral Interface,串行外设接口) 协议是一种高速高效率、全双工的通信总线,允许CPU与低速的外围设备之间进行数据的传输,主要是用同步的时钟信号对串行的数据同时进行发送和接收操作,从而实现。常用于通讯,主要是在嵌入式系统中。
2024-03-25 11:14:35
1961
2
原创 【STC8H】串口通信
串口通信,顾名思义也就是利用串行接口进行通信。串行接口指串口按位(bit)发送和接收字节。尽管比按字节(byte)传输的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。串口通信中比较重要的参数包括波特率、数据位、停止位及校验位,通讯双方需要约定一致的数据格式才能正常收发数据。跟踪接收数据的结构中的变量。检查特定的帧格式,包括帧头、数据长度、数据和帧尾。如果接收到完整的帧,它将状态设置为1,表示已接收到有效的帧。根据接收到的数据帧执行特定任务的占位符。
2024-03-23 17:08:33
2780
3
原创 【STC8H】全网最详细的IIC协议
IIC(Inter-Integrated Circuit)是 IIC Bus 简称,中文叫集成电路总线。它是一种总线,使用(多个主机可以连接多个从机)架构。IIC使用两根双向信号线进行通信:一根时钟线SCL,用于通信双方时钟的同步;一根数据线SDA,用于收发数据。IIC总线上所有器件的SDA、SCL引脚输出驱动都为结构,并且IIC为同步的方式(第五章的第一节有提到过半双工通信模式哦!初始化总线的数据传输并产生允许传输的时钟信号的器件。任何被寻址的器件。每个器件都有一个。
2024-03-23 16:47:13
2027
1
原创 全网最详细基于keil的STM32环境配置
当时配置的是STC8H的环境,现在基于此,重新给STM32配置环境。能让STC8H和STM32都能在同一个Keil软件编译运行!keil5软件里有时候会弹出CMSIS Packs下载的页面,但是不推荐在那里下载,因为非常的慢!创建工程还需要将官方的固件库包里的源码文件复制到我们的工程目录文件夹下面(有时间后面再补充吧)。前面,我们有最详细的Keil MDK5的安装及破解步骤。说明你的keil可以编译运行STM32的代码了。第一步 首先获得并解压ARMCC文件。然后双击它,将它安装好就行了!
2024-03-19 14:43:56
2646
2
原创 Altium Designer【AD】布线铺铜下单等教程
对于焊接时,可以保护焊盘,避免多次焊接是焊盘的脱落,生产时可以避免蚀刻不均匀、过孔偏位出现的裂缝等,使信号传输时平滑阻抗,减少阻抗的急剧跳变,避免高频信号传输时由于线宽突然变小而造成反射,可使走线与元件焊盘之间的连接趋于平稳过渡化。因为电源线和地线相对于一般的线较宽,你也可以在这里新建VCC和GND的线宽并设置各个参数,这样在接下来布线时,VCC和GND的线宽就按照设置的规则布线了。布局时的注意事项: 1.主要的元器件居正中放置,因为该元器件连接的器件较多,可以将其他的元器件就近排列在其周围。
2024-01-13 19:27:18
15346
3
原创 Altium Designer【AD】元件PCB封装
当我们需要用的一些元器件PCB封装库中找不到的时候,我们就需要自己手动绘制一些元器件的PCB封装。当然也可以选择用相似的代替,但是在一些长场合中并不允许我们这样做,也为了更加的追求完美。在元器件pcb封装的时候就要确认封装的大小(焊盘要跟实物大小相匹配),当然要看它的精度:百分之一的肯定要比百分之十的要好。在之前的绘制PCB原理图中的"创建元件简易版"有说过:在立创商城里搜索出元件号,直接用已经做好的元件符。type-c对应其pcb封装,10k对应10k的,1.5k对应1.5k的...
2024-01-09 10:39:20
14664
3
原创 Altium Designer【AD】绘制原理图教程
前面我们在创建Type-C的时候是自己画出来的,但是你会发现很操作过程繁琐且无趣,以后还有更多的元件等着你呢!你会注意到示例图上管脚号显示的是A1B12,A4B9.你想想:这是一个“A1B12”管脚号还是...这里两个管脚名叠加在一起了(我也不知道咋搞),就是不太美观。然后点击各个管脚,在详情页里设置管脚号、管脚长度、颜色等等。接下来,又是页面左上角:文件---新的---原理图。下面这张图应该放在最前面讲的,放在这也无妨。接着创建原理库:文件---新的---库。页面左上角 :文件---新的--项目。
2024-01-07 17:47:26
37002
11
原创 【STC8H】定时器+中断
STC8H8K64U有5个定时器:定时器0,定时器1,定时器2,定时器3,定时器4。想了解更详细的请查阅STC8H官方手册。
2023-11-18 17:47:58
3889
1
原创 【STC8H】IO口模拟串口UART
当单片机 想给电脑 发送数据时,比如发送一个 0xE4 这个数据,用二进制形式表 示就是 0b11100100,在 UART 通信过程中,是低位先发,高位后发的原则,那么就让 TXD 首先拉低电平,持续一个波特率的时间,发送一位 0,然后继续拉低,再持续一段时间,又发送了一 位 0,然后拉高电平,持续一段时间,发了一位 1……是由1个起始位,8个数据位,包含一个奇偶校验位,和结束位构成。在本次的设计中默认为波特率为9600,停止位为1位,8位数据位,无奇偶校验位。函数,并且使用后缀递增运算符。
2023-11-17 13:20:11
661
原创 【STC8H】控制IO口
(1)准双向口模式:允许一个IO口在不同的时间点既可以作为输入口又可以作为输出口,实现输入和输出的灵活切换。(2)推挽模式:高电平与低电平均可提供一定强电流(3)开漏输出模式:限低电平模式下可通过强电流(较通用IO模式),而高电平需外部提供。(4)高阻输入模式:输入和输出均为高阻,直接阻断。
2023-11-17 13:10:03
2413
原创 全网最详细的Keil MDK5的安装及破解步骤
链接:https://pan.baidu.com/s/1F6p_I6urFspIhlY6YNvChQ。这是我在博客园第一次分享经验,制作不易,记得一定要点个小红心支持一波~关闭这个页面后,接下来一定要关掉电脑中安全软件的保护设置!安装好后桌面会弹出这个界面。这是keil5的安装界面。接下来是MDK的安装界面。
2023-10-21 16:47:13
45724
59
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人