自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

伪NChris的博客

伪NChris的博客

  • 博客(113)
  • 资源 (2)
  • 收藏
  • 关注

原创 Stm32 HAL库 访问内部flash空间

在一些时候,需要存储一些数据,但是又不想接外部的flash,那我们可以知道,其实还有内部的flash可以使用,需要注意的是内部flash,读写次数有限,所以需要控制擦写次数首先使用cubmx生成代码,就是配置时钟和debug口,还有串口信息。

2024-04-07 17:10:46 436

原创 PADS导出元器件的值,并且自动摆放在相对的位置上显示

PS:操作的时候,需要保证 器件有相关值的参数存在,才能进行下一步,这只有在选择单个器件的时候显示,选择多个器件的话就不显示。选择Value ,或者类似的值,配置信息和我的保持一致,就可以出来了。点击右键鼠标,点击选择元器件,鼠标框选全部器件。选择标签,,选择新,点击第三步。在器件上右击,点击特性。

2024-03-28 11:11:04 280

原创 STM32F103 CubeMX 使用USB生成键盘设备

需要注意的是,如果按键松开了,则需要将按键松开的信息发送过去。否则的话会默认按键一直按下。从而产生多余的信息。#include “usbd_hid.h” 文件中的申明文件,修改一下。这里调用函数:USBD_HID_SendReport,发送数据给电脑。配置信息的时候,主要配置了外部时钟,debug口,USB这三个。stm32F103C8T6最小系统板,如下图所示的最简原理图。这部分第一个是因为要调用“usbd_hid”中的函数所以引用。另外也需要使用到usb是这个数据。

2024-03-26 14:26:36 654

原创 STM32+hal+MPU6050读取陀螺仪,温度传感器数据

之前也写过一篇,这边重新使用hal库再写一遍,

2024-03-21 18:42:55 676

原创 STM32F103 CubeMX 使用hal库控制DS18B20

while中的代码就是读取温度信息,然后就直接显示出来就好了。进行了一个初始化,如果不成功就报错,成功的话就继续。代码中使用 PB5 作为信号的连接。需要购买一个DS18B20的模块。添加下面main函数的编写信息,整体结构和正点原子的差不多。在移植的时候做了一些适配。主要需要3断程序的编写。添加18b20 头文件。

2024-03-20 15:34:22 846 1

原创 STM32F103 CubeMX 使用USB生成鼠标设备

下面的计算公式就是对应的鼠标的移动,如果你需要调整移动的方向,则将 ( (ADC0_Value - 2048)) 这个调换位置就可以了,256的参数就是一个经验值,这个值越大,鼠标移动速度越快。第二个字节表示x轴(即鼠标左右移动,0表示不动,正值表示往右移,负值表示往左移,范围-127~127,绝对值对应了移动量大小);第三个字节表示y轴(即鼠标上下移动,0表示不动,正值表示往下移,负值表示往上移,范围-127~127,绝对值对应了移动量大小);这里需要说明一下,鼠标发的数据是4个 8位的数据。

2024-03-15 14:55:48 658

原创 STM32F103 CubeMX 使用IIC 控制 AS5600芯片读取角度信息

I2C_MEMADD_SIZE_8BIT :单个的位数,有16和8两个,这个取决于设备的位数,常见的都是8位。I2C_Buffer_Read :是一个数组的地址,也是C中的指针地址,函数会将这个地址给到相关的值。所以在调试的时候,需要做好相关的观测,还是十分重要的。平行放置磁铁的时候读取的角度比较乱,需要将磁铁竖在下面,才能正常读取到磁铁的信息。后面的jiaodu就是将读取到的数据,进行计算,得到相关的角度信息。这个是芯片内部的寄存器列表,以及对应的功能。不知道是我磁铁的问题,还是芯片的问题,

2024-03-14 14:02:02 462 4

原创 STM32F103 CubeMX 定时器输出PWM控制呼吸灯

使用的cubmx 软件的版本:6.2.0最新版本 6.10(2024年3月11日)

2024-03-11 14:11:31 612

