自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(77)
  • 资源 (4)
  • 收藏
  • 关注

原创 pywinauto 自动化小技巧:如何操作不支持的控件类型,以及打印变量的成员与方法

直接采取索引的方式descendants [index]就可以粗暴定位对应控件了。该图就是利用上述方法获取到了pywinauto不支持的控件的中心点坐标。拿来测试的自动化应用里有个控件类型,pywinauto不支持。descendants()方法,打印出其下所有控件。祭出下列代码,查看该变量有哪些成员和方法。但是又发现许多方法,定位的控件都不支持。官方文档翻一遍,没找到合适的成员与方法。效果显著,根据函数名,也能猜出大概功能。最近在研究pywinauto。直接定位不了,研究半天。

2023-04-25 15:28:46 768 1

原创 正点原子 STM32 mini版,用stlink v2 四根线连接,方便调试烧写

正点原子stm32 mini开发板stlink找到SWDIO、SWCLK对应引脚再接v3.3、GND即可连线完毕,烧写测试下搞定

2022-06-11 15:32:49 4190

原创 基于VScode的ESP32开发学习(五):用户自定事件循环详解,dedicated task

代码#include "esp_log.h"#include "freertos/FreeRTOS.h"#include "freertos/task.h"#include "event_source.h"#include "esp_event_base.h"static const char* TAG = "user_event_loops";//事件循环esp_event_loop_handle_t loop_with_task; //循环带任务esp_even

2022-04-21 11:40:26 3575 1

原创 基于VScode的ESP32开发学习(四):事件循环

代码#include "esp_log.h"#include "freertos/FreeRTOS.h"#include "freertos/task.h"#include "event_source.h"static const char* TAG = "default_event_loop";static esp_event_handler_instance_t s_instance; //用来标注事件处理函数的上下文句柄static int TIMER_STAR

2022-04-19 13:10:53 3863

原创 基于VScode的ESP32开发学习(三):官方例程Station,连接到wifi

代码#include <string.h>#include "freertos/FreeRTOS.h"#include "freertos/task.h"#include "freertos/event_groups.h"#include "esp_system.h"#include "esp_wifi.h"#include "esp_event.h"#include "esp_log.h"#include "nvs_flash.h"#include "lwip/err.h

2022-04-18 11:04:07 4204 1

原创 基于VScode的ESP32开发学习(二):官方例程softap,提供wifi,详解

