自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 二、FreeRTOS基础知识

3、Task3运行过程中(还不到一个时间片),Task3阻塞了(系统延时或等待信号量等),此时直接切换到下一个任务Task1。FreeRTOS中无非就四种状态,运行态,就绪态、阻塞态、挂起态,这四种状态中,除了运行态,其他三种任务状态的任务都有其对应的。如下图所示,task1、task2、task3分别根据自身优先级放入对应的就绪列表中。2、Task1、Task2、Task3的优先级分别为1、2、3;2、Task1、Task2、Task3的。1、创建三个任务:Task1、Task2、Task3。

2024-09-21 11:01:30 854

原创 一、RTOS入门

④ 任务堆栈 每个任务都有自己的栈空间,用于保存局部变量以及任务的上下文信息。任务被高优先级的任务打断时,把局部变量和打断处地址保存到堆栈空间,当高优先级任务执行完毕后,根据堆栈空间的局部变量和打断处地址,继续执行之前被打断的任务。但是会受到芯片内存的现在,因为每创建一个任务,则会分配一个堆栈。:① 实时性差 应用程序,轮流执行,只有打完游戏才能回复消息。:打游戏和回复信息,需要打完游戏才可回复信息,或者回复完信息才可打游戏。,因为速度很快,从宏观的意义上来看,类似同步执行!

2024-09-20 15:29:09 515

原创 六、RS485实验

一、RS485介绍一、RS485介绍是一个泛称,UART、RS232、RS422和RS485类似的,被通称为串口。其中,:确保RS485总线的稳定性,抑制噪声。

2024-09-18 14:59:04 1480

原创 五、CAN总线

一、基础知识一、基础知识1、can介绍CAN(Controller Area Network),是ISO国际标准化的。为了满足汽车产业的“减少线束的数量”、“通过多个LAN,进行大量数据的高速通信”的需求。(ISO11519)通信速率10~125Kbps,总线长度可达1000米。,经典CAN,(ISO11898)通信速率125Kbps~1Mbps,总线长度≤40米。通信速率可达5Mbps,并且兼容经典CAN,遵循ISO 11898-1 做数据收发。UARTIICSPI2、CAN硬件电路。

2024-09-18 13:58:20 3888 2

原创 四、SPI——2、NOR FLASH

