自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

redeemer奇

致力于技术分享:硬件设计;软件编程;微处理器;操作系统;项目经验!

  • 博客(34)
  • 资源 (3)
  • 收藏
  • 关注

原创 SecOC基础原理详解1

SecOC说通俗一点就是在原始CAN帧上面加入一些标识,在解析的时候先识别标识,再解析数据,否则认为数据是无效的。

2023-08-09 15:33:44 2787 3

原创 S32K144学习笔记6 - 时钟配置

1、修改时钟组件2、配置后的时钟参数

2022-03-02 09:43:01 1811

原创 S32K144开发笔记5 - SPI驱动MCP2515

1、接线图PTB13 — INT 接收数据中断引脚PTB14 — CLK 时钟PTB15 — MISO 接收PTB16 — MOSI 发送PTB17 — CSN 片选2、软件SPI2.1、GPIO口配置鼠标放在如下位置右击选择Pin Functional Properities,进入引脚属性配置PTB13引脚配置如下:PTB14引脚配置如下:PTB15引脚配置如下:PTB16引脚配置如下:PTB17引脚配置如下:2.2、参考代码

2022-03-02 09:42:12 3184

原创 S32K144开发笔记4 - CAN配置

1、CAN引脚配置点击引脚配置选择对应的引脚2、添加CAN组件点击Components点击一下右侧的can_pal,左侧会有一个CAN组件。需要几个CAN就加入几个CAN组件。这里我使用三个CAN,加入了三个CAN组件注意:有时候建立好工程,在右侧的库中会找不到can_pal。此时关闭一下软件,重新打开即可!3、配置CAN组件信息...

2022-03-02 09:41:15 5620 3

原创 S32K144学习笔记3 - 定时器

定时器中断配置FTM周期计算公式:重装载值 / (主频/分频) 单位秒例如设置100ms的终端中周期:37500(重装载值) / (48000000hz(主频)/ 128(分频)) = 1/10秒 = 100ms

2022-03-02 09:39:26 2271

原创 S32K144学习笔记2 - 串口配置

1、串口引脚配置2、添加串口组件添加三个串口组件配置串口信息

2022-03-02 09:38:36 2315 1

原创 S32K144开发笔记1 - 新建工程

1、新建工程选择file --> new --> S32DS Application Project下一步选择Jlink调试新建工程完毕!2、导入已有的工程file --> Import

2022-03-02 09:37:18 688

原创 word中插入代码段

1、在word中增加代码段格式1.2、设置字体1.3、设置段落1.4、设置边框至此,代码段格式设置完成2、使用Notepad++复制代码2.1、选择代码语言2.2、选择插件选择“插件 -> NppExport -> Copy HTML to clipboard”至此,Notepad++中的代码复制完成。3、在word中复制代码在word中输入“Ctrl+V“即可复制代码,再选择代码段即可。...

2021-06-02 10:12:41 12225 1

原创 win10同时使用有线和无线网络,手动设置网络优先级的方法

1、遇到的问题描述最近使用VMWare虚拟机做嵌入式开发,虚拟机设置成了wifi上网,有线连接开发板的模式。即电脑wifi上网,开发板和电脑直连。如下图所示在使用wimdows下的浏览器浏览网页的时候,会出现卡顿现象。如果把网线拔掉,再浏览网页,就不会有卡顿。因此怀疑win10下有线和wifi同时连接的情况下,上网的时候会优先使用网线。因为我有线连接的开发板,没有网。然后才使用wifi上网,因此造成一点卡顿。2、解决方法1、点击进入“打开网络和共享中心”;2、点击左上角的“更改适配器设置”

2021-03-11 13:05:43 14196 2

原创 FMCW毫米波雷达原理一

1、简介毫米波雷达的优点是角分辨率高、频带宽因而有利于采用脉冲压缩技术、多普勒颇移大和系统的体积小。目前笔者接触到的有24G毫米波雷达和77G毫米波雷达。24G毫米波雷达主要应用在交通领域的测距和车辆测速,在其他领域也有使用24G毫米波雷达。77G毫米波雷达主要应用在无人驾驶,汽车周围的目标检测等领域。在首次接触雷达时,一头雾水。搞不清一个chirp的时域图和频域图的关系、中频信号以及其他名词的基本概念。在TI培训官网上看到一些毫米波雷达原理的视频才豁然开朗。TI培训官网毫米波传感介绍本文主要是通

2020-12-25 14:42:10 6994 3