完整代码放在文末1.wifi事件处理函数/*wifi事件处理函数*/static void wifi_event_handler(void* arg, esp_event_base_t event_base, int32_t event_id, void* event_data){ if (event_id == WIFI_EVENT_AP_STACONNECTED) {

2022-04-17 15:53:40 2618 3

原创 基于VScode的ESP32开发学习(一):官方例程blink,周期闪烁led详解,优信esp32简单修改适配

前言其实这个例程非常简单,我记录这个感觉像水了一篇,不过作为用VS开发esp32的上手第一步来说,还是收获很多的,想了想,还是记录下,不管是例程中良好的代码习惯,以及精简的代码书写都值得我学习,标题说了是详解,那我就好好剖析下吧代码正文我将注释给修改了下,方便理解/* Blink Example*/#include <stdio.h>#include "freertos/FreeRTOS.h"#include "freertos/task.h"#include "driver/g

2022-04-17 11:54:49 5802 3

原创 ESP32 VScode环境报错:Something went wrong while trying to build the project。解决办法

配置ESP32- Vscode环境报错如图项目目录包含了中文字符,我给换成全英文路径,再次尝试成功

2022-04-16 17:13:46 5119 5

原创 ESP32开发环境搭建,Linux,SDK,IDF,Ubuntu,乐鑫

参考乐鑫官方手册ESP32快速入门前言:玩ESP32,arduino可以方便入门,但精细操作还得用SDK来整,所以搭建下,我个人用的是优信电子家的ESP32,本来想跟着他家教程走,结果发现鸽了,只能自己摸索下了。一、 安装VMware,unbutu虚拟机我用的是ubuntu20版本此步不再详细描述,参考如下Ubuntu - 20.04系统安装乐鑫ESP-IDF工具链(1) — 虚拟机安装 Ubuntu - 20.04第二步:获取 ESP-IDF打开终端,后运行以下命令:mkdir -p

2022-04-14 16:51:48 3386

原创 树莓派学习笔记(五):树莓派上Python写OpenCV——形态变换

基础知识仿射变换:平移,镜像(水平、垂直),旋转图像的算数运算:图像的腐蚀和膨胀:开运算的应用举例1.图像翻转# 08_flip.py# 图像翻转import cv2im = cv2.imread("../data/Linus.png")cv2.imshow("im", im)# 0-垂直镜像im_flip0 = cv2.flip(im, 0)cv2.imshow("im_flip0", im_flip0)# 1-水平镜像im_flip1 =

2021-04-23 22:25:36 354

原创 树莓派学习(四):树莓派上Python写OpenCV——对图像的色彩操作

前言我使用的是树莓派自带的python IDE怎么理解我的注释:形如 某某某:X1,X2,X3等价于 函数功能:参数1的解释,参数2,参数3…1.图像的读取,显示,保存注:图片请自备代码:#image read,display and saveimport cv2im=cv2.imread("doge.jpeg",1)#路径,1彩色图像/0灰度图像print(type(im))#查看im变量类型print(im.shape)#打印图像数据的形状cv2.imshow("ima

2021-04-21 12:34:52 1368 2

原创 树莓派学习(三):树莓派上简单几步安装好OpenCV(Python3)

前言没想到opencv的安装给我整了一下午来说下踩过的坑:使用的是树莓派3B+1.看B站教程,让下载源码然后在树莓派上编译好几小时2.使用python pip3直接安装,但各种依赖包出错最后参考树莓派python3使用pip3安装opencv3.4顺利完成,步骤简单,方便快捷步骤1.把软件源换成国内镜像网站:修改参考2.输入命令sudo pip3 install opencv-python不过下载速度还是有点慢,我选择下载安装包,离线安装下载地址下载好之后,拷贝到tf卡,或者使

2021-04-20 22:18:55 705 1

原创 树莓派学习(二):摄像头模块的安装和使用

1.摄像头硬件安装我使用的是CSI借口的树莓派官方摄像头将蓝色胶带一面朝向网线接口,有纹路一面朝向HDMI接口,插入到CSI接口中注意,插槽(黑色部分)是可以拔起的,需要拔起插槽再插入线带(千万别大力出奇迹直接怼进去了)安装时,记得树莓派断电关机,手摸摸金属物体去去静电2.驱动配置打开cmd打开配置文件(我使用了vim打开,没安装vim可能会报错)sudo vim /etc/modules在末尾添加下述内容,保存退出bcm2835-v4l2使能摄像头树莓派重启,ok

2021-04-20 16:36:03 1575

原创 树莓派学习(一):无外接显示器情况下给白板树莓派安装Raspbian系统,开启VNC远程桌面

最近对图像识别有些兴趣打算树莓派上玩玩opencv记录下学习过程注:树莓派官方软件是兼容所有硬件型号的所以小白不用纠结自己的板子型号,找到教程跟着走就行,最多一些小差别(个人经验)正文1.读卡器插入TF卡通过usb连上电脑有些电脑可能识别不出tf卡完整的大小,无妨2.使用SD Card Formatter进行格式化(注意盘符!!!)官方下载格式化完成3.使用Win32DiskImager将下载好的系统镜像写入SD卡注:写入时请关闭其他占用该SD卡的程序,如打开的文件夹等Wi

2021-04-18 11:55:35 474 2

原创 使用Arduino开发ESP32(三十):EEPROM读写,附上随机数写入读取例程

代码/* EEPROM(带电可擦可编程只读存储器) 写入 将随机数存储进EEPROM. 这些数据会保存在EEPROM中,esp32掉电重启后依然存在,并可被其他例程调用*/#include "EEPROM.h"// we're going to write to next)int addr = 0; //EEPROM当前地址#define EEPROM_SIZE 64 //64字节 申请空间的大小必须为4的倍数,如:23则会更改成24void setup(

2021-04-03 14:53:25 3915 1

原创 从零开始搭建一个8位计算机系列(四):利用LM555芯片构建单步脉冲

单步脉冲当我们需要一步一步调试查看计算机的运行时,受人为控制的单步脉冲就有必要了最常见也是最简单的方法是:电源接按钮,通过按下按钮来输出波形,但该方法有个缺点在于,闭合时,波形可能会产生抖动。用lm555搭建一个单步脉冲可以有效防止按键抖动。电路图Multisim模拟对上章电路稍作修改(将TRI引脚单独拉出来接按钮,这里用开关代替,并去掉电容放电电阻RB)即可得到单步脉冲电路。运行的波形如图,当开关闭合,输出高电平,且期间反复闭合开关都不会影响高电平的持续时间(固定的高电平时间),可通过

2021-01-25 20:30:21 1433

原创 从零开始搭建一个8位计算机系列(三):利用LM555定时器构建稳定的时钟脉冲

RS触发器(锁存器),又称SR触发器介绍RS锁存器分为两种或非门锁存器真值表与非门锁存器真值表LM555芯片芯片结构简图及引脚1脚是接地的2脚是作为触发的输入端口3脚是作为输出的端口,能够在输出的状态能够得以控制,3脚的输出感受器上接到信号后,会使6脚和2脚得以控制。当2脚的触发器感受到高于A1的输入,就会归置到复位的状态。其中这八个脚中,2脚和6脚是作为互补脚,2脚对低于电压具有平起的作用,对高雅没有任何的作用,在这个时候,3脚是处于高压的电平状态;6脚是一个阈值端口,对

2021-01-24 22:43:15 2571 1

原创 从零开始搭建一个8位计算机系列(二):搭建4位全加器

正文好像也没什么要描述的,开门见山吧1位全加器U5,U6表示要相加的两个1位二进制数的输入U7代表进位,表示前一1位全加器是否有进位(这里使用了手动输入)他们的状态共有四种:U5 U6 U7 结果 是否进位0 0 1 0 00 1 1 0 11 0 1 0 11 1 1 1 1根据上述逻辑表,我们使用了两个异或门计算结果,两个AND及一个OR计算是否存在进位。构成了这个最基本的全加器上图所示,红灯亮表示结果为1,黄灯亮表示存在进位4位全加器(逻辑门版本)从上到下,低

2021-01-19 18:04:11 1443 2

原创 从零开始搭建一个8位计算机系列(一):使用三极管实现基础逻辑门

前言很久没有更新,最近几月在跟着做烟感项目,从看代码,到AD画板。这些内容感觉没太大必要写博客,同类文章比比皆是,解释也很繁琐,就咕了好几个月,下定决心开个新坑,趁着寒假的功夫,搭一个8位计算机实践下。逻辑门逻辑门是组成计算机硬件系统的最基本结构,也是本篇内容,我选用NPN三极管实现我们将E接地,C接高电平,根据NPN三极管的电气特性,B接高电平则CE导通,B接地则CE断路,这就可以表示计算机0,1两种状态了。Multisim14仿真软件实现逻辑门Multisim14是一款对数字、模拟

2021-01-19 17:45:40 2068

原创 工程实践:基于C/C++的学生账目管理系统(个人账本管理系统)

前言如题,IDE使用的VC++6.0(上古软件了)帮朋友完善修改了下工程实践,各种错误bug还是搞了几个小时,想了想还是发布出来,供大家参考虽说程序使用了C++,但实际上用到的并不多,基本上是用C的模式写的。工程结构简单,一个.h文件,一个.cpp文件,仅此我会将代码贴在下方,也会提供一个完整打包的压缩包链接:程序打包下载题目要求运行效果:登录/注册账目文件导入/手动输入账目查询账务统计测试内容过多,就不一一贴出来了请自行运行测试注意程序运行过程中会生成四个txt文

2020-11-29 13:46:32 3716 2

原创 Linux学习(二):Ubuntu上基于VS Code的C/C++环境搭建

前言RT,为了程序运行调试方便,我选择VS Code这款IDE,讲讲踩过的坑一、安装VS Code1.下载deb安装包deb包下载以下指令安装dpkg -i package.deb Linux安装deb安装包dpkg -l | grep package 条件查询grep -r -n name 本地路径查询文件name| 管道:将前一个查询结果输出给后一个条件使用安装完毕2.安装扩展插件3.配置launch.json和tasks.jsonlaunch.json{ "ve

2020-11-04 18:54:46 175

原创 Linux学习(一):安装Ubuntu虚拟机,编译运行第一条C程序

一、安装Ubuntu虚拟机安装过程可参考VMware Ubuntu安装详细过程(非常靠谱)补充:上述帖子略了几步没说,我补充下我直接下载的ubuntu桌面版1.打开虚拟机设置2.选择CD/DVD设备一项,路径选中你下载的Ubuntu iso镜像文件即可,没CD设备请自行设置添加3.运行虚拟机编译运行C代码1.打开终端(shift+ctrl+T)输入指令sudo apt install gcc安装编译器2.自建c程序文件(建立文档,写代码,重命名和windows差不多)3.

2020-11-04 13:28:45 760

原创 使用Arduino开发ESP32(二十九):WiFismartconfig,一键配网,又名快连

前言目前流行的wifi配置模式一般有以下2种:1:智能硬件处于AP模式,手机用于station模式,手机连接智能插座的AP后组成局域网,手机发送需要连接路由的SSID及密码至智能插座,智能硬件主动去连接指定路由后,完成连接2:一键配置(smartconfig)模式:智能硬件处于混杂模式下,监听网络中的所有报文;手机APP将SSID和密码编码到UDP报文中,通过广播包或组播报发送,智能硬件接收到UDP报文后解码,得到正确的SSID和密码,然后主动连接指定SSID的路由,完成连接以上引述:wifi一键配

2020-09-23 16:30:29 5635

原创 使用Arduino开发ESP32(二十八):WiFiProvisioning 官方说明文档自翻

## 官方文档(自行翻译)Provisioningfor Arduino 基于Arduino的配置This sketch implements provisioning using various IDF componentsIntroductions 描述This example allows Arduino user to choose either BLE or SOFTAP as a mode of transport, over which the provisioning relate

2020-09-22 18:47:46 2070 2

原创 使用Arduino开发ESP32(二十七):WiFiMulti

前言函数相关WiFiMulti::addAPbool WiFiMulti::addAP(const char* ssid, const char *passphrase)功能:添加WiFi信息参数1:ssid,即wifi名称参数2:passphrase,即wifi密码返回值:成功为true,失败则falseWiFiMulti::runuint8_t WiFiMulti::run(uint32_t connectTimeout)功能:筛选并连接给出表中的wifi(完整代码我会放在文末)

2020-09-21 19:46:08 3993 2

原创 使用Arduino开发ESP32(二十六):WiFiClientEvents例程及从互联网上实时获取当前时间功能

前言在看例程之前需要了解的一些函数WiFi.hostByName/** * Resolve the given hostname to an IP address. * @param aHostname Name to be resolved * @param aResult IPAddress structure to store the returned IP address * @return 1 if aIPAddrString was successfully

2020-09-20 20:40:36 1775 3

原创 使用Arduino开发ESP32(二十五):WiFiClientEvents例程

前言:在看代码前,你所需要了解的几个函数:WiFi.onEvent()官方文档里,该函数的描述/** * set callback function * @param cbEvent WiFiEventCb * @param event optional filter (WIFI_EVENT_MAX is all events) */功能:设置回调函数有两个参数:cbEvent(WiFiEventCb)//这个参数我没懂event(可选过滤器,值为WIFI_EVENT_MAX 表示

2020-09-17 21:36:59 2793 1

原创 使用Arduino开发ESP32(二十四):WiFi_AP Server例程,

前言官方例程原名叫做WiFiAccessPpoint,我改的更贴切点代码和SimpleWiFi Server例程形似它们所要达成的功能也是一样的二者之间的区别是,SimpleWiFi Server是和用户处于同一wifi网络下,然后二者通信,WiFi_AP Server是esp32自己创建wifi网络,然后用户连接再通信其他无了。。。想了解例程运行流程的,可以看看我的SimpleWiFi Server这篇博客代码/* WiFiAccessPoint.ino creates a WiFi

2020-09-16 15:42:43 3322

原创 使用Arduino开发ESP32(二十三):WiFi_Client Basic例程

前言:鉴于项目需要,决定把wifi类的官方例程全看一遍,并同步更新到博客上代码:/* * 该例程向一个TCP服务器发送信息 * */#include <WiFi.h>#include <WiFiMulti.h>WiFiMulti WiFiMulti;void setup(){ Serial.begin(115200); delay(10); // 连接wifi WiFiMulti.addAP("wifi名称", "wifi

2020-09-15 12:18:39 2571

原创 使用Arduino开发ESP32(二十二):SimpleWiFiServer例程

本例程脱胎自官方例程除翻译之外,还做了些许代码修改/* 使用Wifi网页服务来控制开关灯 一个简单的网络服务,让你可以通过网页控制IED。 此例程将打印的的WiFi模块(一旦连接)的ip地址到串行监视器。 你可以在浏览器中访问该ip地址来打开和关闭LED。 访问的网页地址格式如下: http://esp32的ip地址/H 开灯 http://esp32的ip地址/L 关灯 This example is written for a network using WPA encry

2020-08-29 20:56:07 2222

原创 使用Arduino开发ESP32(二十一):WiFiBlueToothSwitch例程,按键切换esp32为蓝牙或wifi模式

之前写项目正好卡在这个地方,结果发现了这个官方例程顺带就写篇博客虽说是按键切换模式,但官方例程并未使用中断代码// 演示如何在wifi和蓝牙模式之间切换,或者同时使用// 按键绑定在GPIO 0 和 GND之间,模式也随之按下而切换#include "WiFi.h"#define STA_SSID "wifi名称"#define STA_PASS "wifi密码"#define AP_SSID "Esp32"enum { STEP_BTON, STEP_BTOFF, STEP_S

2020-08-28 10:03:53 2948

原创 学习FreeRTOS之路(八):消息队列及其常用函数介绍

消息队列1.消息队列的基本概念队列又称消息队列,是一种常用于任务间通信的数据结构,队列可以在任务与任务间、中断和任务间传递信息,实现了任务接收来自其他任务或中断的不固定长度的消息,任务能够从队列里面读取消息,当队列中的消息是空时,读取消息的任务将被阻塞,用户还可以指定阻塞的任务时间 xTicksToWait,在这段时间中,如果队列为空,该任务将保持阻塞状态以等待队列数据有效。当队列中有新消息时,被阻塞的任务会被唤醒并处理新消息;当等待的时间超过了指定的阻塞时间,即使队列中尚无有效数据,任务也会自动从阻塞

2020-08-26 13:55:01 2234

原创 学习FreeRTOS之路(七):任务管理及常用函数方法介绍

任务的基本概念从系统的角度看,任务是竞争系统资源的最小运行单元。FreeRTOS 是一个支持多任务的操作系统。在 FreeRTOS 中,任务可以使用或等待CPU、使用内存空间等系统资源,并独 立 于 其 它 任 务 运 行 , 任 何 数 量 的 任 务 可 以 共 享 同 一 个 优 先 级 , 如 果 宏configUSE_TIME_SLICING 定义为 1,处于就绪态的多个相同优先级任务将会以时间片切换的方式共享处理器。简而言之: FreeRTOS 的任务可认为是一系列独立任务的集合。每个任务在

2020-08-18 19:23:55 986

原创 学习FreeRTOS之路(六):FreeRTOS 的启动流程

使用FreeRTOS的常用编程思路第一种:万事俱备法在 main 函数中将硬件初始化,RTOS 系统初始化,所有任务的创建这些都弄好,最后在启动任务调度器1 int main (void)2 {3 /* 硬件初始化 */4 HardWare_Init(); (1)5 6 /* RTOS 系统初始化 */7 RTOS_Init(); (2)8 9 /* 创建任务 1,但任务 1 不会执行,因为调度器还没有开启 */ (3)10 RTOS_TaskCreate(Task1);11 /*

2020-08-16 09:01:54 4179 1

原创 学习FreeRTOS之路(五):使用FreeRTOS 静态与动态创建任务

静态创建1.定义任务函数(一个无限循环且不带返回值的函数)任务必须是一个死循环,否则任务将通过 LR 返回,如果 LR 指向了非法的内存就会产生 HardFault_Handler,而 FreeRTOS 指向一个死循环,那么任务返回之后就在死循环中执行,这样子的任务是不安全的。所以避免这种情况,任务一般都是死循环并且无返回值的。如果任务,执行一次之后就进行删除,则不影响系统运行,所以,只执行一次的任务在执行完毕要记得及时删除。任务里面的延时函数必须使用 FreeRTOS 里面提供的延时函数,并不能

2020-08-15 10:57:07 4838 2

原创 学习FreeRTOS之路(四):FreeRTOS内核的一些基础介绍

目前,还是先决定笼统概括一下吧,接下来的笔记将会偏代码应用,之后的运行机制打算新开一个专栏什么是临界段的保护临界段用一句话概括就是一段在执行的时候不能被中断的代码段。在 FreeRTOS 里面,这个临界段最常出现的就是对全局变量的操作,全局变量就好像是一个马桶,你我都可以用,但不能同时使用。那么什么情况下临界段会被打断?一个是系统调度,还有一个就是外部中断。在FreeRTOS,系统调度,最终也是产生 PendSV 中断,在 PendSV Handler 里面实现任务的切换,所以还是可以归结为中断。既

2020-08-14 11:23:10 590

原创 学习FreeRTOS之路(三):任务的定义与任务切换的实现

什么是任务在裸机系统中,系统的主体就是 main 函数里面顺序执行的无限循环,这个无限循环里面 CPU 按照顺序完成各种事情。在多任务系统中,我们根据功能的不同,把整个系统分割成一个个独立的且无法返回的函数,这个函数我们称为任务。 void task_entry (void *parg) { /* 任务主体,无限循环且不能返回 */ for (;;) { /* 任务主体代码 */ } }程序 #include "FreeRTOS.h" #include "task.h"

2020-08-13 16:25:57 908

原创 学习FreeRTOS之路(二):逻辑系统与多任务系统(RTOS)的介绍及区别

裸机系统裸机系统通常分成轮询系统和前后台系统轮询系统:轮询系统即是在裸机编程的时候,先初始化好相关的硬件,然后让主程序在一个死循环里面不断循环,顺序地做各种事情。轮询系统是一种非常简单的软件结构,通常只适用于那些只需要顺序执行代码且不需要外部事件来驱动的就能完成的事情。如果加入了按键操作等需要检测外部信号的事件,用来模拟紧急报警,那么整个系统的实时响应能力就不会那么好了。前后台系统:相比轮询系统,前后台系统是在轮询系统的基础上加入了中断。外部事件的响应在中断里面完成,事件的处理还是回到轮询系统中

2020-08-12 20:21:28 1031

原创 学习FreeRTOS之路(一):RTOS基础介绍,与FreeRTOS的变量类型、命名规范

前言:依照惯例,还是自我发挥几句,ESP32的学习大致告一段落,正如我的博客更新状态,目前正在ESP32项目实践。在裸机系统里,所有的操作都是在一个无限的大循环中实现的。编写代码的过程中,确实觉得功能和功能之间的架构,关系,时序等,单纯的用裸机系统来运行太过麻烦,代码、算法等也很臃肿繁琐。在esp32技术交流群的大触的建议下,我开始接触RTOS(Real Time Operating System 实时操作系统)。顺便开一个新专栏,记录点笔记。以上…基础介绍为什么要学习RTOS?在裸机系统中,

2020-08-12 10:01:47 2767 1

原创 使用Arduino开发ESP32:错误 invalid conversion from ‘void (*)()‘ to ‘TaskFunction_t {aka void (*)(void*)

invalid conversion from 'void ()()’ to 'TaskFunction_t {aka void ()(void*)在使用xTaskCreate()创建任务时,报了上述错误原因也很简单:任务函数的参数格式不能写作Task_example()要这样:Task_example(void* Parameter)在c++里,函数()表示可以接收任何形式的参数而,函数(void* Parameter)才是什么参数都不接受上述方案仅适用于,任务函数不需要外部参数输入的情况

2020-08-11 14:36:33 2585

基于C/C++的学生账目管理系统

基于C/C++的学生账目管理系统,学生工程实践..

2020-11-29

红绿灯.zip 包含源代码及proteus电路图

51单片机:利用单片机的定时器定时,实现十字路口的红黄绿灯交替点亮和熄灭,proteus+keil5

2020-07-18

串口通信:PC发送字符串,统计并返回个数.zip

串口通信例题: PC发送一系列字符串(以$为结束符)给单片机,单片机收到数据后,统计A的个数并返回 包含proteus电路图及c代码 ........................................................................................

2020-07-08

51单片机 时钟、闹钟 源代码及proteus电路图

51单片机 时钟、闹钟 源代码及proteus电路图 实验课自写代码,代码文件名称未改,内容没问题

2020-04-29

空空如也

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

TA关注的人

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