- 博客(34)
- 收藏
- 关注
原创 STM32F103学习笔记(八)- 使用标准库点亮LED
Use Micro LIB具体作用未知,但是有时候不勾选,会出现一些问题。以上的宏在"stm32f10x.h"头文件里判断,选择需要编译的模块。1处是一些宏定义,2处是优化等级,优化等级不能太高,3处是头文件目录。此处在做一些指令,编译前做什么编译后做什么等等。
2023-11-19 16:39:16
342
原创 STM32F103学习笔记(七)- STM32标准库介绍
可以从网上搜索获取可以从ST官网获取:https://www.st.com/zh/embedded-software/stsw-stm32054.html将寄存器的值宏定义uint32_t0xFFFBFFFFuint32_t0x00040000uint32_t0xFFFEFFFFuint32_t0x00010000uint32_t0xFFFFFF07。
2023-11-17 23:12:02
662
原创 STM32F103学习笔记(五)- J-Link和ST-Link的使用
接口介绍RSTSWDIOGNDGNDSWIMSWCLK3.3V3.3V5.0V5.0V使用需求ST-LinkV2要求MDK版本必须大于4.22STLINKV2我们使用SWD接口,不用JTAG。
2023-11-04 23:07:44
5832
原创 STM32F103学习笔记(四)-STM32F103的复位和时钟
时钟节点名称:HSI、HSE、LSI、LSE、PLLCLK、SYSCLK、USBCLK、HCLK、FCLK、PCLK1、PCLK2、ADCCLK、RTCCLK、IWDGCLK。可通过查看RCC_CSR控制状态寄存器中的复位状态标志位来确认复位事件来源。复位后CPU都会被强制到复位向量中去执行程序。系统复位将复位除时钟控制寄存器CSR中的复位标志和备份区域中的寄存器以外的所有寄存器。STM32F支持三种复位形式,分别为系统复位、上电复位和备份区域复位。
2023-10-30 22:59:58
1780
原创 STM32F103学习笔记(三)-STM32F103的存储器、供电
根据最低电源消耗,最快速启动时间和可用的唤醒源的需求,选取一个最佳的折中方案来帮助用户选定一个低功耗模式。在系统复位后, SYSCLK的第4个上升沿, BOOT管脚的值将被锁存。STM32是32位CPU,数据总线是32位的,地址总线也是32位的。对0x22006008地址的写操作和对SRAM中地址0x20000300字节的位2执行读-改-写操作有着相同的效果。Byte),但是其肯定用不完4GB的空间的,所以就有了:逻辑上的地址、实际的地址。启动模式,是研究STM32复位后从哪里去执行程序的问题。
2023-10-29 21:57:26
2888
原创 STM32F103学习笔记(二)-常用的仿真器、调试器、库的简单介绍
HAL 库:(Hardware Abstraction Layer,硬件抽象层),HAL 库是ST提供的较新的库。标准库:(Standard Peripheral Library,标准外设库,又称为 SPL) ,标准库是ST较早推出的库,提供了访问 STM32 外设的底层驱动。标准的JTAG接口是:TMS、 TCLK、TDI、TDO、RST ,分别为模式选择、时钟、数据输入和数据输出线、复位线。串行调试(Serial Wire Debug),是ARM设计的协议,主要针对他们内核的芯片进行程序调试和下载。
2023-10-28 22:11:50
1173
原创 STM32F103学习笔记(一)-概述
增强型, 32位基于ARM核心的带闪存、 USB、 CAN的微控制器、7个定时器、 2个ADC 、 9个通信接口。
2023-10-25 22:20:13
216
原创 51单片机学习笔记(十二) - 红外遥控
随着科技的发展,红外遥控器逐渐被WIFI、蓝牙等所取代。但是并不意味着红外遥控就无用武之地。万物皆有相通之处,学习红外遥控可以有助于后期学习WIFI、蓝牙等通信。本节主要介绍了NEC协议,以及代码实现的过程,内容比较简单。解析数据’0‘和’1‘时,特别注意时间长度;红外发送的时脉冲时,接收到的是低电平,发送的是低电平时接收的是高电平;
2023-09-17 13:08:07
335
原创 51单片机学习笔记(十一) - LCD1602
LCD1602(16x2,显示器显示2排,每排16个字符)。能显示的字符数是32,但是不代表像素数是32,因为一个字符是由多个像素组成的,具体是多少像素我们不用去管,因为LCD1602内置了字库了。带ASCII码字库,不能显示中文。当我们想让LCD1602显示某个ASCII码字符时,只需要将这个字符对应的ASCII码发给LCD1602内部的控制器,控制器就会去查字库得到字模,然后将字模发给内部的驱动器去驱动LCD做显示。//数据命令选择//读写选择//使能信号。
2023-09-01 23:54:20
651
原创 51单片机学习笔记(十) - AD/DA转换
一、基本概念A是指analog、模拟的;D是指digital、数字的。现实世界是模拟的,连续分布的;计算机世界是数字的,离散分布的,是可以被分成有限份的;AD转换就是把一个物理量从模拟的转换成数字的;DA就是将数字量转换成模拟量。二、A/D转换的意义自然界多数是模拟量,而计算机计算只能是数字量,所以为了借助计算机的工具研究计算模拟量,就需要将模拟量转换成计算机能识别的数字量;
2023-08-27 21:27:03
7523
原创 51单片机学习笔记(九) - IIC通信之EEPROM
24C02是电可擦除PROM,采用256×8-bit的组织结构以及两线串行接口。电压可允许低至1.8V,待机电流和工作电流分别位1uA和1mA。24C02具有页写能力,每页为8字节。宽范围的工作电压1.8V~5.5V;2线串行接口,完全兼容I2C总线;I2C 时钟频率为1MHz (5V), 400 kHz (1.8V, 2.5V, 2.7V);硬件数据写保护;擦写寿命:100万次;数据保持时间:100年;1、通过A0、A1、A2的硬件连接来确定芯片的地址IIC通讯详解。
2023-08-24 22:35:51
1064
原创 51单片机学习笔记(八) - 串口通信
1、人之间的通信:说话、写信、信号、手势、眼神、表情等;2、人和物之间的通信:按键、显示器、鼠标、触摸屏、蜂鸣器等;3、计算机和计算机之间的通信:UART、SPI、IIC、CAN、网络等。1、一种特定的通信协议;2、别名:串行通信、串口通信、URAT、SURAT;3、类型:异步、串行、全双工。1、本节介绍了通信的相关概念;2、主要介绍了51单片机串口通信的相关知识和编程方法;3、涉及到了波特率的计算;
2023-08-19 21:44:59
401
原创 51单片机学习笔记(六) -定时器与计数器
1、定时器:是一种SOC的内部外设,相当于单片机的“闹钟”;2、计数器:可以计算(SOC)外部脉冲的个数,定时器就是用计数器来实现的,脉冲个数乘以每个脉冲的时间,就是定时器。寄存器是软件控制硬件的关键1、寄存器:寄存,内容可变,一般按位定义;2、寄存器使用地址访问,编程上和内存相似;1、本节介绍了定时器和计数器的概念与使用方法;2、重新使用了中断;3、要特别注意计数器TH0、TL0重载时的值。
2023-08-06 23:11:11
585
原创 51单片机学习笔记(五) -独立按键&&外部中断
1、本节介绍了按键的检测方式,以及消抖的原理和方法;2、本节介绍了中断的使用和原理,并使用中断进行按键的检测;3、中断函数时不需要声明的,但是得有关键字interrupt关键字。
2023-07-30 16:06:06
7018
4
原创 51单片机学习笔记(四) -LED点阵
独立的LED通过横竖排列,形成一个矩阵,通过点亮其中的某几颗LED,来组合显示字符、图形等等,其实底层原理还是点亮LED;1、本节使用了关键字sbit,来对单独一个I/O操作;2、使用74HC595的方法;3、用I/O模拟时序;4、LED点阵的原理及操作。
2023-07-23 21:30:06
562
原创 51单片机学习笔记(三) -数码管操作
数码管,也称作辉光管,是一种可以显示数字和其他信息的电子设备。使用八个一 型的LED排列成8型,用来显示一些数字和近似字母。使用方式就是让对应的LED亮灭。分为1、不同的数码管数字编码(段码)表完全可能不同;2、同一个数码管接线方式不同编码表可能完全不同;3、硬件确定后可通过调试的方法来实验确定编码表;4、数码管的操作和LED操作基本原理类似。
2023-07-22 17:54:56
1408
原创 51单片机学习笔记(二) - LED操作
1、51单片机I/O操作;2、LED点亮的条件;3、C语言的知识点:while循环、for循环、移位运算、按位取反运算。
2023-07-17 20:45:36
810
1
原创 51单片机学习笔记(一)
(1) Read only memory只读存储器,意思是只能读不能写。意思是程序在运行时,只能通过程序本身的操作去读,而不能写。(2) 单片机中用来存储用户程序的期间就是ROM,烧录的过程就是在写ROM,但是程序在运行过程中是不能去修改ROM的内容的。所以只读只是针对程序本身来说的。烧录程序一般需要通过烧录器来完成。(3) 就像一个仓库(storage),用来存储东西一样。ROM是用来存储程序代码的。(4) ROM有点像外存的概念,但是并不完全相等。
2023-06-25 22:03:13
300
原创 使用gitee代码托管
使用gitee代码托管gitee网址https://gitee.com/将代码复制到提前克隆的仓库文件夹中;编写.gitignore文件,把不希望提交到git仓库的文件添加进去,可以直接写文件名也可以写正则表达式;Git status指令,查看当前文件状态,根据文件状态进行添加;由于编辑了.gitignore文件,所以先将该文件上传,执行命令git add .gitignore,让不想上传的文件生效;git status查看状态,绿色的表示已经提交;执行git a
2023-06-17 13:28:56
104
转载 精密全波整流电路
当输入为正电压时,D1导通D2截止,这时运放的作用就是将R3的下端的电位钳位在0V,整个电路可以简化为三个电阻的电阻网络。输入电阻Rin=R1+(R2+Rz)||R3>R1+R2||R3,Rz为负载内阻。因此,功能为全波整流,也就是绝对值运算。当输入为负电压时,D1截止,D2导通,就是个放大倍数为-0.5的反向放大电路。利用单运放构成的精密全波整流电路主要有两种,一种称之为T型,另一种称为△型。原理与T型差不多,输入为正电压时,D1导通,D2截止。......
2022-07-17 17:27:01
5578
1
转载 PCB中solder层和paste层的区别
PCB个层的定义:阻焊层:solder mask,是指板子上要上绿油的部分;因为它是负片输出,所以实际上有solder mask的部分实际效果并不上绿油,而是镀锡,呈银白色!助焊层:paste mask,是机器贴片时要用的,是对应所有贴片元件的焊盘的,大小与toplayer/bottomlayer层一样,是用来开钢网漏锡用的。要点:两个层都是上锡焊接用的,并不是指一个上锡,一个上绿油;那么有没有一个层是指上绿油的层,只要某个区域上有该层,就表示这区域是上绝缘绿油的呢?暂时我还没遇见有这样一个层!我们
2021-08-24 14:06:55
6574
转载 更新g++或gcc的方法
更新g++或gcc的方法1.安装software-properties-common:sudo apt-get -y install software-properties-common2. 添加PPA到库并更新(会提示按回车继续执行,此时按回车即可):sudo add-apt-repository ppa:ubuntu-toolchain-r/test3. 更新软件信息:sudo apt-get update4. 安装g++:sudo apt-get -y install g+±85.
2021-05-07 13:20:03
415
转载 H.264(NAL简介与I帧判断)
H.264(NAL简介与I帧判断)1、NAL全称Network Abstract Layer, 即网络抽象层。在H.264/AVC视频编码标准中,整个系统框架被分为了两个层面:视频编码层面(VCL)和网络抽象层面(NAL)。其中,前者负责有效表示视频数据的内容,而后者则负责格式化数据并提供头信息,以保证数据适合各种信道和存储介质上的传输。因此我们平时的每帧数据就是一个NAL单元(SPS、PPS、SEI除外)。在实际的H264数据帧中,往往帧前面带有00 00 00 01 或 00 00 01分隔符,一般
2021-01-27 21:17:56
315
原创 wpa_supplicant移植
wpa_supplicant移植 下载wpa_supplicant,我这里使用的是wpa_supplicant-2.9.tar.gz,下载地址是http://w1.fi/wpa_supplicant/。下载完毕后,放到Linux目录下解压。tar xvfz wpa_supplicant-2.5.tar.gz。 进入目录wpa_supplicant-2.9/wpa_supplicant下修改Makefile,添加交叉编译工具链 C=arm-linux-gcc ,这里我的环境变量已经导出,故可以
2021-01-17 15:25:22
376
原创 ORTP库的移植
错误2libtoolizeerrorPleaseinstallGNUM4,or‘exportM4=/path/to/gnu/m4’.2、执行./configure--prefix=/tmp/ortp--host=arm-hisiv300-linux。1、下载ortp源码https//github.com/dmonakhov/ortp。–prefix=/tmp/ortp表示安装到/tmp/ortp目录下。到/tmp/ortp目录下查看移植好的库和头文件。...
2021-01-02 23:29:03
1107
3
转载 select函数
select函数select()函数允许进程指示内核等待多个事件中的任何一个发生,并只在有一个或多个事件发生或经历一段指定时间后才唤醒它。#include <sys/select.h>#include <sys/time.h>// 返回值:若有就绪描述符,则返回就绪描述符数目;若超时则返回0,出错返回-1int select(int maxfdp1, fd_set *readset, fd_set *writeset, fd_set *exceptset, const s
2021-01-02 21:05:39
98
原创 运放的学习
最近用到了运放,以前一直以为运放只是用来放大信号的,从未关注过一些运放的参数以及型号,结果接入电力的时候出现了一些问题。现在记录一下了解到的东西。运放分为电压反馈型(VFB)和电流反馈型(CFB),VFB类型的,带宽和增益的乘积是一个固定值,所以随着增益的增大,带宽就会减小,随意使用VFB的时候一定要注意放大倍数和增益的关系。CFB类型的带宽除了与内部结构有关系外,还与反馈电阻有关系,一般来说,反馈电阻越大带宽越小,一般在手册里会有推荐的反馈电阻,如果反馈电阻不变,带宽是不会随着放大倍数的增加而改变。...
2020-09-24 10:19:16
132
原创 Linux 宏定义之 offsetof 与 container_of
Linux 宏定义之 offsetof 与 container_of#ifndef offsetof#define offsetof(TYPE, MEMBER) ((size_t)&((TYPE*)0)->MEMBER)#endif#ifndef container_of#define container_of(ptr, type, member) ({ const typeof(((type*)0)->member)* __mptr = (pt
2020-06-02 18:20:24
186
转载 S5PV210启动中的CopySDMMCtoMem宏详解
S5PV210启动中的CopySDMMCtoMem宏详解转自:http://www.mamicode.com/info-detail-2616174.html一、分析C代码:#define CopySDMMCtoMem(z,a,b,c,e)(((bool()(int, unsigned int, unsigned short, unsigned int, bool))(((unsigned ...
2019-07-11 23:27:36
361
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人