NM25Q128,串行闪存器件,属于NOR FLASH中的一种,容量为128 Mb。擦写周期可达10W次,可以将数据保存达20年之久。支持模式0(CPOL = 0 , CPHA = 0)和模式3数据长度8位大小,先发高位,再发低位(MSB支持标准模式104M bit/s。原理图(战舰版,F103):CS : 片选信号输入。SO : 数据输出。WP : 写保护功能。HOLD : 暂停通讯。CLK : 时钟输入。SI : 数据输入。

2024-09-03 17:17:45 1876

原创 四、SPI——1、总体介绍

外设设备接口(Serial Peripheral Interface),是一种高速的,的通信总线。图1 SPI接线图。

2024-09-02 16:24:45 309

原创 三、IIC总线协议——2、AT24C02

EEPROM是一种掉电后数据不丢失的储存器,常用来存储一些配置信息,在系统重新上电时就可以加载。 AT24C02是一个2K bit的EEPROM存储器,使用IIC通信方式。 A0/1/2 : 设备地址决定引脚。、 WP : 写保护引脚。 SCL : 时钟线。 SDA : 数据线。 图1 AT24C02接线图 24C0

2024-08-30 14:16:25 1484

原创 三、IIC 总线协议——1、IIC总线协议介绍

Inter Integrated Circuit,同步、串行、半双工通信总线。2、IIC总线结构图① 由时钟线SCL和数据线SDA组成,并且都接上拉电阻,确保总线空闲状态为高电平。②总线支持多设备连接,允许多主机存在,每个设备都有唯一地址。③连接到总线上的数目受总线的最大电容400pf限制。④数据传输速率:标准模式100k bit/s,快速模式400k bit/s,高速模式3.4M bit/s3、信号开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。结束信号。

2024-08-29 10:51:10 396

原创 二、STM32 跑马灯

本实验使用的是正点原子探索者开发板。

2024-08-19 14:03:41 566

原创 一、STM32_HAL库工程模版创建

2、打开目录:\STM32Cube_FW_F4_V1.24.1\Drivers\CMSIS\Include,将里面的几个头文件: cmsis_armcc.h, cmsis_armclang.h, cmsis_compiler.h, cmsis_version.h, mpu_armv7.h, core_cm4.h 同样复制到。从工程中移除stm32f4xx_hal_timebase_rtc_alarm_template、stm32f4xx_hal_timebase_tim_template这两个文件。

2024-08-12 16:37:45 1309

原创 电子元件选型参数

1. 隔离电压:指输入端与输出端之间的最大耐受电压。一般来说,隔离电压越大,光耦提供的隔离效果越好,但相应的成本也会更高。可控硅输出型光耦隔离电压一般在5000伏以下。3.正向电压降VF:二极管通过额定正向电流时,在两极间所产生的电压降。2.正向电流IF:在额定功率下,允许通过二极管的电流值。

2023-07-12 16:02:45 283

原创 c++ bug

为了便于调试,VC++在调试版的程序中会把堆上的内存全部初始化为0xCC,而0xCCCC正好是烫这个字的内码。所以你下个断点,检查下你RXBuff的内存是否初始化。建议调用前用memset先把RXBuff清空下。另外你从串口读取的是数字的1还是ascii的字符的1。烫烫烫烫烫说明你访问了没有初始化的内存。

2023-06-17 11:28:52 241

原创 Windows上实现基于c++的TCP服务器和客户端

运行之后客户端向服务器发送“你好服务器”,服务器收到之后,给客户端发送同样的内容。之后可以通过客户端向服务器发送内容,服务器向客户端发送相同的内容。先运行服务器程序,再运行客户端程序。

2023-06-07 10:29:56 814

原创 Linux应用开发基础知识

Linux应用开发基础知识

2023-06-01 11:26:35 645

原创 Ubuntu知识点整理

Ubuntu知识点整理

2022-09-05 15:15:57 645

原创 C语言难题

当项目更换电脑,属性资源需要重新配置字符串转 IEEE 双精度浮点数字符串转整数 (int)

2022-05-09 22:35:33 445

原创 MFC中List控件

MFC中List控件

2022-04-28 16:49:34 1731

原创 MFC不同窗口之间传递数据

MFC不同窗口之间传递数据

2022-04-20 20:40:13 5790 2

原创 MFC标签页

MFC标签页

2022-04-19 16:13:47 783

原创 MFC下拉框

MFC下拉框

2022-04-09 11:41:13 5608

原创 MFC编辑框的使用

MFC编辑框的使用2)多行并且可以回车换行3)水平滚动条和垂直滚动条4)按住CTRL拖拽编辑框可以得到一个一模一样的属性的编辑框。二、实现复制编辑框内容1、添加变量编辑框1名为m_edit1,编辑框2名为m_edit2。2、设置开始时编辑框1,有默认的内容,所以在OnInitDialog中添加编辑框初始化代码。...

2022-04-08 21:40:09 4224

原创 MFC静态文本控制

一、设置文本内容1、从工具栏里拖拽Static Text控件。2、右键属性修改ID为 IDC_TEXT,否则无法添加变量。3、右键选择 Static Text控件,添加变量。设置为私有,并且令空间名为CStaric。添加的变量在CCStaticTextDlg类中的DoDataExchange函数中。4、双击按钮控件自动生成如下代码。添加如下代码:5、效果点击Button1, static变为aaa。二、获取文本中的内容.

2022-04-08 16:54:19 5550

原创 MFC对话框创建