原创 STM32F103 CubeMX ADC 驱动 PS2游戏摇杆控制杆传感器模块

这里时钟配置成了72M,

2024-03-10 15:14:19 576

原创 python 处理B站视频数据,数据存本地

上一个已经通过B站的API,来实现了对数据的读取,这篇文章就是,将数据存储在本地的TXT文件中。PS :数据的格式:时间,ID,标题,数字。还是要吐槽一下b站后台,显示的不炫酷。此功能基本实现对数据的自动统计。实现大概分为三个步骤。

2024-02-28 16:40:26 654

原创 STM32F103 CubeMX IIC学习驱动LED屏幕

使用模块,因为是IIC的练习,买模块的时候需要购买如下图所示的 IIC接口的模块。这里的代码需要注意将控制的代码替换成自己配置的IIC。在屏幕上显示了中文,英文以及图片。头文件 “oledfont.h”main函数需要修改的内容如下。

2024-02-21 16:14:09 448

原创 使用python中的requests模块来实现B站视频数据的抓取

但代码明显不如b站规范,个人还是觉得b站相对友好,有较强的代码规范。如果你需要观察B咱的某个视频的数据,可以通过下面的方式来实现。老实说嘉立创的网站相比较B站,要容易获取很多。附赠一个小彩蛋,获取嘉立创成交订单数量。

2024-01-29 14:43:50 518

原创 VISA 通过USB的接口控制 万用表,指令说明

此篇文章,主要是总结SCPI编程参考,或者一些标准的语句,如何翻译成实际使用的语句。作为一个参考和对照,对初步理解和识别其中的内容尤为重要。如市电50HZ,则持续采样10个正弦波周期,采样速度大约是10HZ 即100ms。第四句 写的对应的则是使用了万用表的自动阻抗模式,自动阻抗能有10G欧姆的输入电阻。第三句 配置万用表的采样速度,10的话就是10个交流电的正弦波周期,先给上控制的代码,第一句则是打开了ID_34461A 这个设备。第二句写的是 需要进行DC的控制。翻译成实际的控制指令就是。

2024-01-26 17:34:25 633

原创 安信可 AI-WB2模组,通过HTTPs 接口使用AT命令,获取B站粉丝数据

笔者在这一块花费了很多的时间,网上还只有野火的模块去获取的,以为此模块是否无这个功能,后来发现还是http相关的信息没有配置正确。因为懒得去做二次开发,就想使用AT指令来实现数据的获取,获取之后,使用单片机来对数据进行,处理和分析。发送指令,这样就可以收到文件的信息,后续直接对串口收到的信息处理就可以了。这边需要注意,区分HTTP和HTTPS的差异,否则就无法正确的读取到信息。连上串口,波特率是115200,注意发送指令后需要回车,指令才能执行。我这边买了一个模组。AT :查看设备工作正常。

2024-01-02 17:23:51 552

原创 C#使用 OpenHardwareMonitor获取CPU或显卡温度、使用率、时钟频率相关方式

代码的功能可以将主板的名称显示出来,还有将第一个CPU的情况显示,可以根据实际情况进行修改。C# 去获取电脑相关的基础信息,还是需要借助 外部的库,我这边尝试了自己去实现它。OpenHardwareMonitor获取CPU的温度和频率需要管理员权限。网上有一些信息,但不太完整,都比较零碎,这边尽量将代码完整的去展示出来。引用–>添加引用—>浏览(选择文件)–>确定。代码中注释掉的部分是循环显示的一个循环逻辑。在没有开权限的时候就是无法使用。

2024-01-02 16:19:34 1632

原创 orcad模块化绘制电路

orcad 的软件可以进行模块化绘制,将几个原理图包装成一个模块,然后直接去复制模块就可以。当我们的板子上需要绘制大量的重复电路的时候,手动去绘制就很浪费时间。最后做完的时候,可以看到位号和页码都有被更新。相对来说大大的简化了原理图的设计麻烦程度。每一个模块都有不同的对应器件位号。下面就是整个的操作流程。

2023-11-28 10:40:57 516

原创 PADS快速调整器件的位号