原创 Sallen-Key滤波器的详细介绍

本文来自知乎:https://zhuanlan.zhihu.com/p/386026021、什么是Sallen-Key滤波器Sallen-key是设计有源滤波器设计的一种拓扑结构,VCVS(Voltage-controlled voltage-source)滤波器的变种,由麻省理工学院林肯实验室的R. P. Sallen and E. L. Key 在1955所提出。Sallen-key拓扑的特点高输入阻抗增益容易被配置运放被配置为电压跟随(Voltage Follower)模式这是Sa

2020-10-26 09:04:38 19602 6

原创 按键开关电路方案设计

最近做个基于STM32脑波检测的项目,甲方爸爸要求使用按键进行开关机。在网上查了一些资料,找到了很多案例分享,在此进行总结。主要分为以下两部分:单片机控制按键开关机电路独立按键开关机电路1、单片机控制按键开关机电路1.1、简约版图中Ctr和Key接单片机管脚,作用如下:Ctr作为开关控制用Key作为按键检测用操作流程:开启:按下按键,Q1导通,单片机上电,控制Ctr为低电平,保持Q1导通。关机:再按下按键,单片机控制Ctr为高电平,此时松开按键Q1截至,单片机停电。如图:

2020-10-19 13:23:43 10389 2

原创 深入浅出的理解傅里叶变换

在中国光学期刊网看到此片文章后大呼过瘾!本文转载自:http://www.opticsjournal.net/Mobile/postdetails/PT160728000122iOlRn?code=3&from=singlemessage&isappinstalled=0非常感谢作者对傅里叶变换的分享,后悔没能在大学期间看到此篇文章,不然何愁不理解《信号与系统》和《数字信号处理》。在此仅将我看到的好文章进行分享学习,不涉及商业用途,如果涉及到侵权,请作者与我联系!非常感谢。下面进入正

2020-10-11 21:34:04 2881 2

原创 经典文章

在这里我为大家整理了原来的文章,方便大家浏览!-----更新于2020-09-23STM32学习笔记【STM32学习笔记】技巧1 -更换外部8M晶振的频率如何修改程序?【STM32学习笔记】技巧2 - STM32的复位类型及区别STM32的串口USART由BOOT跳转到APP后不能正常使用的解决方案C语言学习笔记【C语言学习笔记】精讲篇1 - 位操作符的基本概念【C语言学习笔记】精讲篇2 - 位操作符在嵌入式中的应用【C语言学习笔记】精讲篇3 - 深入浅出的理解指针数据结构【数据结构和

2020-10-09 09:16:37 128

原创 STM32的内存分配

使用keil编写代码,局部变量和全局变量分别存放在什么地方?stm321、局部变量和全局变量1.1、局部变量在一个函数内部定义的变量是内部变量,它只在本函数范围内有效,也就是说只有在本函数内才能使用它们,在此函数以外是不能使用这些变量的,这称为局部变量。使用局部变量注意以下问题:不同函数中可以使用相同名字的变量,它们代表不同的对象,互不干扰。形式参数也是局部变量。局部变量的作用域在函数内部。1.2、全局变量在函数内部定义的变量是局部变量,而在函数之外定义的变量称为外部变量,也就是全局变

2020-10-09 08:58:42 1078

原创 基于DS18B20的多点测温方案详解