一、模态对话框模态对话框有阻塞功能,打开之后不能操作其他对话框。1、新建MFC项目2、选择基于对话框3、插入新的对话框右键Dialog,插入Dialog。4、给新的对话框重写ID右键新的对话框,选中属性,修改。模态为IDD_EXEC,非模态为IDD_SHOW。5、为模态对话框添加类右键选中的对话框,添加类。创建后会自动弹出.h的对话框。6、添加按钮在主对话框(创建项目就会自动生成),放置按钮(工具栏里拖拽)。有三种方式为按...

2022-04-08 11:52:31 4982

原创 ESP8266程序编写中遇到的语法总结

本次博客知识来自于韦东山老师的7天物联网课程。1、当使用HAL库的函数时,遇到函数形参时指针时,实参应为地址。HAL_StatusTypeDef HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size)这个函数中,形参UART_HandleTypeDef *huart、uint8_t *pData。均为指针,所以调用时,实参应为地址,如下。HAL_UART_Receive_IT(&h

2022-02-25 20:59:41 952

原创 ESP8266的使用

本次博客知识来自于韦东山老师的7天物联网课程。一、预期功能运用ESP8266模块,使单片机与手机微信的小程序进行通信,实现手机控制LED的亮灭。并且,单片机可以远程控制微信小程序中模拟的门铃开启和关闭。二、硬件设置本次实验采用STM32F103C8T6,用到了以下单片机的以下功能。GPIO_PA0,用作外部中断0,并且连接一个按键,使用按键向手机发送数据。GPIO_PA1,连接LED灯,手机APP控制LED的亮灭。USART2,使用串口2与ESP8266模块连接,并启用串口中断,

2022-02-25 19:51:06 4967

原创 HAL库操作STM32串口

本次博客知识来自于韦东山老师的7天物联网课程。一、cubeMX产生工程框架先从左侧选择串口1,再选择异步通信。二、分析程序如下图,cubeMX自动生成了串口初始化函数。三、编写程序以上初始化完成后,就可以使用HAL库提供的“ HAL_UART_Transmit()”从串口发送数据,使用“ HAL_UART_Receive()”接收数据,但这样使用不方便,需要自己处理数据类型。 在学习C语言时,通常使用printf将数据格式化打印,比较方便。因此,这里需要重...

2022-02-15 23:41:53 5750

原创 七、HAL库设置STM32中断

一、中断的含义通常,把CPU内部产生的紧急事件叫做异常,比如非法指令(除零)、地址访问越界等;把来自CPU外部的片上外设产生的紧急事件叫做中断,比如GPIO引脚电平变化、定时器溢出等。异常和中断的效果基本一致,都是暂停当前任务,优先执行紧急事件,因此一般将中断和异常统称为中断。Cortex-M3内核有256种异常和中断,其中编号1~15是系统异常, 16~256是外部中断,如下图。二、中断优先级 如此多的中断, 导致了一些新问题。 比如两个中断同...

2022-02-15 22:47:15 5541

原创 GPIO口详解、HAL库操作按键

本次博客知识来自于韦东山老师的7天物联网课程。一、GPIO详解1、STM32F103C8T6一共有48个引脚。2、按A、B、C分组,每组16个引脚,编号为0~15,STM32F103C8T6有2组GPIO,每组有16个引脚,即32个GPIO引脚。3、GPIO工作模式STM32F103系列的I/O引脚共有8种工作模式,其中输出模式有四种:推挽输出、开漏输出、复用推挽输出、复用开漏输出;输入模式有四种:上拉输入、下拉输入、浮空输入、模拟输入。推挽输出( Push-Pull, PP)

2022-02-15 00:06:16 11446

原创 HAL库设置STM32时钟

本次博客知识来自于韦东山老师的7天物联网课程。一、时钟的意义1、时钟是同步各种外设的工作,时钟脉冲每发生一次,外设工作一次。时钟频率越快,CUP执行效率越高。2、高级的单片机中,存在不同频率的时钟。对不同的外设可以设置不同的时钟频率,既可以关闭时钟,也可以设置不同的时钟频率,使整个系统最优化。二、STM32时钟树分析在stm32f103c8第12页。1、时钟来源高速外部时钟低速外部时钟高速内部时钟低速内部时钟2、基本元件分频器选择器.

2022-02-14 22:17:23 2271

原创 STM32-HAL库学习,使用cubeMX生成程序框架

知识来源于7天物联网韦东山老师的7天物联网课程。之前使用标准库开发STM32程序的时候需要单独配置很多文件,现在使用HAL库,直接用cubeMX就可以的省去这一步。一、cubeMX建立新工程...

2022-02-13 20:44:09 4387

原创 STM32外部中断实验

一、参考资料二、外部中断概述中断1-4有单独的中断服务函数。中断服务函数在startup_stm32f10x_hs.s中找到。三、外部中断常用库函数四、外部中断的一般配置步骤1、初始化IO口为输入因为KEY0、KEY1、KEY2、KEY3接地所以用上拉输入,按键松开为高电平,按键按下为低电平。所以用下降沿触发。 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE,ENABLE); ...