选择元器件,ctrl+A 全选器件,右击菜单选择特性如下三个信息,确认配置标签信息,如图界面信息,点击应用,器件全部归位

2023-11-13 18:54:22 1019

原创 【Linux】【驱动】设备树下的paltform总线

主要是展示了通过总线上挂载的方式来实现相关的数据读取。实质上就是几个of函数的调用。3.1 主机上使用的指令。

2023-11-12 21:20:45 292

原创 使用C# 编写VISA相关的代码控制 keysight 34461A万用表

软件控制仪器仪表的教程在网上相对比较少,都是一段一段的代码,没有从头开始带初学者来进行操作的一个完整流程,整个方案难度不高,跟着教程走的话,大家都可以开始自己的仪表编程。希望给后来者一些帮助。

2023-11-03 13:49:27 1527 1

原创 【Linux】【驱动】设备树常用 of 函数

test_node_property 这个就包含了设备中的:name,value等信息。应用层的app代码,通过 of函数来读取设备树中记录的信息。test_device_node 这个就是读取到的设备节点。out_values,就是读取出的信息。下面就展示一些of函数的使用方式。ret ,是判断读取是否正常。

2023-10-30 17:15:02 120

原创 【Linux】【驱动】设备树中设备节点的挂载

挂载mnt目录,如果挂载不成功,可能是IP没有配置,或者配置的不成功,修改IP后就可以。设备树对应的文件是100ask_imx6ull_mini.dtb。这里的路径韦东山的教程写的是错的,需要将root改成boot。所以需要在根节点上增加相关的测试代码。我们修改的就是hi如下的代码部分。将三个文件拷贝到对应的目录下。下面的内容就是完整的代码。编译内核以及编译设备树。更新完成后重启开发板。

2023-10-24 00:19:01 399

原创 李沐机器学习环境配置相关

安装GPU版本,我的cuda版本是11.4,装了11.3的。下面连接可以下载不同版本的pytorch。退出 conda 环境。

2023-10-13 17:13:56 400

原创 【Linux】【驱动】平台总线模式platform模型的编写,操作LED灯

文中使用了request_mem_region代码的位置,可能由于已经在系统中声明过,所以会出现报错的问题,后面需要寻找方式去消除。dirver: 则从总线中取数据,取的时候可以检验是否被使用过,取完在去操作。平台总线模式,将设备和驱动进行了区分,据说可以优化代码的可移植性。device:实现对设备寄存器的申明。

2023-09-19 00:21:16 252

原创 【Linux】【驱动】自动创建设备节点

功能 cdev_init()函数用于初始化 cdev 的成员,并建立 cdev 和 file_operations 之间的连接。字符设备注册完以后不会自动生成设备节点。功能 cdev_alloc()函数用于动态申请一个 cdev 内存。格式:mknod 名称 类型 主设备号 次设备号。这里展示了如何自动的方式去创建一个字符类的节点。第一个参数 cdev 的结构体指针。第一个参数 要初始化的 cdev。来验证生成的设备节点是否可以使用。第三个参数 次设备号的数量。cdev 的结构体指针。

2023-08-28 23:47:34 576

原创 【Linux】【驱动】注册字符设备号

define MKDEV(ma,mi) (((ma) > MINORBITS)) //在 dev_t 里面获取我们的主设备号。主设备号和次设备号统称为设备号。备号的主设备号一样,但是次设备号不同,次设备号以 baseminor 为起始地址地址。在之前杂项设备的时候,设备号是固定的,字符设备就需要自己去申请设备号了,

2023-08-28 00:17:16 459

原创 【Linux】【驱动】驱动挂载的时候给驱动传递参数

insmod beep.ko a=1(1)设置驱动的相关参数,比如设置缓冲区的大小(2)设置安全校验,防止我们写的驱动被人盗用参数库中有帮忙声明,不同的参数代表了不同的功能module_param_array(name,type,nump,perm)参数 name 要传递进去参数的名称参数 type 要传递进去参数的类型nump 实际传入进去参数的个数perm 要传递进去参数的读写权限a 就是传递的值,代码中直接去调用a就可以了指令指令这里定义的数组是5,所以传递的参数不能超过5

