![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
嵌入式
拉普拉斯_凯
1234-学生
展开
-
socket编程为什么需要htons(), ntohl(), ntohs(),htons() 函数
在C/C++写网络程序的时候,往往会遇到字节的网络顺序和主机顺序的问题。这是就可能用到htons(), ntohl(), ntohs(),htons()这4个函数。网络字节顺序与本地字节顺序之间的转换函数: htonl()--"Host to Network Long" ntohl()--"Network to Host Long" htons()--"Host t...转载 2019-06-01 17:53:23 · 322 阅读 · 0 评论 -
STM32输出比较模式和PWM模式
https://blog.csdn.net/u014224380/article/details/78026667 1.两者关系:其实完全可以理解为PWM模式为输出比较模式的特殊形式,pwm模式在对应定时器上的四个通道产生的频率是同步的(即相同的),而输出比较模式在四个通道可以产生的频率不同。2.pwm很多是周期固定改变占空比来应用的,当然也有改变频率的,改变占空比修改的是CCR1寄存...转载 2018-12-26 19:25:08 · 4877 阅读 · 0 评论 -
FatFs文件系统——(1)简介
系统官网 : http://elm-chan.org/fsw/ff/00index_e.html 目录文件系统FatFs文件系统FatFs系统特征系统应用函数系统底层函数系统源码结构 文件系统 文件系统是为了存储和管理数据,而在存储介质建立的一种组织结构,这些结构包括操作系统引导区、目录和文件。常见的 windows 下的文件系统格式包括 FAT32、...原创 2018-12-09 16:38:37 · 2473 阅读 · 1 评论 -
STM32之低功耗——WKUP待机唤醒(LCD显示)
目录单片机的低功耗STM32电源框图STM32的三种低功耗模式低功耗配置图(详细配置参考STM32参考手册)电源控制寄存器部分相关代码附录 单片机的低功耗 很多单片机有低功耗模式,STM32也不例外。在系统或者电源复位后,微控制器出于运行状态之下,HCLK为CPU提供时钟,内核执行代码。当CPU不需要继续运行时,可以利用多种低功耗模式来节省功耗,例如等...原创 2018-12-09 16:11:50 · 7603 阅读 · 1 评论 -
RTC实时时钟(LCD显示)
目录RTC简介RTC时钟框图RTC工作原理图RTC相关寄存器(详细配置过程参考STM32参考手册)部分代码分析附录 RTC简介 实时时钟(RTC)是一个独立的定时器。RTC模块拥有一组连续计数的计数器,在相应软件配置下,可提供时钟日历的功能。修改计数器的值可以重新设置系统当前的时间和日期。RTC模块和时钟配置系统(RCC_BDCR寄存器)处...原创 2018-12-09 15:41:50 · 8047 阅读 · 1 评论 -
JLINK 灯不亮了 解决方案
软件若打不开,请使用管理员打开下面是常见的J-link里面的板子: 接下来我们开始重刷固件: 需要材料: 一条杜邦线(或跳线帽) sam-ba_2.14 密码:ejkc J-link驱动4.90 密码:161c这里有一点很重要,有些厂家为了防止别人重刷固件,直接将ERASE脚接地,所以在刷之前最好检查一下ERASE脚是不是被直接接地了,如果是的话想要刷固件只能弄断ERAS...转载 2018-11-26 22:40:59 · 7392 阅读 · 2 评论 -
STM32——SPI通信协议(W25Q128FLASH的通信)
目录SPI协议SPI物理层SPI协议层CPOL/CPHA 及通讯模式 STM32的SPI外设W25Q128 FLASH芯片介绍附录 SPI协议 串行外设接口(Serial Peripheral Interface Bus,SPI),是一种用于短程通信的同步串行通信接口规范,主要应用于单片机系统中。类似I2C。 这种接口首先被Motorola(摩托罗拉)公司开...原创 2018-11-23 18:28:19 · 5712 阅读 · 0 评论 -
STM32——硬件和软件I2C协议
目录 I2C协议 I2C 物理层I2C协议层STM32的硬件I2C软件模拟I2C部分通信逻辑附录 I2C协议 I2C 通讯协议(Inter-Integrated Circuit)是由 Phiilps 公司开发的,由于它引脚少,硬件实现简单,可扩展性强,不需要 USART、CAN 等通讯协议的外部收发设备,现在被广泛地使用在系统内多个集成电路(IC)间的通...原创 2018-11-11 19:37:47 · 5922 阅读 · 0 评论 -
RTthread学习笔记————第5章 时钟管理
系统节拍 RT-Thread 的时钟管理以时钟节拍为基础,时钟节拍指的是周期性硬件定时器两次中断间的间隔时间长度,这个周期性硬件定时器称之为系统时钟。时钟节拍(OS Tick)是 RT-Thread 操作系统中最小的时钟单位,系统节拍一般定义为无符号 32 位整数,提供给应用程序所有和时间有关的服务,如线程的延时、线程的时间片轮转调度以及定时器超时等,从系统启动开始计数的时钟节拍数称为系...原创 2018-11-04 22:16:29 · 3553 阅读 · 0 评论 -
RTthread学习笔记————第4章 线程管理
什么是线程 线程,有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元。一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成。RT-Thread 的线程调度器是抢占式的,主要的工作就是从就绪线程列表中查找最高优先级任务,保证最高优先级的线程能够被运行,最高优先级的任务一旦就绪,总能得到 CPU 的控制权。 线程...原创 2018-11-04 21:26:58 · 4344 阅读 · 0 评论 -
RTthread学习笔记————第3章 内核基础
内核基础 内核是操作系统最基础也是最重要的部分。图 3-1 为 RT-Thread 内核架构图,内核处于硬件层之上,内核部分包括内核库、实时内核实现。 RT-Thread 内核及底层结构 内核库是为了保证内核能够独立运行的一套小型的类似 C 库 [1] 的函数实现子集。这部分根据编译器自带 C 库的情况会有些不同,当使用 GNU GCC 编译器时,会携带更多的标...原创 2018-11-04 20:42:56 · 10276 阅读 · 1 评论 -
RTthread学习笔记————第2章 RTthread简介
RTthread RT-Thread,全称是 Real Time-Thread,顾名思义,它是一个嵌入式实时多线程操作系统,基本属性之一是支持多任务,允许多个任务同时运行并不意味着处理器在同一时刻真地执行了多个任务。事实上,一个处理器核心在某一时刻只能运行一个任务,由于每次对一个任务的执行时间很短、任务与任务之间通过任务调度器进行非常快速地切换(调度器根据优先级决定此刻该执行的任...原创 2018-11-04 18:54:41 · 7830 阅读 · 0 评论 -
STM32——ADC实验(单通道串口打印)
ADC介绍 12位ADC是一种逐次逼近型模拟数字转换器。它有多达18个通道,可测量16个外部和2个内部信号源。各通道的A/D转换可以单次、连续、扫描或间断模式执行。 ADC的结果可以左对齐或右对齐方式存储在16位数据寄存器中。模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高/低阀值。ADC的输入时钟不得超过14MHz,它是由PCLK2经分频产生。 STM32_ADC特征...原创 2019-01-21 18:03:25 · 2755 阅读 · 0 评论 -
STM32_DMA(为CPU减负)——USART1->DR
什么是DMA DMA(Direct Memory Access,直接内存存取) 是所有现代电脑的重要特色,它允许不同速度的硬件装置来沟通,而不需要依赖于 CPU 的大量中断负载。直接存储器存取(DMA)用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。无须CPU干预,数据可以通过DMA快速地移动,这就节省了CPU的资源来做其他操作。两个DMA控制器有12个通道(DMA1有7...原创 2019-01-22 16:54:11 · 2882 阅读 · 0 评论 -
关于cmp的详细用法
https://www.cnblogs.com/HangZhe/p/6916502.html一、关于cmp的详细用法 假设现在AX寄存器中的数是0002H,BX寄存器中的数是0003H。 执行的指令是:CMP AX, BX 执行这条指令时,先做用AX中的数减去BX中的数的减法运算。 列出二进制运算式子: 0000 0000 0000 0010 ...转载 2019-02-10 14:10:04 · 6529 阅读 · 0 评论 -
attribute 用法 section 部分
attribute 用法 section 部分http://blog.sina.com.cn/s/blog_5e11a56a0100c8h5.html###1. gcc的__attribute__编译属性要了解Linux Kernel代码的分段信息,需要了解一下gcc的__attribute__的编绎属性,__attribute__主要用于改变所声明或定义的函数或 数据的特性,它有很多...转载 2019-05-23 09:35:54 · 445 阅读 · 0 评论 -
rtthread-ipc之completion
这是一个较为简单的线程同步通信机制,当然截至写稿之前我也不懂,但是从代码来看,还是比较简单。一 首先查看completion.h文件#ifndef COMPLETION_H_#define COMPLETION_H_#include/*** Completion*/struct rt_completion{rt_uint32_t flag;/* suspended lis...转载 2019-05-11 20:12:21 · 1231 阅读 · 0 评论 -
sscanf()
在处理字符串的程序当中,经常会分析字符串,从一大长串的字符串截取我们需要的数据,这如果通过自己手写函数来分析,虽然可以,但当你知道sscanf的功能,那就自己写函数分析就显得多此一举。这些函数的使用都很简单,总结一下,等下次使用一目了然。俗话说:好记性不如烂笔头,记录下来就是效率。以下源代码是本人测试的源文件,附带讲解注释。/*****************************...转载 2019-05-13 22:21:00 · 213 阅读 · 0 评论 -
pthread_exit 和 pthread_join
pthread_exit(void *ptr) 函数使线程退出,并返回一个空指针类型的值。pthread_join(pthread_t tid,void **rtval)调用此函数的进程/线程等id为tid的线程返回或被终止,并从它那里获得返回值。注意,退出函数返回的是一个空指针类型,接受函数也必须用一个指针来接收。但是函数给出的参数是接收指针的地址,即,接收到的指针值写入给出的地址处的指...转载 2019-04-26 17:16:17 · 624 阅读 · 0 评论 -
OV7725
https://github.com/kks1234/STM32/tree/master/26.OV7725%E6%98%BE%E7%A4%BA原创 2019-04-14 19:21:22 · 1414 阅读 · 3 评论 -
fork()两次不同返回值
【NOTE4】首先必须有一点要清楚,函数的返回值是储存在寄存器eax中的。其次,当fork返回时,新进程会返回0是因为在初始化任务结构时,将eax设置为0;在fork中,把子进程加入到可运行的队列中,由进程调度程序在适当的时机调度运行。也就是从此时开始,当前进程分裂为两个并发的进程。无论哪个进程被调度运行,都将继续执行fork函数的剩余代码,执行结束后返回各自的值。【NOTE5...转载 2019-04-14 18:21:21 · 651 阅读 · 0 评论 -
MPU6050( )
https://github.com/kks1234/STM32/tree/master/24.MPU6050%E7%AE%80%E5%8D%95%E6%94%B6%E5%8F%91原创 2019-03-04 19:40:42 · 386 阅读 · 1 评论 -
CAN(二)
STM32 的 CAN 外设简介 STM32 的芯片中具有 bxCAN 控制器 (Basic Extended CAN), 它支持 CAN 协议 2.0A 和2.0B 标准。该 CAN 控制器支持最高的通讯速率为 1Mb/s;可以自动地接收和发送 CAN 报文,支持使用标准 ID 和扩展 ID 的报文;外设中具有 3 个发送邮箱,发送报文的优先级可以使用软件控制,还可以记录发送的时间;...原创 2019-03-04 19:38:12 · 974 阅读 · 0 评论 -
HAL库结构
HAL库结构 https://blog.csdn.net/zcshoucsdn/article/details/55213616 说到STM32的HAL库,就不得不提STM32CubeMX,其作为一个可视化的配置工具,对于开发者来说,确实大大节省了开发时间。STM32CubeMX就是以HAL库为基础的,且目前仅支持HAL库及LL库!首先看一下,官方给出的HAL库的包含结构:- *...转载 2019-03-08 17:14:54 · 2498 阅读 · 0 评论 -
CAN(一)
CAN 是什么? CAN 是 Controller Area Network 的缩写(以下称为 CAN),是 ISO*1 国际标准化的串行通信协议。在当前的汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种各样的电子控制系统被开发了出来。由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相同,由多条总线构成的情况很多,线束的数量也随之增加。为适应“减少线束的数...原创 2019-02-19 00:13:45 · 470 阅读 · 0 评论 -
#define _OBJ_CONTAINER_LIST_INIT(c)
#define _OBJ_CONTAINER_LIST_INIT(c) \ {&(rt_object_container[c].object_list), &(rt_object_container[c].object_list)}struct rt_object_information{ enum rt_object_class_type...原创 2019-02-13 15:59:33 · 536 阅读 · 0 评论 -
RTthread学习笔记————第1章 嵌入式操作系统
什么是操作系统 操作系统是指管理和控制计算机硬件与软件资源的计算机程序,是直接运行在计算机上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行,按应用领域来划分,可分为桌面操作系统、服务器操作系统、移动操作系统、和嵌入式操作系统几类。 嵌入式操作系统是指是用在嵌入式系统的操作系统。嵌入式系统使用非常广泛,可以理解为除了服务器、个人电脑、移动设备外的计算机都是...原创 2018-11-04 18:44:00 · 2838 阅读 · 0 评论 -
STM32——FSMC(灵活的静态存储器控制器)驱动TFTLCD液晶屏
TFTLCD液晶屏介绍 TFTLCD即薄膜晶体管液晶显示器。它与无源TN-LCD、STN-LCD的简单矩阵不同,它在液晶显示屏的每一个象素上都设置有一个薄膜晶体管(TFT),可有效地克服非选通时的串扰,使显示液晶屏的静态特性与扫描线数无关,因此大大提高了图像质量。广泛应用于电视、手机、电脑、平板等各种电子产品。 TFTLCD的优点 技术成熟,良率高,成本集中在背光上;...原创 2018-10-24 18:39:45 · 4715 阅读 · 1 评论 -
固件库FSMC_NORSRAMInit( )函数代码分析
相关结构体 typedef struct{ uint32_t FSMC_Bank; //指定FSMC NOR/SRAM的存储区 块一的1~4区 uint32_t FSMC_DataAddressMux; //数据地址总线复用位设置 uint32_t FSMC_MemoryType; //存储器类型定义 uint3...原创 2018-10-23 21:17:16 · 1315 阅读 · 0 评论 -
单片机复位和冷启动(掉电)的区别
转自:http://www.elecfans.com/d/656396.html作为笔记STC单片机简介 STC单片机是一款增强型51单片机,完全兼容MCS-51,还增加了新的功能,比如新增两级中断优先级,多一个外中断,内置EEPROM,硬件看门狗,具有掉电模式,512B内存等。还支持ISP下载,不用编程器,只要一个MAX232和一些廉价的元件就能写程序,可擦写10万次。因此是一款很好用的单片机...转载 2018-05-26 19:24:42 · 7411 阅读 · 0 评论 -
脉冲
转自:https://zhidao.baidu.com/question/191480159.html?loc_ans=545577793在电子技术中,脉冲是指短时间内出现的电压或电流的突然变化。常把不按规律变化、带有突变特点的电压、电流都泛称为脉冲电信号。 脉冲的种类很多,常见的脉冲信号波形有方波,矩形波等。描述脉冲信号的参数有:脉冲幅度Um(或Im):脉冲重复周期T;脉冲的宽度tu;脉冲上升时...转载 2018-05-21 23:15:27 · 559 阅读 · 0 评论 -
单片机定时计数器工作方式3
转自:https://bbs.csdn.net/topics/290043889工作方式3只适用于定时器0。如果使定时器1为工作方式3,则定时器1将处于关闭状态。 当T0为工作方式3时,THo和TL0分成2个独立的8位计数器。其中,TL0既可用作定时器,又可用作计数器,并使用原T0的所有控制位及其定时器回零标志和中断源。TH0只能用作定时器,并使用T1的控制位TRl、回零标志TFl和中断源。 通常...转载 2018-05-21 23:14:39 · 2226 阅读 · 0 评论 -
共模与差模
转自:https://wenku.baidu.com/view/9e77a3e265ce050876321366.html 什么是共模干扰和差模干扰 电压电流的变化通过导线传输时有二种形态,我们将此称做"共模"和"差模"。设备的电源线,电话等的通信线,与其它设备或外围设备相互交换的通讯线路,至少有两根导线,这两根导线作为往返线路输送电力或信号。但在这两根导线之外通常还有第三导体,这就是"地线"。干...转载 2018-05-21 23:13:56 · 837 阅读 · 0 评论 -
rand函数
转自:https://blog.csdn.net/chikey/article/details/66970397 https://blog.csdn.net/chikey/article/details/66970397 留作笔记用一、rand()rand()函数用来产生随机数,但是,rand()的内部实现是用线性同余法实现的,是伪随机数,由于周期较长,因此在一定范围内可以看...转载 2018-05-21 23:13:16 · 1076 阅读 · 0 评论 -
lcd显示数字+0x30
lcd中存贮的是ASCII码的形式表示,x(对应数字)+0x30为对应SACLL码表中x(数字)字符对应的值。原创 2018-05-21 23:12:28 · 3744 阅读 · 0 评论 -
P1口的输入输出
51的P1口可输入可输出。那么哪条指令让它作为输入口,怎么样才能让它作为输入口呢?每个口上都有一个锁存器,锁住之前写的值。比如,口上只是接一个上拉电阻,这个口作为输入应该是高电平吧。那你往口里写一个0,口会输出0,这个口就成了低电平了。此时,你读这个IO口,也会是低电平。如果不改写为1,锁存器内就一直是0,也就是输出0 ,程序读这个口上的电平也是0。改写为1后,这个口上的电平才会1,或者说,不会把...转载 2018-05-21 23:11:52 · 3599 阅读 · 0 评论 -
可位寻址与不可位寻址
位寻址指的是这个寄存器中各位值可以直接调用如:可位寻址的IE中有八位EA - ET2 ES ET1 EX1 ET0 EX0可以直接用ET2=1来操作;不可位寻址的TMOD只能用TMOD=0x00来控制其中的各位。不可以未开控制其中的某一位,不可以单独赋值给某一位。转自:http://www.21ic.com/jichuzhishi/mcu/address/2014-04-23/322860.htm...转载 2018-05-21 23:11:18 · 4001 阅读 · 0 评论 -
单片机中的内存、flash、数据他们的概念及区别
内存是片内的512Byte(some else)左右,掉电丢失,如你定义一个变量int a =xxxx;它就是放在内存中的,数据就是你要处理的内容,flash 相当于硬盘有8k左右,准确的来说是相当于普通电脑内存里的代码段。你写的整个程序(比如函数的代码之类的)就是放到flash里面去的。而且一旦烧写进去了就不能在运行时修改。也就是说如果你定义一个code a=120; 那么它就定死在flash里...转载 2018-05-26 19:57:25 · 1188 阅读 · 0 评论 -
学习51单片机中的部分笔记
ACC累加器=AACC.0=E0HACC.0就是ACC的第0位。Acc可以位寻址。累加器ACC是一个8位的存储单元,是用来放数据的。但是,这个存储单元有其特殊的地位,是单片机中一个非常关键的单元,很多运算都要通过ACC来进行。以后在学习指令时,常用A来表示累加器。但有一些地方例外,比如在PUSH指令中,就必须用ACC这样的名字。一般的说法,A代表了累加器中的内容、而ACC代表的是累加器的地址。/*...转载 2018-05-26 22:40:46 · 1076 阅读 · 0 评论 -
STC89C52RC
STC89C52RC是宏晶公司的增强型MCS-51单片机,与Atmel公司的AT89C52相比,有以下优点:支持STC的2线制下载方式,下载程序更方便支持6T模式(在6T模式下,6个时钟周期就是一个机器周期)片内集成了4kB容量的E²PROM带有P4口,具有更多的I/O程序存储器拥有更多的擦写寿命(STC标称可以擦写10万次,Atmel标称可以擦写1000次。不过对于批量生产的成品来说,这个擦写...转载 2018-05-27 19:00:53 · 7724 阅读 · 0 评论