自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 I2C EEPROM FM24LC64 AT24C64D

(1)

2024-11-04 13:25:41 124

原创 模块外设为什么需要先配置开启时钟?

时钟的本质是为了同步寄存器的数据,因为寄存器的读写数据时,其实是通过逻辑门电路进行控制的。2、先关闭disable外设模块,设置完参数后再enable开启模块,这是静态设置寄存器。防止动态设置寄存器参数时,会导致模块工作异常,如果是通信模块则可避免在切换波特率时总线上会产生信号的毛刺噪声等干扰。(2)模块设置参数之前,为什么需要先关闭disable外设模块,设置完参数后再enable开启模块?1、这是和芯片设计时,使用模块的IP核有关,在进行集成电路设计时,需要遵循模块IP核的设计规范。

2024-10-30 13:28:44 218

原创 指令集(架构)、IP核、芯片的理解

但是和常见的ARM 32bit(Thumb 16bit)、RISC-V等指令集是不兼容的,不同的指令集支持的二进制机器指令编码也不同,不同指令集的指令执行速度也不同;不同架构(ARM-V8)下经过对指令集的裁剪,可以裁剪出支持不同指令集数量的处理器内核(如cortex-M,cortex-A系列等),芯片设计公司根据不同IP核的寄存器进行针对性的功能裁剪、不同IP核之间进行总线连接等集成电路EDA设计,即完成芯片的设计;(2)不同架构(如ARM,RISC-V等)下支持的指令集不同,

2024-10-22 14:33:49 189

原创 TCP/IP Socket用于测试免费使用的服务器端

终端设备作为Client客户端,需要连接下面测试服务器的 [ IP : Port ]

2024-09-18 20:56:38 607 1

原创 位域-结构体字节内部bit高低排列顺序

最先定义的bit位分到了最低位的bit上, 把最后定义的bit放到了最高位的bit上.* 位域: 位域成员的位置是从低位向高位排列的, bit: 低 -> 高,

2024-09-18 20:53:45 147

原创 Samba 总是需要输入网络凭证

用户名是 cat /etc/samba/smb.conf,查看 valid users = mxw 为用户名。而不是其他账号名或者用户名;密码是 需要记住安装samba服务器时,自己设置的password;

2024-04-03 15:21:01 631

原创 Xshell Mobaxterm等终端工具连接不上服务器,显示 SSH服务器拒绝密码。请再试一次。解决办法

(1)需要查看配置SSH密钥时,输入的password密码和当前users_name。而是mxw@ubuntu中的user_name【mxw】密码需要自己去找一下配置SSH密钥时输入的password;注意次user_name不是。所以需要将fl改为:mxw。Account帐户名。

2024-04-03 15:11:38 1348

原创 线性表 - 链表