2023-08-26 10:29:11 467 1

原创 【Linux】【驱动】第一个相对完整的驱动编写

因为linux不允许直接去操作寄存器,所以在操作寄存器的时候就需要使用到函数:ioremap 和iounmap。PS:此代码还有一些不完善的地方,所以在实际的使用中可能会出现一些异常,带之后改正。传递文件,将misc.ko 传到 /home/book/nfs_rootfs/这个章节会讲述去直接控制一个GPIO,高低电平。ioremap 做为地址的声明,如下图使用。iounmap 作为取消声明。来作为寄存器的声明和注销。

2023-08-22 23:01:41 465 1

原创 【Linux】【驱动】应用层和驱动层传输数据

当我们在应用层 write 设备节点的时候,就会触发我们驱动里面 write 这个函数。当我们在应用层 read 设备节点的时候,就会触发我们驱动里面read 这个函数。文件对应的操作有打开,关闭,读写设备节点对应的操作有打开,关闭,读写。read 函数就是实现了read的功能。write就是实现了write的功能。如下两个代码实现了数据的交互。Linux一切皆文件!允许printk输出。

2023-08-16 22:25:12 984

原创 【Linux】【驱动】杂项设备驱动

杂项设备的主设备号是相同的,均为 10,次设备号是不同的。设备号包含主设备号和次设备号,主设备号在 Linux 系统里面是唯一的,次设备号不一定唯一。主设备号可以比做成电话号码的区号。比如北京的区号是 010次设备号可以比作成电话号码。字符设备:IO 的传输过程是以字符为单位的,没有缓冲。块设备:I0 的传输过程是以块为单位的。杂项设备驱动是字符设备驱动的一种,他相对完整的字符驱动来说信息会稍微减少一点。设备号是计算机识别设备的一种方式,主设备相同的就被视为同一类设备。杂项设备是字符设备的一种。

2023-08-15 16:27:09 461

原创 【Linux】【驱动】驱动框架以及挂载驱动

将当前路径下的chrdevbase.ko 文件移动到/home/book/nfs_rootfs/路径。一个驱动可以编译成驱动模块然后挂载到驱动中去,也可以编译到系统中去,下面演示第一种方法。obj-m := chrdevbase.o :表示你编译的文件的名称。KERNELDIR :表示你Linux内核源码的位置。驱动文件名称 chrdevbase.c。如下图表示已经修改成功了。配置全局变量为ARM。

2023-08-12 11:50:26 634

原创 【Linux】【预】配置虚拟机的桥接网卡+nfs

到这 nfs以及网卡就配置好了,网络可能出现,过一会就断掉的情况,可以参考第五条,这个方式配置就可以更正这个问题。

2023-08-06 19:44:10 518

原创 【Linux】【预】配置网络IP,挂载网络目录

ps:关于Windows中的配置IP,因为Windows需要去修改注册表,而且后续开发也完全 可以不配置win的IP,下面就不做讲解。输入如下指令,配置nfs网络,此时主机IP需要是 192.168.5.11。如下显示就是有IP显示了,如果没有的话重启一下网络,有可有IP。先查看开发板的IP有没有被配置,如果没有配置则使用如下指令配置。如下操作,其中的:192.168.252.140就是它的IP。c 点击用户名和密码,即可进入正常的界面,点击进入设置,配置桥接网络的IP。如下就是正常进入界面的样子。

2023-08-06 18:43:36 680

原创 【Linux】【预】配置VSCode阅读和编写Linux驱动的代码环境

vscode在不同的系统中配置应该是相同的,后面有空再做尝试此版本的配置未必完全,但能实现基础的代码跳转的功能,应该可以顺畅的阅读源码,如有错误后续继续更新配置其他工程应该也是相同的,配置好对应的头文件以及编译器的路径即可,有空尝试配置stm32代码环境。

2023-08-06 17:11:39 368

原创 PADS layout 显示叉X怎么取消

