- 博客(51)
- 收藏
- 关注
原创 stm32f103调试,程序与定时器同步设置
在调试定时器相关代码时,注意到定时器的中断位总是置1,怀疑代码有问题,经过增大定时器的中断时间,发现定时器与代码调试并不同步,这一点对于调试涉及定时器的代码是非常不利的,这里给出keil调试stm32使定时器与代码同步的设置方法。点击下面的use custom SVD file ,然后点击文件选择,粘贴路径进入,选择调试的芯片,这里使用的使stm32f103,所以选择STM32F103xx.SFR,保存后重启keil,
2024-10-03 00:32:59 519
原创 vscode+platformio开发小技巧
使用vscode+platformio开发,具体安装配置文章很多,这里分享一些方便使用的小技巧,让使用体验在不增加学习成本的情况下更加丝滑。
2024-08-01 18:13:38 512 2
原创 树莓派pico入坑笔记,at24c256使用
at24c256,8位非易失存储器,断电后内容不丢失,大小256Kbit=32KB,地址范围0~32767,通过iic进行通信,支持地址通过引脚选择,用来拓展多片存储,本文使用全部置零,支持随机/页写入,但是页写入需要考虑页的大小和地址,违背方便的初衷,故不作展开。里,是官方为at24c32编写的库,默认支持大小32Kbit=4KB,但兼容at24cxx系列,只需要在使用时显式声明大小即可。支持以切片的方式操作,[]内部即为操作的地址,注意单地址的存储空间为8位,所以不要输入0~255以外范围的数据。
2024-07-15 00:07:12 339
原创 树莓派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 1152
原创 树莓派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 474
原创 树莓派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 1100
原创 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 281
原创 树莓派pico入坑笔记,uart使用
在初始化时,使用busio.UART()方法创建uart对象,参数列表为TX,RX ,波特率,可以参考引脚图选择功能引脚。调用circuitpy的busio模块来使用uart,除此以外,spi、iic等要需要使用该模块,使用方法见。收发数据的格式是字节数组,该类型要求数据不可变,因此如果要修改,需要额外新建,然后将其转换为字节数组。然后是注意bytearray方法,它要求输入参数是可迭代对象,建议使用列表。官方的例子简洁,但没有过多其他应用的细节,主要是数据格式,发送数据方面。
2024-06-26 19:28:58 428
原创 树莓派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 298
原创 树莓派pico入坑笔记,快捷键键盘制作
使用usb_hid功能制作快捷键小键盘,定义了6个键,分别是。boot启动程序代码,作用是防止被识别为usb存储设备。需要用到的库,记得复制进单片机存储里面。更多hid设备参考以下教程。然后是main主程序代码。
2024-06-17 18:15:25 827
原创 嵌入式综合实验
综合使用实验开发板上的四个led和usart串口,结合前面学习的gpio、定时器、usart等知识,设计综合实验。实现功能:上位机通过usart通信控制由定时器中断驱动的led灯切换不同闪烁模式,并实现简单的命令提示功能。
2024-06-14 20:32:03 384
原创 kmp算法c++
kmp算法通过next数组使查找失败时减少跳转后比较的次数来优化字符串查找,next数组存储了前缀和后缀相同的位置信息,类似动规,可以存储查找数组的信息来防止重复查找
2024-06-09 17:07:23 523
原创 实验七 动态分区分配方式的模拟
请分别采用首次适应算法和最佳适应算法,对内存块进行分配和回收,要求每次分配和回收后显示出空闲分区链的情况。作业”作业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 189
原创 实验六 作业调度算法模拟
优先权高者优先调度算法与响应比高者优先调度算法十分相似,根据作业的优先权进行作业调度,每次总是选取优先权高的作业优先调度。优先权高者优先调度算法综合考虑了作业执行时间和等待时间的长短、作业的缓急度,作业对外部设备的使用情况等因素,根据系统设计目标和运行环境而给定各个作业的优先权,决定作业调度的先后顺序。FCFS调度算法只片面地考虑了作业的进入时间,短作业优先调度算法考虑了作业的运行时间而忽略了作业的等待时间。该算法仅考虑了作业到达的先后顺序,而没有考虑作业的执行时间长短、作业的运行特性和作业对资源的要求。
2024-06-06 16:51:57 627
原创 实验八 页面置换模拟程序设计
网上找到的程序得到的答案经过手算验证是错的,所以自己实现了一个,具体实现看代码吧,多余的操作已经去掉了。opt和lru算法
2024-06-06 16:45:03 271
原创 素数环_回溯法
围成一个圆环,若其中任意2个相邻的数字相加,结果均为素数,那么这个环就成为素数环。素数环是一个计算机程序问题,指的是将从1到n这n个。
2024-05-28 21:52:30 263
原创 力扣3152. 特殊数组 II
那么就可以通过预处理,对处于同一个区域的数据做标记,在查找时比较范围边界是否在相同区域即可,预处理时间复杂度为O(n),单次查找为O(1),全部查找为O(n),则时间复杂度为O(n)看了大佬的代码,感觉自己写的太丑了,靠直觉写出来的东西,还要有边界的单独处理,这里稍作修改。首先可以通过定义知道如果数组中存在两个范围,范围内符合要求,那么两个范围一定相邻,即0110,可以分为01,10 两个合法区域,且不存在一个合法区域介于两个区域之间。1.暴力,直接遍历每一个要求的区间,每一个区间都检查一次是否符合要求。
2024-05-24 12:58:47 302
原创 动态规划:力扣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 395
原创 c++学习笔记3,继承
指针和引用,允许基类指向或者引用派生类,派生类无法指向或引用基类,但是只能使用基类的方法和成员,因为在编译阶段就会按照指针或者引用的类型进行绑定,如果要实现指针指向的对象不同而使用不同方法,需要用到虚函数。继承方式决定对基类成员的访问权限,基类的私有变量方法派生类不可访问,其他的按派生类与基类的访问范围取最小范围,比如基类protect方法,派生类继承方式为private,则在派生类内为private方法。构造,派生类在构造时顺序是先基类后派生,析构相反,如果基类的方法缺省,派生类可以缺省。
2024-04-16 17:26:47 239
原创 c++学习笔记2,类
拷贝构造函数是构造函数的重载,用来实现一个对象来创键同类对象的,缺省默认添加,默认实现是值拷贝,如果涉及指针,需要自行定义,否则会出现同一个指针删除两次的运行时错误。对象数组的定义和普通数组一样,但是注意如果只有有参构造方法时,需要在定义时进行有参构造,在有构造参数定义时系统不会提供默认无参构造方法。函数在类体内定义默认为内联函数,在外定义要在方法名前加上类的作用域,也可以在前面加上inline在外面定义内联函数。析构函数没有返回类型,在类名前加“~”,在销毁类时调,用来释放申请的空间,缺省默认添加。
2024-04-13 18:53:09 260
原创 c++学习笔记1,c的扩充
a++;//声明给出后,定义不能再给默认值,声明时默认值可以省略形参名默认参数顺序靠右//错误//正确默认值可以是函数,但不能是局部变量//不能是局部变量,在编译时变量不确定int i;
2024-04-13 14:13:26 275 1
原创 树莓派pico入坑笔记,模拟输入输出
模块,同时注意要连接vref和gnd,才能正常使用内部adc(用来采集芯片温度)来正常工作,一开始以为片内的温度传感坏了,具体看下面的例子。树莓派pico引出了3个可用的adc引脚,可以实现0~3.3V采样范围,使用。注意,以上提到的模块均为内置模块。输入,使用adc1(GP27)片内温度有专门的模块,在。
2024-03-25 21:30:50 664
原创 树莓派pico入坑笔记,数字输入输出
circuitpy的board模块类似于micropy的machine模块,保存有引脚信息,shell查询支持引脚如下。数字引脚的输入输出需要用到对应的digitalio模块,可以用来设置引脚输入/出状态,设置引脚初始状态,具体看下面例子。
2024-03-25 21:10:40 292
原创 树莓派pico入坑笔记,一些资源
CircuitPython自带的模块外,其他模块需要按需导入pico硬盘,建议去github复制下载链接使用加速下载,教程网页的下载按钮下载太慢,下面我会附上一份我下载的压缩包。adafruit官方教学,注意以下内容为全英文,可以搭配浏览器翻译按需食用。CircuitPython库和拓展库的详细说明。CircuitPython使用的一些说明。,因为库太多,所以除了。,其他的一些资源压缩包。
2024-03-18 20:51:29 424
原创 树莓派pico入坑笔记,环境搭建
本篇将介绍树莓派pico circuitpython环境搭建以及一些基础使用方法 ,注意以下circuitpython有时简称python。
2024-03-18 20:47:03 1665
原创 树莓派pico入坑笔记,circuitpy和micropy比较
提供了丰富的库和驱动,所有支持的芯片均带有USB外设。CircuitPython:CircuitPython在嵌入式系统中的应用相对较少,但由于其易用性和硬件兼容性,它仍然可以在某些特定场景中发挥重要作用。MicroPython和CircuitPython都是基于Python的微型解释器,用于在小型设备上运行Python代码,但它们各有侧重点和适用场景。硬件兼容性:CircuitPython对Adafruit系列硬件的支持非常出色,提供了丰富的库和驱动,使得开发者可以更容易地与这些硬件进行交互。
2024-03-18 15:32:27 707
原创 树莓派pico入坑笔记,基于Circuitpython
最近入手了一块树莓派pico,黑板的YD RP2040(与原版引脚一致),吸引我的是它支持micropython还有USB 1.1 主机和设备支持(circuitpy基于micropy,由Adafruit赞助,但模块和micropy有区别,并不兼容)。
2024-03-17 20:21:37 474 1
原创 记录一下被自己蠢哭的代码(1)
真就被自己蠢哭了,每次判断需要进行一次探索左右子树深度,O(n2)恐怖的达到了126ms。思路,深度遍历确定所有节点为根节点的子树符合要求。给定一个二叉树,判断它是否是高度平衡的二叉树。的左右两个子树的高度差的绝对值不超过 1。
2024-02-17 21:06:36 399 1
原创 二叉树层序建立、中序线索化(c语言)
使用队列存储每一个节点,每次出队一个节点为其连接子节点,然后子节点入队,这里使用“/”分割字符串。建立后进行中序线索化,推荐看。然后是中序线索树的遍历。
2024-01-05 22:18:00 540 1
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关注的人