线性表 - 链表将线性表L=(a0,a1,……,an-1)中各元素分布在存储器的不同存储块,称为结点,通过地址或指针建立它们之间的联系,所得到的存储结构为链表结构/*================================================================ * 文件名称:linklist.c * 创 建 者: * 创建日期: * 描 述: * ===========================================

2022-04-17 12:52:40 571

原创 线性表 - 顺序表

数据结构 - 线性表程序 = 数据结构 + 算法【1】数据结构数据结构 是数据的逻辑结构、存储结构及其运算逻辑结构:表示的是数据的抽象关系,抽象成人类能够描述出来的一种思想。 线性(Linear)结构:有唯一的前趋和唯一的后继,头没有前趋,尾没有后继(、队列、链表) 树形(Tree)结构:有唯一的前趋,后继可以是0个、1个、多个,根节点没有前趋 图形(Graph)结构:关系比较复杂,前趋和后继的个数不固定存储结构:数据在在内存空间中的分配和占用结构。 顺序存储:数据在内存中是连续存储的

2022-04-17 10:34:59 616 1

原创 Vscode 跳转失败/F12失效

Vscode 跳转失败/F12失效参考文章:vscode 未找到 任何定义定义_努力是明天快乐的源泉-CSDN博客_vscode 未找到任何定义需要下载一个cpptools-win32.vsix 工具包,在vscode扩展工具中安装,重启vscode即可正常跳转...

2022-02-17 14:29:50 5351

原创 kfifo在MCU中的使用

kfifo在MCU中的使用

2021-08-11 19:32:27 240

原创 看门狗定时器

看门狗定时器(WTD)WTD概述一般很多嵌入式设备工作在无人环境下,不能实时监测系统工作的状态,因此需要用看门狗定时器来自动检测重启设备。看门狗定时器是系统内部的定时器。看门狗定时器用于检测系统设备在受到噪声和系统误差等故障干扰造成设备死机,可以通过看门狗定时器产生一个复位信号 或 请求中断服务,自动恢复让系统重新运行。WDT与PWM定时器的不同之处在于WDT产生复位信号。WTD实现过程1)PCLK经过一级分频器和二级选择器后产生看门狗时钟后,通过计数逻辑模块WTCNT,开始计数。2)

2021-05-06 14:13:13 5245 7

转载 STM32启动文件详解:Start.S

STM32启动文件详解:Start.S链接: link.

2021-04-29 18:27:52 1485

原创 Ctrl 键失效或者 Ctrl + D键失效,不灵

(1)Windows + R(2)输入:CHKDSK D:f (注意中间有空格)

2021-03-08 17:15:05 7251 1

原创 使用J-TAG烧录程序,未重新上电时,低功耗时MCU会重启

需要关闭:SysTickSysTick->Ctrl = 0;

2021-01-19 15:18:11 494

原创 I2C常见问题总结

I2C常见问题总结(1)I2C检查错误工具:逻辑分析仪(2)测量一下I2C是否有上拉电阻4.7kΩ(3)SDA和SCL当时用硬件模拟时,SCL 要配置为开漏输出mode;SDA需要配置为输入模式,注意不可配置为PP推挽模式,因为有时候会出现SCL和SDA的电压拉不到0V伏的情况,会导致输出的数据出错(4)和硬件工程师确认SCL和SDA两条线,有没有因为项目优化硬件导致两条线移位置或者交换了GPIO口,导致从机收到错误的 数据(1)I2C检查错误工具:逻辑分析仪有时候,我们用示波器测量I2C的SCL和S

2021-01-12 20:06:35 5572 1

原创 VSCode启动终端报错:终端进程启动失败:shell可执行文件“C:Windowssystem32and.exe;路径不存在

win + R

2020-11-25 11:33:42 26468 7

原创 I2C从机 Slave mode

I2C从机代码代码(1)本代码需要Keil编译时,外加HAL库中的两个库文件:#include “stm32f1xx_ll_i2c.h” 和 stm32f1xx_ll_i2c.c两个文件#include "stm32f1xx_ll_i2c.h"// I2C 中断事件处理static void stm32_i2c_slave_event(void* pi2c){ i2c_dev_t* pdev = (i2c_dev_t*)pi2c; I2C_TypeDef* i2cx = pd

2020-10-26 11:05:07 2158 4

原创 通讯协议 - USART串口通信协议

USART串口通信协议链接: link.链接: link.

2020-08-18 16:53:26 669 1

原创 STM32配置printf重定向

(一)先配置:时钟,外部晶振,异常向量表是否offset(二)配置串口打印调试:重定向串口自动打印(1)HAL库:加入以下程序段#include "stdio.h"#ifdef __GNUC__ #define PUTCHAR_PROTOTYPE int __io_putchar(int ch)#else #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)#endifPUTCHAR_PROTOTYPE{ HAL_UART_T

2020-08-12 20:08:04 304

原创 (二)CAN通信协议代码-升级版

CAN升级版代码

2020-07-01 19:48:03 1546

原创 (二)CAN通信协议代码-基础版

STM32Fxxx CAN通信代码

2020-07-01 19:46:46 8657 2

原创 ICM20602六轴传感器-IIC通信模式

ICM20602六轴传感器ICM20602 通过IIC协议与MCU通信ICM20602 初始化配置ICM20602 相关配置函数ICM20602 内部寄存器注意事项(一)ICM20602 从地址(二)ICM20602 器件id(0x12)ICM20602 通过IIC协议与MCU通信ICM-20602 是 日本TDKTDK公司生产的六轴传感器。ICM-20602的DataSheet可在其官网下载: ICM20602 或者参考链接: 芯片翻译之ICM20602.IIC软件模拟时序,请参考链接: IIC软

2020-06-07 13:44:04 12193 5

原创 STM32 - CAN问题总结

CAN协议CAN协议 简介CAN协议 特点(1)多主控制(2)系统的柔软性(3)通信速度较快,通信距离远(4)具有错误检测、错误通知和错误恢复功能(5)故障封闭功能(6)连接节点多CAN协议 内容(1)电平特性(2)5种-帧类型STM32xxx CAN控制器(1)STM32F4 的 bxCAN 的主要特点有:(2)过滤器作用 详细分析CAN协议 简介CAN (Controller Area Network )是 ISO 国际标准化的串行半双工异步(位时序同步)通信协议。(1)由于系统之间通信所用的

2020-05-24 15:48:05 7053

原创 (四)STM32F407总线架构、时钟系统配置相关的函数,IO 引脚复用器和映射,NVIC中断管理,寄存器地址映射

基础知识一、单片机下C语法的使用技巧(1)位操作(2)define 宏定义(3)ifdef 条件编译(4)extern 引用外部变量申明(5)typedef 类型别名(6)结构体 struct二、STM32F407总线架构三、STM32F407时钟系统(1) STM32F4 时钟树概述(2)STM32F4 时钟初始化配置(3)STM32F4 时钟使能和配置(1)时钟使能函数(2)时钟源配置选择和分...

2020-05-04 17:23:50 11648

原创 (三)串口调试工具和串口下载工具的区别:ST-LINK、J-LINK、U-LINK;SWD、JTAG、SWIM

串口下载串口ISPiap串口串行接口简称串口,也称串行通信接口或串行通讯接口(通常指COM接口),是采用串行通信方式的扩展接口。串行接口 (Serial Interface)是指数据一位一位地顺序传送。其特点是通信线路简单,只要一对传输线就可以实现双向通信,从而大大降低了成本,特别适用于远距离通信,但传送速度较慢。串行接口划分标准1)同步串行接口(英文:SynchronousSerial...

2020-05-02 14:57:17 24443 2

原创 (二):定时器和计数器的区别;时钟和晶振的区别、RTC实时时钟;MPU、MCU、SOC区别;电源符号:VCC、VDD、VSS、VEE、VPP、VBAT

硬件的区别定时器和计数器的区别时钟和晶振的区别定时器和计数器的区别定时器实际上也是计数器,工作在计数方式下,只是计数的是固定周期的脉冲,由于脉冲周期固定,由计数值可以计算时间,有定时功能。定时和计数只是触发来源不同(时钟信号和外部脉冲)其他方面是一样的单片机里的寄存器可以看成一个个电子开关,用来切换不同的功能、信号时钟和晶振的区别(1)时钟发生器时钟发生器是用来产生时钟信号的器件。时...

2020-04-28 19:01:31 16962 1

原创 (一)固件库 stm32f10x.h 详细分析、同程序更换芯片时需要修改的地方;创建MDK5工程模板

STM32F4-固件库开发(1)固件库(2)CMSIS 标准NVIC(3)STM32F4 官方库包介绍stm32f407是学习正点原子探索者开发板时所做的知识总结(1)固件库固件库就是函数的集合,固件库函数的作用是向下负责与寄存器直接打交道,向上提供用户函数调用的接口(API)。对于 STM32 这种级别的 MCU,数百个寄存器记起来太难。于是 ST(意法半导体)推出了官方固件库,固件库将这...

2020-04-26 10:57:26 4980

原创 初探C++标准库:移位左移、右移操作符的重载,C++标准库

C++标准库移位左移、右移操作符的重载C++标准库移位左移、右移操作符的重载怎么把变量/常量通过移位操作符,移到一个类的对象中去呢?#include <stdio.h>const char endl = '\n';class Console{public: Console& operator << (int i) { ...

2020-04-25 17:14:12 414

原创 C++类中的函数重载:操作符重载

类中的函数重载类中的函数重载类中的函数重载(1)函数重载(2)类中的函数分类:构造函数普通(const)成员函数static 静态成员函数那么类中的这些函数之间可以重载吗?是可以的,但是类中的函数不能和全局函数重载,因为作用域不同。#include <stdio.h>class Test{ int i;public: Test() ...

2020-04-22 16:54:55 382

原创 C++:friend-友元,类和函数间、类和类间的友元关系

友元友元类友元函数类之间的友元友元类友元函数#include <stdio.h>#include <math.h>class Point{ double x; double y;public: Point(double x, double y) { this->x = x;//类内部隐藏的指向这个类的...

2020-04-22 15:37:17 424

原创 C++:二阶构造模式(方法):半成品对象,二阶构造

@TOC定时暗书

2020-04-22 09:45:44 177

原创 C++:析构函数,临时对象,析构函数的顺序,const 对象和成员函数的关系,静态成员变量和函数

析构函数析构函数析构函数C++中,new申请堆内存空间

2020-04-20 15:07:28 588

原创 C++:类对象的初始化,构造函数:无参、拷贝构造函数,类中const 成员的初始化,对象的构造顺序

类的对象类对象的初始化构造函数类对象的初始化#include <stdio.h>class Test{private: int i; int j;public: int getI() { return i; } int getJ() { return j; } vo...

2020-04-19 21:33:06 1099

原创 C++:类和对象,类:继承和组合,类的封装:private/public,类定义:class,类的声明和实现

类和对象面向对象类之间的关系:继承 / 组合类的表示类的封装类成员的作用域类的真正形态面向对象日常生活中,我们习惯对事物进行分类,那么怎么把分类的思想引入程序设计呢?于是C++引入面向对象的编程:类和对象注意以下问题:(1)类一定存在实际的对象吗?不一定,eg:恐龙有很多分类,人的老祖宗对猿人分类:智人、直立人等,这些在现实生活中已经找不到活体对象,因此不一定是实际的对象。...

2020-04-19 16:29:34 612

原创 C++-(四)C++中的经典问题分析:const,引用和指针的关系

C++中的经典问题分析(1)const(1)const问题:const修饰的变量(标识符)什么时候是只读变量,什么时候是真正意义上的常量?(1)const + 标识符C++编译器对const修饰的标识符的判别准则:用数值常量(字面量)直接初始化const 变量,则数值常量(字面量)和const 变量都直接放入符号表.eg:const int a = 1;表示a此时为一个真正意义上的...

2020-04-18 21:52:51 182

原创 C++-(三)动态内存分配:new / delete,名字空间:namespace,新型的类型转换:xxx_cast

C++中的新成员(一)C++中的动态内存分配(1)动态内存分配:new / delete(2)malloc()和new 申请堆内存空间的区别(二)命令空间/名字空间(1)名字空间的定义:namespace(2)名字空间的使用:using ::(三)新型的类型转换(1)C语言中强制类型转换的问题(2)C++强制类型转换的4种类型(一)C++中的动态内存分配对比C和C++中的动态内存分配在C语...

2020-04-18 16:10:15 258

原创 C++-(二)C++和C的相互调用

C++和C的相互调用C++对C代码的调用C++对C代码的调用C++编译器和C编译器的编译方式是不同的,同时C++编译器能够兼容C语言的编译方式,但是C++编译器会优先使用C++的编译方式。那么怎么使C++编译器可以指定C编译方式编译呢?extern关键字:能强制让C++编译器按照C语言的编译方式进行编译{C代码块}。C++编译器编译时,指定{}内的内容用C方式编译extern "C...

2020-04-17 17:49:01 207

原创 C++-(一)C++对C语法的扩充:引用(变量),inline内联,函数参数的默认值,函数重载

C++对C语法的扩充C++对C的扩充(一)引用-引用变量(reference)(二)inline内联关键字:扩充(三)函数参数的默认值(四)函数重载:函数同名,参数个数和类型不同C++对C的扩充(一)引用-引用变量(reference)(1)引用是一个新的变量类型,作用:为一个变量起一个新的别名;相当于给这块空间取了一个名字叫做 a ,后来又给他取了个小名叫做 b。变量b就叫做变量a的引用...

2020-04-17 12:31:55 408

原创 C++-(一)面向对象简介,C++对比C的语法差异

这里写目录标题面向对象程序设计 OOPC++ 程序基本结构C++ 源码文件扩展名和头文件命令规则C++ 程序编译流程编译时,C和C++的差异/扩充(1)语法:差异(2)常变量:const 差异(3)强制类型转换:差异(4)变量引用(reference):C++对C语法的扩充(5)inline内联关键字:扩充C语言是面向过程的编程思想,面向过程的程序设计(Procedure-Oriented Pr...

2020-04-15 16:35:46 529

空空如也

空空如也

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

TA关注的人

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