有时候,拿到的pads显示了很多的x,非常干扰正常的使用。PADS layout 显示叉X怎么取消。下图就是操作方式了,非常方便,可以试试。下面介绍一种方式,可以去掉x,来显示。

2023-03-22 09:58:59 2827 1

原创 esp32 Python开发快速入门--PWM输出控制呼吸灯

PWM在实际的应用中起着多种多样的作用,可以作为驱动信号去控制电机,输出占空比等,本章只是讲解它的一个简单应用,去控制了LED灯的亮灭led2 = PWM(Pin(2)) #选择输出的PIN led2 . freq(1000) #选择输出的频率 while True : for i in range(0 , 1024) : #选择范围0~1024 led2 . duty(i) #占空比的数值 time . sleep_ms(2) #延时时间。

2023-01-23 15:10:07 793

原创 esp32 Python开发快速入门--WiFi配置

esp32 非常重要的功能就是WiFi的配置,下面代码就是初始化连接WiFi的代码,我在尝试的时候,扫描WiFi有时候会不太灵光,可能是在19的这个版本上带来的bug,后续不知道会不会被优化。

2023-01-21 22:41:02 1109

原创 esp32 Python开发快速入门--环境配置以及点亮LED灯

默认的板子是没有烧录固件的,这边需要在 microPython 官网下载esp32的开发固件。最后固件更新完成会出现 Done的字符,更新固件的时间比较慢。PS:我的USB连接不太好,安装错误了一下,再次点击安装即可。其他点击退出,成功的话会显示链接上设备,以及当前的固件版本。下面链接则是直接esp32的固件,选择最新的即可。Thonny 中点击 运行>>>配置解释器。

2023-01-16 23:15:57 1177

原创 C#使用GetPortNames来发现串口,并且放到指定的下拉框中

下面的代码使用了GetPortNames,获取了串口列表,最后使用语句将最后一个,来显示到combox中去。这个语句将串口的清单添加到列表中去。

2022-12-20 13:36:07 562

原创 C# 调用外部EXE程序,接收exe传递的参数,python打包成exe文件

下面代码实现了调用“KZ.exe”这个文件,同时给 输入4 这个参数CMD中操作如下输出的值则是通过 DCoutput 这个来接收,代码中进行了两次执行exe文件,获取了两次的输出值C# 调用python 执行代码python执行代码的时候需要先布置python的环境,可能会给编程带来一些麻烦思路,C# 调用python.exe ,文件名称,输入的值以下是cmd中的操作python 代码打包成exe安装 PyInstaller 模块成功的话会有如下的显示Successfully inst

2022-12-06 15:41:57 1184

原创 C++入门笔记

主要介绍了函数/方法,在C++ 中的声明等信息。返回值,以及定义等主要讲解了C++ 头文件的一些注意事项如图增加了一个条件,有没有定义LOG.H 文件,如果定义了则是不进行下面的 声明?1.断点:在debug的时候使得代码停止,需要放在有代码的行上2. 调试模式和发布模式在断点上会有一些差异3. 调出界面查看数值,debug后会有一个Autos的界面,其中可以在name上输入值。然后查看4. 查看memory地址下的值,打开窗口后输入address即可。汇编的角度查看if循环中执行的代码主要讲解

2022-11-29 23:43:56 819

SJA1000-STC89c51-can--main (2).zip

基于51单片机的SJA1000通讯的代码,实现了三个设备之间进行通讯。

2021-06-03

csyx86_64-8.1.0-release-posix-seh-rt_v6-rev0.7z

gcc开发,在win10中使用,gcc开发,在win10中使用gcc开发,在win10中使用gcc开发,在win10中使用gcc开发,在win10中使用gcc开发,在win10中使用gcc开发,在win10中使用gcc开发,在win10中使用gcc开发,在win10中使用gcc开发,在win10中使用gcc开发,在win10中使用gcc开发,在win10中使用gcc开发,在win10中使用gcc开发,在win10中使用gcc开发,在win10中使用gcc开发,在win10中使用gcc开发,在win10中使用

2020-02-29

空空如也

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

TA关注的人

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