- 博客(62)
- 资源 (9)
- 收藏
- 关注
原创 本站文章导航
电子工程应用:STM32F1:STM32H7:STM32 其他:C51:C 语言:Python 语言:C# 语言:C++ 语言:Objective-C 语言:
2024-01-10 22:54:34 486
原创 STM32理论 —— μCOS-Ⅲ(2/2):时间管理、消息队列、信号量、任务内嵌信号量/队列、事件标志、软件定时器、内存管理
更多关于队列相关API 函数介绍,详见《UCOS-III开发指南_V1.5》第十三章;
2024-06-12 14:18:55 1233
原创 STM32理论 —— μCOS-Ⅲ(1/2):移植、任务创建&删除&挂起&恢复、中断管理、临界段代码保护及任务调度锁、任务调度器
任务调度器就是决定当前执行哪个任务;μCos-Ⅲ 支持2种任务调度方式抢占式调度:针对优先级不同的任务,优先级高的任务可抢占优先级低的任务;时间片调度:针对优先级相同的任务,当多个任务优先级相同且就绪时,调度器会根据用户设置的时间片轮流运行这些任务。时间片以一次系统时钟节拍为单位(滴答定时器的中断频率),µC/OS-III 默认设置的任务时间片为 100,则 µC/OS-III 会在当前任务运行 100 次系统时钟节拍的时间后,切换到另一个相同任务优先级的任务中运行。
2024-05-09 23:05:58 797
原创 C#理论 —— 基础语法、数据类型、变量、常量、操作符、三大结构
结构可带有方法、字段、索引、属性、运算符方法和事件。结构可定义构造函数,但不能定义析构函数。但是,您不能为结构定义无参构造函数。无参构造函数(默认)是自动定义的,且不能被改变。与类不同,结构不能继承其他的结构或类。结构不能作为其他结构或类的基础结构。结构可实现一个或多个接口。结构成员不能指定为 abstract、virtual 或 protected。当您使用 New 操作符创建一个结构对象时,会调用适当的构造函数来创建结构。与类不同,结构可以不使用 New 操作符即可被实例化。
2024-02-28 23:00:40 1320
原创 TINA-TI —— 电路仿真
文章目录1. 安装2.1. 安装Tina-TI 官网下载链接:https://www.ti.com.cn/tool/cn/TINA-TI注册登陆,选择简体中文版下载;下载完成后,直接安装;2.
2023-12-09 11:27:26 2587
原创 STM32【H7】理论——MPU、Cache
MPU 可以配置的 16 个内存区的序号范围是 0 到 15,还有默认区 default region,也叫作背景区,序号-1;由于这些内存区可以嵌套和重叠,所以这些区域在嵌套或者重叠时有个优先级的问题。序号15 的优先级最高,以此递减,序号-1,即背景区的优先级最低。:MPU 可以独立配置保护 16 个内存区域,每个区域最小要求 256 字节,每个区域还可以配置为 8 个子区域;由于子区域一般都大小相同,这样每个子区域的大小就是 32 字节,正好跟 Cache 的 Cache Line 大小一样;
2023-05-26 17:18:03 5217
原创 STM32理论 —— 定时器、时钟
STM32F103系列单片机一共有11个定时器::2个高级定时器:TIM1、TIM8;挂载在APB2时钟总线上;4个通用定时器:TIM2~TIM5;挂载在APB1时钟总线上;2个基本定时器:TIM6、TIM7;2个看门狗定时器;1个系统嘀嗒定时器;主要功能特点位于低速的APB1时钟总线上;16位向上、向下、向上向下(中心对齐)计数模式,自动重装载寄存器(TIMx_ARR);
2023-04-18 22:59:41 5720 1
原创 STM32 ——bootloader IAP
IAP(In Application Programming) 是用户自己的程序在运行过程中对 User Flash 的部分区域进行烧写,目的是为了在产品发布后可以方便地通过预留的通信口对产品中的固件程序进行更新升级。为了实现 IAP 功能,系统将分为 bootloader 和 app 两部分。bootloader 部分实现 app 升级功能和跳转,app 部分实现系统核心功能并能触发升级。
2023-03-29 16:01:18 3971
原创 STM32理论 —— 看门狗
STM32 的独立看门狗由内部专门的 40Khz 低速时钟驱动(该内部低速时钟并不精确),即使主时钟发生故障,它也仍然有效;STM32 内部自带了 2 个看门狗:独立看门狗(IWDG)和窗口看门狗(WWDG);
2022-12-28 15:57:44 1307
原创 Python理论 —— excel、word、txt 数据读写
与 Excel 相似,唯一的不同是,Excel 中是写入单元格,而在 Word 中则是在文档的文本“范围”内插入字符串。方式三:按行获取所有数据。
2022-11-18 11:41:09 1427
转载 C语言Json库 —— cJson
关于该结构体的几点说明:cJOSN 结构体是一个双向链表,并且可通过 指针访问下一层。结构体成员 变量用于描述数据元素的类型(如果是键值对表示 值的类型),数据元素可以是字符串、整形、浮点型。如果是整形值的话可通过 将值取出如果是浮点型的话可通过 将值取出如果是字符串类型的话可通过 将值取出结构体成员 表示键值对中键值的名称。2.2 数据的封装在 cJSON.h 头文件中可以看到一些函数声明,通过调用这些创建函数就可以将 Json 支持的数据类型封装为 cJSON
2022-06-01 15:00:16 11022 1
原创 Python JSON 开发
文章目录1. 综述2. JSON 语法2.1 JSON 对象2.2 JSON 数组1. 综述JSON: JavaScript Object Notation(JavaScript 对象表示法),是轻量级的存储和交换文本信息的语法,类似 XML . 特点是纯文本、层级结构、使用数组。2. JSON 语法JSON 语法是 JavaScript 语法的子集。数据在名称/值对(健值对)中数据由逗号分隔花括号{}保存对象中括号 [] 保存数组,数组可以包含多个对象数据在名称/值对(健值对
2022-04-23 18:09:31 1423
原创 STM32【H7】理论——GPIO
文章目录1. GPIO1.1 GPIIO 功能模式分析1.2 推挽输出1.3 开漏输出1.4 复用推挽和开漏1.5 四种输入模式1.6 GPIO 的拉电流负载和灌电流负载能力1.7 IO 补偿单元(高速IO)1.8 GPIIO 兼容 CMOS 和 TTL 电平使用芯片:STM32H743XIH6 .开发板:安富莱V71. GPIO对于不使用的引脚,推荐设置为模拟模式,悬空即可。GPIO 的速度等级高的时候,最好使能 IO 补偿单元。GPIO 还涉及到一个注入电流的问题,详见:http:/
2022-04-16 23:37:25 2653 1
原创 GD32替换STM32移植过程
目录1. 硬件芯片移植2. 软件配置2.1 修改外部晶振起振超时时间2.2 增加DMA功能1. 硬件芯片移植下面以 GD32F103RET6 替换 STM32F103RET6为例硬件上使用对应的GD32芯片替换STM32,如使用 GD32F103RET6 替换 STM32F103RET6,其引脚数与引脚定义都是一样的到兆易创新官网 - 资料下载 - 对应系列芯片 - 应用软件 - 找到GD32F1x0_Addon_V3.1.0.rar,解压安装3. 更换算法文件(.FLM)到Keil 的F
2021-12-09 18:11:04 8093 5
原创 STM32理论 —— FreeRTOS(内核控制、时钟、队列)
文章目录1. 系统内核控制1.1 相关API函数1.1.1 函数 `taskYIELD()`1.1.2 函数 `taskENTER_CRITICAL()`1.1.3 函数 `taskEXIT_CRITICAL()`1.1.4 函数 `taskENTER_CRITICAL_FROM_ISR()`1.1.5 函数 `taskEXIT_CRITICAL_FROM_ISR()`1.1.6 函数 `taskDISABLE_INTERRUPTS()`1.1.7 函数 `taskENABLE_INTERRUPTS()`1
2021-11-27 18:24:27 3483
转载 微带线与带状线的区别
带状线:线走内板层,信号线是嵌在两层导体之间的带状导线,它的电场分布都在两个包它的导体(平面)之间,不会辐射能量出去,也不会受到外部的辐射干扰。但由于它的周围全是电介质(介电常数比1大),所以信号在里程中的传输速度比在表层中慢。微带线:线走在板层表面, 如下图,蓝色部分是导体,绿色部分是PCB的绝缘电介质, 由于微带线的一面裸露在空气里面(可以向周围形成信号辐射或受到周围的辐射干扰),而另一面附在PCB的绝缘电介质上,所以它形成的电场一部分分布在空中,另一部分分布在PCB的绝缘介质中。但是微带线.
2021-11-04 10:11:52 17499
原创 Matlab —— 电路仿真
回到最初的斩控交交调压电路,理想情况下Mosfet S1和S4互补导通(S2、S3同理),前面的电路触发也是如此设置,但实际电路中可能因为某些原因,存在Mosfet S1、S4都不导通的情况,若此时负载L中存在大电压,此电压得不到及时的泄放,会对负载形成较大的威胁。12. 点击运行,查看两个示波器波形,其中示波器2中黄色为电源电压,蓝色为电阻电压,红色为电感电压,可见,由于电感的存在,负载的电压存在一个滞后状态,导致电源电压到零后,负载电压还未到零。
2021-10-04 00:52:33 27716 3
转载 嵌入式软件工程师学习步骤
嵌入式门槛虽然较高,但也跟其他事物一样,并不是牢不可破。只要我们用心去对待,冬雪终将化去,春风定会吹来。具体步骤如下:1、《C语言》第二版 谭浩强 ;《C程序设计语言》第二版 徐宝文译 机械工业出版社 你能区分开指针数组和数组指针吗?你知道函数指针吗? 你能区分开定义一个变量时系统给它分配的空间与用malloc()函数给一个变量分配的空间有什么不一样吗?2、《数据结构》C语言版 黄国愉、叶乃青编 清华大学出版社 你能合上书本,用C语言实现书中的单链表、双链表数据结构吗?3、《实用C++
2021-09-26 00:15:27 4994
原创 Git - 代码版本管控工具
文章目录1. 综述1.1 Git安装1.2 Git配置用户名与邮箱2. Git代码管理系统2.1 建立Git仓库2.2 配置本地仓库信息2.3 版本提交Git是一种代码版本控制系统。使用Git开发代码,一般有以下三个优势:更方便地管理代码版本;更方便地进行代码对比;协同合作1. 综述1.1 Git安装到Git的官网下载安装包。安装时一路默认即可,在下图的步骤中,是选择Git默认的编辑器。安装完成后,在桌面右击,可发现Git以添加到右击菜单栏中。点击Git Bash Here,
2021-09-02 00:57:56 417
原创 Python GUI之PyQT QTCreater专讲
文章目录1. 综述1.1 在 IDLE 中开启对 PyQt5 的代码提示功能1.2 取消文件自动命名全小写2. UI Designer 可视化设计2.1 新建工程2.2 属性编辑器2.3 将 ui 文件编译为 py 文件QTCreater是QT官方的IDE,其功能与Pytharm一样,都是用于开发。关于QT、QT Creater的安装,详见Python理论之三 —— GUI1. 综述1.1 在 IDLE 中开启对 PyQt5 的代码提示功能进入python安装目录中的dlelib文件夹,比如我
2021-08-15 14:38:30 1432
原创 Python理论 —— GUI
1. Tkinter在Python3.x 中,默认安装Tkinter库,在使用时引入即可(引入方式:import tkinter)Tkinter 最大的好处,就是 python3 自带,真正的"绿色代码",不需另外安装第三方工具和框架(比如 wxPython/PyQt),后续工作少,坑也少,打包的程序也足够小!GitHub上找到的 Tkinter 可视化编程工具:tkinter-designer1.1 Tkinter GUI 编程介绍创建一个 GUI 应用就像画画一样。传统上,艺术家使用单一的
2021-08-10 23:57:53 2672 6
原创 STM32【H7】理论——综述、HAL库简述
文章目录1. STM32H7芯片简介1.1 STM32H7与STM32F1、F4系列芯片的区别1.2 硬件框图1.3 STM32H7各型号对比1.4 总线框图和时钟1.5 AXI总线1.5.1 AXI总线简介1.5.2 AXI总线优先级编程1.6 总线互联1.7 FLASH1.8 RAM1.9 电源系统1.9.1 系统上电启动1.9.2 低功耗模式1.9.3 电源去耦电容的选择1.10 复位系统1.10.1 硬件复位1.10.2 软件复位1.11 RCC 时钟系统1.11.1 STM32H7 RCC时钟简介
2021-06-30 14:05:01 11706 6
原创 C51理论 —— 综述
文章目录1. 综述1.1 集成开发环境1.2 添加芯片包(Device)1.3 新建工程2. 其他2.1 Flash 压缩方法1. 综述1.1 集成开发环境安装Keil C51,注意Keil MDK版本不可用于开发C51的芯片:到官方下载地址下载安装、PoJie1.2 添加芯片包(Device)关闭Keil,打开STC-ISP软件 - 选中Keil仿真设置 - 点击图中按钮选择Keil的安装目录,点确定打开Keil,到Device页面,下拉选择STC MCU Database
2021-04-12 14:33:35 220
原创 STM32理论 ——通信
文章目录1. 数据通信介绍1.1 并行/串行通信2. USART串口通信(STM32H7系列)2.1 串口的硬件框图2.2 串口的基本功能特性2.3 串口的自适应波特率2.4 串口的数据帧格式2.5 同步串口和异步串口的区别2.6 单工,半双工和全双工通讯2.7 串口的HAL库应用(串口的初始化流程)2.7.1 串口寄存器结构体USART_TypeDef2.7.2 串口句柄结构体 UART_HandleTypeDef2.7.3 串口的底层配置(GPIO、时钟、中断等)2.7.4 串口的状态标志清除问题2.8
2021-03-18 11:30:39 3994 1
原创 STM32理论 —— DAC、DMA
文章目录1. DAC1.1 内置DAC1.2 MCP47251.3 可编程信号发生器 - AD98331.3.1 控制寄存器1.3.2 频率和相位寄存器1.3.3 输出引脚1.3.4 核心代码1.4 AD56932. DMA2.1 DMA的数据传送过程2.1.1 仲裁器2.1.2 指针增量2.1.3 循环模式2.1.4 存储器到存储器模式2.1.5 通道传输数据量2.1.6 中断2.2 核心代码2.3 CPU与外设之间的数据传送方式2.3.1 程序传送方式2.3.2 中断传送方式2.4 STM32 DMA
2021-02-24 10:20:41 5049 1
原创 STM32理论 —— FreeRTOS(任务、中断管理、列表)
文章目录0. 综述0.1 单片机的几种运行模式0.2 任务栈与任务函数0.3 任务控制块 —— TCB1. FreeRTOS最新源码下载2. FreeRTOS代码移植3. 任务3.1 任务调度机制3.2 任务状态3.3 任务优先级3.4 任务实现3.5 任务控制块3.6 任务堆栈3.7 任务创建与删除(动态方法)3.7.1 `xTaskCreate()` —— 使用动态方法创建函数3.7.2 `xTaskCreateStatic()` —— 使用静态方法创建函数3.7.3 `vTaskDelete()` —
2021-01-31 16:19:15 2994 1
原创 Microsoft Office&WPS
打开一个文档 - 文件 - 另存为 - 工具下拉选择压缩图片 - 根据需求选择压缩量。选定要删除空行的对象 - 查找和选择 - 定位条件 - 空值 - 确定。复制代码到以下网站,选择对应语言,生成格式代码,复制粘贴到word中。菜单栏 - 文件 - 信息 - 保护工作簿 - 用密码进行加密。选中需要添加行筛选的行 – 开始 – 排序和筛选 – 筛选。然后选择数据的范围,也可以在同一图表内添加另一组数据的图表。例:选中“名字”、“学号”两行,点击筛选。右击生成的图表,选择“选择数据”在公式中的变量前添加。
2021-01-22 21:50:46 963 1
原创 C#理论 —— 文件操作、委托和事件
文章目录1. 文件操作1.1 获取计算机驱动器信息Driveinfo1.2 文件夹操作Directory、Directoryinfo1.3 文件操作File、FileInfo1.4 文件路径操作Path1. 文件操作操作变量和常量时这些值都是存放到内存中的,当程序运行结束后使用的数据全部被删除。若需要长久保存应用程序中的数据,需要选用文件或数据库来存储。文件操作类在 System.IO 命名空间中,包括 Driveinfo 类、Directory 类、Directoryinfo 类、File 类、F
2021-01-07 17:59:16 711 1
原创 C#理论 —— Windows 窗体应用WinForm
文章目录1. WinForm - Windows窗体应用程序1.1 WinForm工程创建1.2 工具箱1.3 窗体属性1.3.1 实例:创建一个新窗体1.4 窗体事件1.4.1 实例:通过窗体的不同事件改变窗体的背景颜色1.5 窗体方法1.5.1 实例:窗体方法使用1.6 消息框MessageBox1.6.1 实例:Message的应用1.7 控件1. WinForm - Windows窗体应用程序WinForm 是 Windows Form 的简称,是基于 .NET Framework 平台的客户
2021-01-04 15:26:37 22520 2
原创 USART HMI
文章目录1. 简介2. HMI设备端2.1 USART HMI开发软件1. 简介HMI是Human Machine Interface ( “人机接口”)的缩写 ,也叫人机界面。USART HMI即串口人机接口,其将底层功能封装在HMI设备中,通过串口与MCU 进行通信交互,MCU只需通过串口与HMI设备发送/接收指令,HMI设备即可作出相应响应。2. HMI设备端以陶晶驰USART HMI串口屏为例。2.1 USART HMI开发软件大概开发流程为:新建工程 - 根据串口屏分辨率在软件配
2020-12-29 17:34:09 6953
原创 C#理论 —— 预处理器指令、正则表达式、异常处理
文章目录1. 命名空间(Namespace)1.1 定义命名空间1.2 using 关键字1.3 嵌套命名空间2. 预处理器指令2.1 #define2.2 #if3. 正则表达式1. 命名空间(Namespace)命名空间存在的目是提供一种让一组名称与其他名称分隔开。使得在一个命名空间中声明的类名与另一个命名空间中声明的相同的类名不冲突。就像计算机的系统中,一个文件夹(目录)中可以包含多个文件夹,每个文件夹中不能有相同的文件名,但不同文件夹中的文件可以重名。????类似地可以用计算机系统文件夹
2020-12-11 18:16:01 1462
原创 苹果产品应用记录
文章目录1. 快捷键1.1 截图1. 快捷键1.1 截图全屏截图:shift+command+3区域截图:shift+command+4区域捕捉截图:shift+command+4+space bar(空格)
2020-12-04 17:46:04 596
原创 C#理论 —— 命名空间、类、方法、封装、多态、接口
文章目录1. 方法1.1 定义方法1.2 调用方法1.2.1 递归调用1.3 参数传递1.3.1 按值传递参数1.3.2 按引用传递参数1.3.3 按输出传递参数1. 方法一个方法(函数)是把一些相关功能的语句组织在一起,用来执行一个任务的语句块。每一个 C# 程序至少有一个带有 Main 方法的类。1.1 定义方法语法:<访问修饰符> <返回值类型> <方法名>(参数列表){ ...}例程:class NumberManipulator{
2020-11-21 17:51:02 1694 1
原创 Linux 理论
Linux 是一个多用户系统,可给不同的使用者创建不同的用户账号,每个用户使用各自的账号登陆,使用用户账号的目的一是方便系统管理员管理,控制不同用户对系统的访问权限,另一方面是为用户提供安全性保护。在第四种形式会创建指定的目录。APT 采用的 C/S 模式,也就是客户端/服务器模式,我们的 PC 机作为客户端,当需要下载软件的时候就向服务器请求,因此我们需要知道服务器的地址,也叫做安装源或者更新源。对于链接文件,只删除链接,原文件保持不变,所谓的链接文件,相当于 Windows 下的快捷方式文件。
2020-10-28 21:23:18 1396
Matlab —— 电路仿真电路图.zip
2021-11-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人