- 博客(58)
- 收藏
- 关注
原创 树莓派pico入坑笔记,触摸引脚
实现方法非常巧妙,利用寄生电容充放电以及普通gpio检测电平,只需要外接大电阻下拉就可以低成本实现触摸检测,同时多次采样可以降低误差。
2025-02-03 22:50:02
1147
原创 树莓派pico入坑笔记,睡眠
这是因为 RP2040 休眠模式实际上根本不支持外部时钟源下的 RTC,因此深度睡眠实际上是非常极端的浅睡眠版本,而不是一个独立模式。如果 CircuitPython 处于睡眠状态,唤醒它的警报。RP2040 的轻睡眠模式,虽然效率不如深度睡眠水平,但仍然是一种有用的节能方式,功耗降低超过三分之一。树莓派pico支持浅睡眠和深度睡眠,其中深度睡眠唤醒后将从boot.py开始运行。退出程序并进入深度睡眠,直到被其中一个警报唤醒。如果没有指定警报,微控制器将进入深度睡眠状态,直到复位。
2025-02-03 20:34:24
890
原创 树莓派pico入坑笔记,故障解决:请求 USB 设备描述符失败,故障码(43)
故障不太一样,但是让我注意到我的板子上的蓝色led有时会闪烁一下,这不正常,于是我使用帖子里面通过的固件进行flash覆盖,应该可以覆盖错误的存储信息,也许是存储的boot或者code文件出现了问题。这里提供的固件大小是4mb,我的设备刚好是4mb,所以那个完全覆盖,如果设备不是这个大小的,可以参考上面的帖子,自行编译一个固件,或者使用其他的flash覆盖工具。一开始以为是坏了(磕碰在所难免),但是按boot进入下载模式,可以识别并成功烧录固件,这说明硬件是好的,故障应该出在软件上面。
2025-02-03 16:56:58
594
原创 编译原理实验 —— 四则运算的词法、语法、语义分析实现
本次实验的核心目标,是构建一个能对简单程序设计语言子集进行词法、语法和语义分析的程序,聚焦于四则运算表达式。通过亲手实践,我期望能深入理解编译系统的底层运作机制,验证课堂上学到的理论知识,同时提升自己的编程、算法运用和问题解决能力。附完整文档下载。
2025-01-26 12:06:18
650
原创 微机原理与接口技术期末大作业——4位抢答器仿真
在微机原理与接口技术的学习旅程中,期末大作业成为了检验知识掌握程度与实践能力的关键环节。本次我选择设计并仿真一个 4 位抢答器系统,通过这个项目,深入探索 8086CPU 及其接口技术的实际应用。附完整压缩包下载。
2025-01-26 11:40:26
807
原创 树莓派pico入坑笔记,SPI使用
这里写入和读取都是通过发送数据实现,也就是说,把发送和接收引脚短接进行实验时,使用write和readinto都是不能看到实验现象的,这和spi通信的特点有关,在读取接收的数据时,是写入数据发送,这样就可以接收到从机发送的数据,所以是读取的从机还没有发送的数据,而使用write_readinto就可以看到通信实验现象,因为它同时进行写入和读取操作。收发数据的格式是字节数组bytearray,该类型要求数据不可变,因此如果要修改,需要额外新建,然后将其转换为字节数组。传递的方式被切片,读取的字节数将是。
2025-01-22 10:51:02
919
原创 8086+8255控制引脚输入输出仿真,Proteus
作者因为课设第一次使用proteus进行8086的仿真,所以这里记录一下需要注意的东西1.proteus里面,标号是一种逻辑连接的工具,两个引脚连接的导线有一样的标号时,仿真就认为两个引脚连接在同一个导线上,这可以简化接线,方便设计和仿真具体操作是鼠标放在导线上,右键选择添加网络标号2.8086的BUS,给BUS引出并标号,就可以在其他器件的引脚导线上通过标号连接对应的数据位,比如,这里设置BUS位AD[0..15],意思是BUS上有16位,每一位的标号是ADi(i=0,1,..15)
2024-12-17 12:37:58
1277
原创 stm32f103调试,程序与定时器同步设置
在调试定时器相关代码时,注意到定时器的中断位总是置1,怀疑代码有问题,经过增大定时器的中断时间,发现定时器与代码调试并不同步,这一点对于调试涉及定时器的代码是非常不利的,这里给出keil调试stm32使定时器与代码同步的设置方法。点击下面的use custom SVD file ,然后点击文件选择,粘贴路径进入,选择调试的芯片,这里使用的使stm32f103,所以选择STM32F103xx.SFR,保存后重启keil,
2024-10-03 00:32:59
608
原创 vscode+platformio开发小技巧
使用vscode+platformio开发,具体安装配置文章很多,这里分享一些方便使用的小技巧,让使用体验在不增加学习成本的情况下更加丝滑。
2024-08-01 18:13:38
741
3
原创 树莓派pico入坑笔记,at24c256使用
at24c256,8位非易失存储器,断电后内容不丢失,大小256Kbit=32KB,地址范围0~32767,通过iic进行通信,支持地址通过引脚选择,用来拓展多片存储,本文使用全部置零,支持随机/页写入,但是页写入需要考虑页的大小和地址,违背方便的初衷,故不作展开。里,是官方为at24c32编写的库,默认支持大小32Kbit=4KB,但兼容at24cxx系列,只需要在使用时显式声明大小即可。支持以切片的方式操作,[]内部即为操作的地址,注意单地址的存储空间为8位,所以不要输入0~255以外范围的数据。
2024-07-15 00:07:12
419
原创 树莓派pico入坑笔记,esp01/01s使用
AT+CIPSTART=4,"UDP","192.168.4.1",1113,1113,0,和该ip地址建立udp连接,该链接id设置为4(0~4),本地udp端口设置为1113,远端udp端口为1113,固定连接模式0。AT+CWSAP="ESP","1234567890",5,3,建立wifi,参数分别时WiFi名称、密码、信道号,加密方式,后两个参数默认使用5和3即可,此外还有其他参数,这里用不到,具体含义和功能见官网。使用硬件为esp01,01s和01在使用上没有差别,故使用方法通用。
2024-07-13 18:40:31
1350
原创 树莓派pico入坑笔记,dht11使用及温湿度表制作
dhtDevice = adafruit_dht.DHT11(board.GP28)选择一个引脚作为数据读取引脚。dht11支持3~5v供电,所以可以使用vout引脚对它供电,3.3v引脚用来给屏幕供电,不需要额外拓展引脚。使用circuitpython8.x环境,硬件dht11,电压范围3~5v。显示时注意每次刷新需要清空上一次的内容,否则会出现像素糊在一起的情况。用到的库adafruit_dht,需要导入pico才能使用,在。其他的是异常处理,输出异常信息的,可以不用加。进阶玩法,显示信息的温湿度计。
2024-07-11 15:49:07
604
原创 树莓派pico入坑笔记,ssd1306使用
text(string, x, y, color, *, font_name='font5x8.bin', size=1)将文本以可变大小放置在起点为(x,y)的屏幕上,文本大小size缺省值为1,字体库font_name缺省为font5x8,文本内部支持转义字符’\n'换行。circuitpython8.x使用iic接口驱动四线1306屏幕,屏幕参数128x64,由于屏幕是单色,所以衍射只用两种,程序涉及的颜色参数统一为:1白色,0黑色。pixel(x, y, color)将指定的像素设置为给定的颜色。
2024-07-11 00:24:02
1290
原创 stm8玩耍日记1
使用的stlink如图,线序是RESET GND SWIM VCCIN,注意这里的vccin是输入,要和3.3v连接,是没有输出能力的,而且一定要接上,可以从上面的jtag接口取电,其他类型的stlink的3.3是对外供电的,这里要注意。stm8L051f3配置:8k flash,1k ram,256 eeprom,1~16MHz时钟,最大17个GPIO,1个uart,1个spi,1个i2c,1个12位ADC最大10路通道,3.3v低功耗。写在前面,如题所示,这是一个stm8L051F3的玩耍记录。
2024-07-04 21:58:32
315
原创 树莓派pico入坑笔记,uart使用
在初始化时,使用busio.UART()方法创建uart对象,参数列表为TX,RX ,波特率,可以参考引脚图选择功能引脚。调用circuitpy的busio模块来使用uart,除此以外,spi、iic等要需要使用该模块,使用方法见。收发数据的格式是字节数组,该类型要求数据不可变,因此如果要修改,需要额外新建,然后将其转换为字节数组。然后是注意bytearray方法,它要求输入参数是可迭代对象,建议使用列表。官方的例子简洁,但没有过多其他应用的细节,主要是数据格式,发送数据方面。
2024-06-26 19:28:58
615
原创 树莓派pico入坑笔记,mpy文件制作
使用方法,将py文件和工具放到同一个文件夹里,然后再该文件夹下打开cmd窗口(右键-在在终端打开),输入 .\mpy-cross.static-x64-windows-8.0.3.exe .\xxx.py,xx.py就是用来生成mpy的源文件,在输入命令时打入前几个字符后按TAB键可以自动补全,回车即可看到生成的mpy文件,像普通模块一样导入使用即可。因此,为了减小代码存储空间,可以将代码预处理,转换成不可读的字节码文件,它移除了源代码中的空白、注释和格式等不影响执行的内容。
2024-06-17 20:35:05
390
2
原创 树莓派pico入坑笔记,快捷键键盘制作
使用usb_hid功能制作快捷键小键盘,定义了6个键,分别是。boot启动程序代码,作用是防止被识别为usb存储设备。需要用到的库,记得复制进单片机存储里面。更多hid设备参考以下教程。然后是main主程序代码。
2024-06-17 18:15:25
1027
原创 嵌入式综合实验
综合使用实验开发板上的四个led和usart串口,结合前面学习的gpio、定时器、usart等知识,设计综合实验。实现功能:上位机通过usart通信控制由定时器中断驱动的led灯切换不同闪烁模式,并实现简单的命令提示功能。
2024-06-14 20:32:03
493
原创 kmp算法c++
kmp算法通过next数组使查找失败时减少跳转后比较的次数来优化字符串查找,next数组存储了前缀和后缀相同的位置信息,类似动规,可以存储查找数组的信息来防止重复查找
2024-06-09 17:07:23
530
原创 实验七 动态分区分配方式的模拟
请分别采用首次适应算法和最佳适应算法,对内存块进行分配和回收,要求每次分配和回收后显示出空闲分区链的情况。作业”作业1申请130KB“格式 1 1 130。这里假设申请模式为1,释放为2。•作业1申请130KB。•作业3申请100KB。•作业4申请200KB。•作业3释放100KB。•作业1释放130KB。•作业5申请140KB。•作业2申请60KB。•作业2释放60KB。•作业6申请60KB。•作业7申请50KB。•作业6释放60KB。
2024-06-06 16:58:44
221
原创 实验六 作业调度算法模拟
优先权高者优先调度算法与响应比高者优先调度算法十分相似,根据作业的优先权进行作业调度,每次总是选取优先权高的作业优先调度。优先权高者优先调度算法综合考虑了作业执行时间和等待时间的长短、作业的缓急度,作业对外部设备的使用情况等因素,根据系统设计目标和运行环境而给定各个作业的优先权,决定作业调度的先后顺序。FCFS调度算法只片面地考虑了作业的进入时间,短作业优先调度算法考虑了作业的运行时间而忽略了作业的等待时间。该算法仅考虑了作业到达的先后顺序,而没有考虑作业的执行时间长短、作业的运行特性和作业对资源的要求。
2024-06-06 16:51:57
699
原创 实验八 页面置换模拟程序设计
网上找到的程序得到的答案经过手算验证是错的,所以自己实现了一个,具体实现看代码吧,多余的操作已经去掉了。opt和lru算法
2024-06-06 16:45:03
299
原创 素数环_回溯法
围成一个圆环,若其中任意2个相邻的数字相加,结果均为素数,那么这个环就成为素数环。素数环是一个计算机程序问题,指的是将从1到n这n个。
2024-05-28 21:52:30
289
原创 力扣3152. 特殊数组 II
那么就可以通过预处理,对处于同一个区域的数据做标记,在查找时比较范围边界是否在相同区域即可,预处理时间复杂度为O(n),单次查找为O(1),全部查找为O(n),则时间复杂度为O(n)看了大佬的代码,感觉自己写的太丑了,靠直觉写出来的东西,还要有边界的单独处理,这里稍作修改。首先可以通过定义知道如果数组中存在两个范围,范围内符合要求,那么两个范围一定相邻,即0110,可以分为01,10 两个合法区域,且不存在一个合法区域介于两个区域之间。1.暴力,直接遍历每一个要求的区间,每一个区间都检查一次是否符合要求。
2024-05-24 12:58:47
325
原创 动态规划:力扣LCR 188. 买卖芯片的最佳时机
动规,每一次交易的利润可以看作当前交易利润和前一次交易利润的最大值,当前交易利润为当前价格和之前最低价格的差,即DP[I]=MAX(DP[I-1], prices[i]-mincost),DP[pricesSize-1]即为所求。在第 5 天(芯片价格 = 3)买入,在第 6 天(芯片价格 = 10)卖出,最大利润 = 10 - 3 = 7。在第 3 天(芯片价格 = 2)买入,在第 4 天(芯片价格 = 9)卖出,最大利润 = 9 - 2 = 7。时间复杂度O(n),空间复杂度O(1)
2024-05-11 11:56:55
448
原创 c++学习笔记3,继承
指针和引用,允许基类指向或者引用派生类,派生类无法指向或引用基类,但是只能使用基类的方法和成员,因为在编译阶段就会按照指针或者引用的类型进行绑定,如果要实现指针指向的对象不同而使用不同方法,需要用到虚函数。继承方式决定对基类成员的访问权限,基类的私有变量方法派生类不可访问,其他的按派生类与基类的访问范围取最小范围,比如基类protect方法,派生类继承方式为private,则在派生类内为private方法。构造,派生类在构造时顺序是先基类后派生,析构相反,如果基类的方法缺省,派生类可以缺省。
2024-04-16 17:26:47
247
原创 c++学习笔记2,类
拷贝构造函数是构造函数的重载,用来实现一个对象来创键同类对象的,缺省默认添加,默认实现是值拷贝,如果涉及指针,需要自行定义,否则会出现同一个指针删除两次的运行时错误。对象数组的定义和普通数组一样,但是注意如果只有有参构造方法时,需要在定义时进行有参构造,在有构造参数定义时系统不会提供默认无参构造方法。函数在类体内定义默认为内联函数,在外定义要在方法名前加上类的作用域,也可以在前面加上inline在外面定义内联函数。析构函数没有返回类型,在类名前加“~”,在销毁类时调,用来释放申请的空间,缺省默认添加。
2024-04-13 18:53:09
276
原创 c++学习笔记1,c的扩充
a++;//声明给出后,定义不能再给默认值,声明时默认值可以省略形参名默认参数顺序靠右//错误//正确默认值可以是函数,但不能是局部变量//不能是局部变量,在编译时变量不确定int i;
2024-04-13 14:13:26
289
1
原创 树莓派pico入坑笔记,模拟输入输出
模块,同时注意要连接vref和gnd,才能正常使用内部adc(用来采集芯片温度)来正常工作,一开始以为片内的温度传感坏了,具体看下面的例子。树莓派pico引出了3个可用的adc引脚,可以实现0~3.3V采样范围,使用。注意,以上提到的模块均为内置模块。输入,使用adc1(GP27)片内温度有专门的模块,在。
2024-03-25 21:30:50
811
circuitpython的esp01/01s库,适用于树莓派pico,circuitpython8.x版本,用于udp单链接
2024-07-13
circuitpython,ssd1306单色oled,显示中文显示库,树莓派pico,circuitpython8.x
2024-07-10
stm8固件库、stm8教程合集,IAR用于开发stm8的官方固件库,stm8教程资源整理
2024-06-27
mpy-cross.static-x64-windows-8.0.3.exe
2024-06-17
circuitpytho示例库adafruit-circuitpython-bundle-examples-20240307
2024-03-18
adafruit-circuitpython-bundle-8.x-mpy-20240307.zip
2024-03-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人