This site is both a personal blog and my knowledge management page. I regularly archive some of my personal study notes and only display a few recent projects on the homepage.
本站既是个人博客,也是我的知识管理页面。我会定期归档一些个人学习笔记,仅在主页展示少数近期项目。
If you are not familiar with the directory of this site, you can refer to the tree diagram below or press Ctrl+K to search and quickly locate the article you need:
题目描述
You are given a string s and an array of strings words. All the strings of words are of the same length.
我知道终有一天我会再也忍受不了Windows,那时linux就是我唯一的选择。调研了众多发行版后,我决定把Arch用作日常使用。但是相比于debian系,Arch的门槛高了非常多,尤其是它臭名昭著的滚挂现象。所以我不可能直接切换到Arch环境,而是要经历一段时间的适应。正好,上个月实验室给了我一台ThinkPad老爷机,现在它作为ubuntu服务器的使命已经结束,正好被我拿来当作过渡机适应Arch。
我将从安装系统开始逐一记录使用Arch时碰到的一切问题,以作完全切换系统后的参考。
实验目的
了解时钟的基本原理,利用定时器做到每隔一秒产生一次中断,在屏幕上显示计数+1,实现简单秒表功能。并且通过按钮接入外部时钟,用定时器的方式实现手动计数器。
原理
定时器其实就是计数器。STM32有三种:高级、通用和基本定时器,从前到后包含后者全部功能。其中高级定时器在APB2外设总线,性能更强。另两个都在APB1总线。
基本定时器
基本定时器只有定时中断和主模式触发DAC:

实验目的
了解外部中断的原理、作用并熟悉其c语言实现。本次实验做一个简易计数器,当按下按键时计数器的值+1,并实时显示在oled屏上。
实验过程
硬件部分
如图接线:

硬件部分
本次实验使用esp32c3 super mini开发板和0.96寸双色oled屏,按图接线:

注意供电接3v3不要接5v。
软件部分
如果用Arduino控制,需要额外安装三个适配SSD1306芯片的驱动库:Adafruit SSD1306 - v2.4.0、Adafruit GFX Library - v1.12.1、Adafruit BusIO - v1.17.4,可以直接打开PIO Home -> Liararies搜索安装。
前言
概述
本项目实现了一个最最基本的Web蓝牙应用:网页端可以用按钮控制开发板上LED灯的亮灭。这个功能看似简单,实际上它具备了一个物联网系统的所有功能:通过Web网页控制蓝牙设备,无论多复杂的物联网蓝牙系统都是这样,只是多加了一些服务功能而已。
思路
大致做法是控制设备(本项目中是开着网页的电脑)启动一个蓝牙信道连接到被控设备(本项目中的开发板)。之后,控制设备可以通过这个信道把数据传给被控设备。
按一下按钮,传过去一个0x01,被控设备通过回调接收,收到以后就把GPIO设为高电平,就是开灯;相反传0x00就设为低电平,关灯。当然,被控设备也可以向控制设备反馈,即完成GPIO切换后把是否成功和当前状态发给前端。