2022-01-21 15:22:38 1213

转载 六脚自锁开关原理图和接法

1、每一排是一个单独的单刀双掷开关,中间的是公共的,可以用SW-DPDT先是只要确定中间的是公共就行了,至于到底哪边是开哪边是关这个问题可以留到焊接的时候再去解决。2、以一个USB供电单片机的实例来说明这是一个USBslot,其中1 PIN,供一个5V的电其实BUTTON为自锁开关,按下,2,3脚导通,输出5V。...

2022-01-20 20:47:55 30644

转载 STM32正点原子串口例程——USART_RX_STA为什么可以接收回车和换行

正点原子stm32--串口通信实验讲解里关于USART_RX_STA的问题与思考https://blog.youkuaiyun.com/milu_yu/article/details/108523888 SET,是标志位满足的情况。RESET,是标志位未满足的情况。为什么printf能通过串口1发送到电脑。只要修改 fputc里的USART1中的1即可更改接收的串口。#if 1#pragma import(__use_no_semihosting) //标准库需要的

2022-01-20 18:20:27 911

原创 STM32串口USART1例程

一、在主函数里使能GPIOA,和USART1void My_USART1_Init(void){ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);}因为USART1是复用GPIOA所以使能GPIOA

2022-01-19 19:11:26 1822

原创 STM32端口复用和重映射

一、端口复用在芯片手册里可以查具体什么端口的复用和重映射。确认USART1用什么时钟可以在头文件里面搜索。二、 重映射

2022-01-19 16:04:36 260

原创 STM32串行通信原理

并行通信,比方说传输8位,则用8个引脚,同时传输。串行通信,传输8位,用一个引脚,依次传输。同步通信,用cloc时钟的下降沿或者上升沿,来确定发送和接受。异步通信,通过接收端和发送端约定的波特率,来确定发送和接受。全双工通信一般,有独立的发送和接受端口。同步通信有,时钟信号。USART也可以当作USRT用。单片机之间用左图,单片机与电脑之间用右图,要经过RS232电平转换。1、 接受、发送的路...

2022-01-18 16:34:13 395

原创 STM32中断优先级管理

STM32中断优先级管理

2022-01-18 11:20:59 648

原创 STM32GPIO的8种工作模式、以及芯片命名规则

STM32学习笔记

2022-01-07 18:57:40 624

转载 C语言枚举类型

C语言枚举类型(C语言enum用法)详解

2021-12-29 11:41:23 153

原创 pip 引用国内源

-i https://pypi.tuna.tsinghua.edu.cn/simple/ --trusted-host pypi.tuna.tsinghua.edu.cn

2021-11-27 14:55:51 381

空空如也

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

TA关注的人

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