1、DS18B20多点测温方案概述DS18B20 单线数字温度传感器,多个 DS18B20 可以并联在惟一的单线上,实现多点测温。具体方案主要是以下步骤:写一个获取DS18B20的64位序列号的keil工程,获取需要连接的DS18B20器件的序列号。uint8_t rom[8];void read_rom(void){ uint8_t index; ds18b20_init(); ds18b20_write_byte(0x33); for (index = 0;index &l

2020-09-29 09:36:23 8436 2

原创 驱动miniPCIE网络模块EC20硬件电路详解

1、概述EC20 R2.1 Mini PCIe-C 模块是 PCI Express Mini Card 1.2 标准接口 LTE 模块。本文章主要讲解了如何驱动EC20 R2.1 Mini PCIe-C 模块的硬件电路设计,主要包含有:电源设计通讯接口SIM卡的防护1.1、EC20 R2.1 Mini PCIe-C 模块引脚分配1.2、EC20 R2.1 Mini PCIe-C 模块引脚描述引脚号miniPCIE引脚名模块引脚名I/O功能描述备注1WAKE

2020-09-27 14:24:19 13116 2

原创 嵌入式C语言经典面试题

本文主要参考韦东山老师的资料:https://blog.csdn.net/thisway_diy/article/details/802553731 . 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)答: #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL主要考察以下几点:#define 语法的基本知识(例如:不能以分号结束,括号的使用,等等)懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中有

2020-09-17 17:12:50 1034 1

原创 文件系统FATFS学习笔记二

本章主要讲解FatFs文件系统在STM32上的移植。FatFs文件系统的移植非常简单!!!如果需要了解FatFs文件系统一些基础知识的,请参考我的另一篇文章:文件系统FATFS学习笔记一1、移植前的准备本章适用STM32所有系列的芯片移植。以本章为例需要准备以下东西:搭建一个点亮LED灯和串口正常打印的工程。在工程中添加外部FLASH芯片W25QXX系列芯片的驱动,可正常读写。本章使用的是正点原子的W25QXX芯片的驱动。FatFs源文件。一个STM32系列的开发板。2、移植过程2.

2020-09-17 16:30:08 1140 2

原创 文件系统FATFS学习笔记一

在不使用文件系统的时候,我们操作SPI Flash 芯片。一般需要两个函数:读函数和写函数。例如:需要记录:欢迎关注redeemer奇。首先把这些文字转化成 ASCII 码,存储在数组中,然后调用 SPI_FLASH_BufferWrite 函数,把数组内容写入到 SPI Flash 芯片的指定地址上,在需要的时候从该地址把数据读取出来,再对读出来的数据以 ASCII 码的格式进行解读。但是,这样直接存储数据会带来极大的不便,如难以记录有效数据的位置,难以确定存储介质的剩余空间,以及应以何种格式来解读

2020-09-17 15:29:04 999

原创 【C语言学习笔记】精讲篇3 - 深入浅出的理解指针

1、指针到底是什么?1.1、指针变量和普通变量的区别指针的实质就是个变量,它跟普通变量没有任何本质区别。指针完整的名字应该叫指针变量,简称为指针。但是指针存放的是另外一个变量的地址,而不是用来随意存一些int类型的数。 int a; // 定义了int型变量,名字叫a int *p; // 定义了一个指针变量,名字叫p,p指向一个int型变量1.2、为什么需要指针?(1)指针的出现是为了实现间接访问。在汇编中都有间接访问,其实就是CPU的寻址方式中的间接寻址。(2)间接访问(CP

2020-09-10 14:24:42 216

原创 嵌入式C语言编码规范

本规范制定的主要目的就是为了提高嵌入式应用程序的稳定性和可维护性,引导软件开发人员编写出简洁、可维护、可靠、可移植的代码。

2020-09-09 15:35:16 2015

原创 【C语言学习笔记】精讲篇2 - 位操作符在嵌入式中的应用

在STM32中操作寄存器,一般都是向这些内部外设的寄存器写入一些特定的值来操控这个内部外设,进而操控硬件动作。即:读写寄存器就是操控硬件。寄存器的特点是按位进行规划和使用。但是寄存器的读写却是整体32位一起进行的。也就是说你只想修改bit5~bit7是不行的,必须整体32bit全部写入。因此,寄存器操作要求就是:在设定特定位时不能影响其他位。关于位操作的基本概念可以参考我之前的一篇文章:【C语言学习笔记】精讲篇1 - 位操作符的基本概念1、位与、位或、位异或在操作寄存器时的特殊作用如何做到在设定

2020-09-07 13:33:41 267

原创 【STM32学习笔记】技巧2 - STM32的复位类型及区别

最近在项目的时候需要判别STM32的复位类型,网上这部分资料也有许多大神进行总结。但是感觉不是特别深入,因此,小编参考参考了STM32的参考手册进行详细总结了一下。1、STM32的三种复位类型分别为系统复位、电源复位和备份域复位。每一种型号的STM32都包含有这三种复位类型!1.1、系统复位除了时钟控制寄存器 CSR 中的复位标志和备份域中的寄存器外,系统复位会将其它全部寄存器都复位为复位值,只要发生以下事件之一,就会产生系统复位:NRST 引脚低电平(外部复位)窗口看门狗计数结束( WWD

2020-09-07 11:12:26 5164

原创 STM32的串口由BOOT跳转到APP后不能正常使用的解决方案

1、STM32的串口由BOOT跳转到APP后不能正常使用的问题描述最近小编在公司的STM32项目中需要用到RS485和WIFI,全部都是跟串口打交道。在测试的过程中发现:BOOT程序单独运行正常,APP程序单独运行正常,但是,只要程序在运行IAP功能的时候,即程序由BOOT跳转到APP后,APP代码中STM32的GPIO口可以正常运行,但是串口会莫名其妙卡死,经过debug后发现,只要串口发送数据,就会卡死在while(USART_GetFlagStatus)函数中,卡死地方的代码如下:for(j=0

2020-09-03 17:44:01 2798

原创 【C语言学习笔记】精讲篇1 - 位操作符的基本概念

本节讲解C语言中常用的位操作符,如位与、位或、位取反、位异或、左移右移等。目的在于让大家系统学习各种位操作的操作符及真值表。1、常见的位操作符和逻辑操作符区分序号位操作符逻辑操作符1位与 &逻辑与 &&2位或 l逻辑或 ll3位取反 ~逻辑取反 !4位异或 ^无5位左移 <<无6位右移 >>无2、常见的位操作符分析2.1、位与&2.1.1、特点位与符号是一个&a

2020-08-30 22:34:16 152

原创 【开源项目】基于神念TGAM的脑波灯

本项目是基于STM32F103C8T6单片机,通过串口采集TGAM的脑波数据,对TGAM的脑波数据进行解析处理,来控制RGB灯的变化,从而反应脑波的注意力或放松度等级。即通过RGB灯的变化,反馈脑波的一种形式。来个效果图本项目全部开源,嵌入式软件和硬件资料全部放在本文结束,欢迎大家一起学习交流!话不多说,我们开始了解一下TGAM的基本工作原理1、TGAM的资料介绍TGAM默认的波特率是57600,大约每秒钟发送513个包,注意是“大约每秒钟”,意思就是发送包的个数是不会变的,只是发送513个包所

2020-08-27 10:59:02 5779 3

原创 【Linux学习笔记】入门2 -Linux常用的shell命令

在window系统下,使用GUI(图形用户界面),基本采用鼠标点击的方式完成操作。在Linux系统下,使用cmdline(命令行),基本采用输入命令的方式完成操作。1、shell命令通用格式command -options [argument]command: Shell 命令名称。options:选项,同一种命令可能有不同的选项,不同的选项其实现的功能不同。argument: Shell 命令是可以带参数的,也可以不带参数运行。2、常用命令2.1、ls - 使用列表把当前文件夹下所有文件

2020-08-25 16:25:18 134

原创 【STM32学习笔记】技巧1 -更换外部8M晶振的频率如何修改程序?

绪论STM32系列的单片机,从L0到L4,从F1到F4系列,标准库和HAL库默认使用的外部晶振统一为8M。但是在实际应用中可能由于某些特殊情况,会使用其他频率的外部晶振,比如12M、16M、24M等等。比如,目前小编在参与一款毫米波雷达的研究,为了节约BOM成本,更大程度的降低EMC干扰。公司决定将STM32芯片的晶振和毫米波雷达芯片的晶振,合并成一个晶振。由于毫米波雷达的晶振必须为24M,因此STM32芯片的晶振也要使用24M。代码中需要做如下修改:1、标准库的修改方法只需下述两步即可!(1)

2020-08-25 09:57:59 2643 1

原创 【数据结构和算法】初识1 - 整体框架

前言毕业两年,入行嵌入式五个年头,从大学时期C51到STM32,再到如今i.MAX6ULL和Hi3559A。突然明白了一个道理:无论何种芯片、何种编程语言,都是为了解决用户问题而来的。原来想着学完这个芯片再学另外一种芯片,编程语言一种一种的学。然而学到现在发现仅仅会堆砌代码,在解决某一项功能时,基本上都是从网上复制下来,加入业务逻辑里面。然后再因为懒,没有深入的去分析复制下来的代码,现在总感觉脚底属于漂浮状态。造成了现在到达技术瓶颈期的感觉,通过几天的思考,总结一点就是:基础功底不扎实!因此决定将基

2020-08-25 09:25:38 214

原创 【数据结构和算法】初始2 - 算法的时间和空间

绪论1、请思考一下:何为算法?算法的主要作用是干嘛的?程序 = 数据结构 + 算法因此,对算法的简单理解:操作数据来解决程序问题的一种方法。2、如何衡量算法的好坏?只要从两个方面:时间和空间。时间:是指执行当前算法所消耗的时间,我们通常用「时间复杂度」来描述。空间:是指执行当前算法需要占用多少内存空间,我们通常用「空间复杂度」来描述。因此,一个优秀的算法应该是执行效率高、占用空间少。一、时间复杂度1、基础概念通俗一点就是:解决某一个问题所需要的时间,一般称为时间复杂度。采用大O符号表示

2020-08-25 09:09:31 234

原创 【开源项目】基于STM32的MLX90614测温显示

不说那么多废话,直接上干货百度网盘:链接:https://pan.baidu.com/s/1SZs7wf1vhGs_9L9FuMxiKA提取码:q8y5简单粗暴!软件下载 | 学习视频 | 嵌入式书籍 | 项目资料 |公众号中持续更新…

2020-08-20 16:38:28 3384 6

原创 【Arduino学习笔记】系列1 - 定时器配置

目录一、Arduino定时器简介二、定时器基本概念定时器速度(HZ) =Arduino时钟速度(16MHz)/预分频器系数中断频率(Hz)=(Arduino时钟速度16MHz)/(预分频器*(比较匹配寄存器+ 1)比较匹配寄存器= [16,000,000Hz /(预分频器*所需的中断频率)] - 1三、定时器配置代码Arduino的学习过程中一般使用...

2019-02-20 13:56:11 14790 2

原创 【STM32学习笔记】系列1 - 系统时钟原理(通俗易懂)

一、单片机中的系统时钟有多重要?系统时钟就好比人的心脏,芯片没有时钟就是一块废料。51单片机不需要配置时钟,因为一个时钟管理所有的功能资源。STM32单片机低功耗的原因之一在于时钟。每个功能资源、每个引脚都有一个时钟,用到什么功能,开启什么功能的时钟即可。就好比学校宿舍的公共浴室好多水龙头,我去洗澡,使用一个就行。全部打开?疯了吧(土豪随意,不过也要节约水资源)。芯片时钟走向:时钟...

2019-01-09 16:50:36 4357 1

基于STM32的MAX90614智能防疫门禁系统

基于STM32的MAX90614智能防疫门禁系统 本项目采用STM32F103C8T6单片机核心板。使用MAX90614红外温度传感器采集人体温度、记录人流量。 项目功能: 1、测量温度对比温度阈值,当测量温度低于温度阈值时,液晶显示“状态:正常”,语音播报“温度正常”,舵机动作(相当于打开闸门); 2、如果测量温度超过设置阈值,液晶显示“状态:注意!异常”,语音播报“请注意 温度异常”,舵机不动作(不允许通过)。 设计所包含的模块主要有彩屏液晶显示电路、语音播报电路、非接触测温传感器电路、舵机驱动电路、WIFI模块、按键电路模块及电源模块。通过模块之间的配合实现对疫情的预警,一旦有温度异常将会通过闸门关闭和语音播报来通知相应人员做出相关措施。 此价格提供以下资料: 1、原理图与PCB; 2、BOM清单与模块说明; 3、源码

2023-08-14

基于STM32的MAX30102健康检测设备

基于STM32的MAX30102血氧健康检测智能计步器手环系统资料 本项目是采用STM32F103C8T6实时检测当前人体的健康数据: (1)、通过MAX30102的采集心率血氧数据; (2)、ADXL345采集当前行走步数; (3)、DS18B20采集温度数据; (4)、内部RTC显示当前时间,可通过按键修改时间; (5)、OLED液晶显示当前时间,心率血氧,体温,步数。或者通过蓝牙无线传输。 此价格提供以下资料: 1、原理图 2、BOM清单(包含所有使用的元器件和模块,以及购买渠道) 3、源码 4、技术支持 实物价格460元

2023-08-14

基于STM32的FFT音频实验.rar

本项目是基于STM32F1系列单片机,采集音乐频谱,并且通过LCD显示!可直接烧录到正点原子战舰板使用!

2020-09-07

基于神念TGAM的脑波灯.rar

本项目是基于STM32F103C8T6单片机,通过串口采集TGAM的脑波数据,对TGAM的脑波数据进行解析处理,来控制RGB灯的变化,从而反应脑波的注意力或放松度等级。即通过RGB灯的变化,反馈脑波的一种形式。 本资源包含接收TGAM数据的硬件、软件和资料。本项目需搭配神念的脑波仪使用。

2020-09-07

基于STM32的MLX90614测温显示.rar

本项目基于STM32F103C8T6,包含OLED和MLX90614的驱动。完整工程全部打包,可以直接烧录使用!

2020-09-07

空空如也

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

TA关注的人

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