- 博客(88)
- 收藏
- 关注
原创 CH32V307以太网学习
WCHNET_Init 为库初始化函数。关于 WCHNET_Init 函数使用方法请参考 3.2。对 WCHNET 初始化后,应用层需要开启以太网中断,并在相应的中断函数中调用中断服务函数另外库函数需要外部提供时钟,用于给时间相关的任务提供时钟源,例如刷新 ARP 列表,TCP 超时等,通过调用 WCHNET_TimeIsr 函数更新时间,该函数传递的参数为最近一次调用的时间差值,单位毫秒。综上,在调用 WCHNET_Init 进行库初始化后,应用层需要调用 ETH_Init 初始化以太网物。
2025-12-10 17:31:06
757
原创 FreeRTOS中断管理
中断是CPU的一种常见特性,中断一般由硬件产生,当中断发生后,会中断CPU当前正在执行的程序而跳转到中断对应的服务程序种去执行,ARM Cortex-M 内核的 MCU 具有一个用于中断管理的嵌套向量中断控制器(NVIC,全称:Nested vectored interrupt controller)。的NVIC最大可支持256个中断源,其中包括16个系统中断和240个外部中断。然而芯片厂商一般情况下都用不完这些资源,以正点原子的战舰开发板为例,所使用的芯片就只用到了。
2025-10-18 10:51:05
759
原创 USB通讯学习
我是小白,在以后使用usb的过程中我会不断地去更新补充这篇博客,分享如何将usb设置为cdc与上位机进行通讯代码框架一共有三个文件ch32x035_usbfs_device.c ------------------------USB驱动相关ch32x035_desc.c---------------------------USB描述符相关app_usb.c --------------------用户app,usb数据发送函数,初始化函数app_usb.h。
2025-10-13 13:07:23
1121
原创 基于沁恒微电子CH32V307单片机使用
方法一:在编译器上创建一个工程,将官方的SRC文件夹复制过来,将创建Ld文件夹下的ld文件覆盖掉官方SRC的ld文件,这样做不用修改flash和RAM的大小,进入工程,将所有的文件路径重新进行修改。方法二:不复制src文件夹,用自己的。再将额外需要的添加进来,比如以太网库。在编辑器中添加新增库路径即可。
2025-07-23 16:05:42
638
原创 PCB硬件电路设计_pcb布线设计
这些电路都会非常接近MCU,他们的可靠性决定了MCU能否正常工作。外围电路,为了布线整齐美观,尽量避免打过多的通孔。在布局的时候走线的顺序和元器件顺序尽可能的保持一直避免走线交叉。
2025-04-28 16:48:19
1569
原创 认识电子原件
电阻色环电阻:最后一个环为偏差倒数第二个环是倍数其余的将颜色对应的数据组合起来贴片电阻:电容U = 1/cidt贴片电容MLCC多片陶瓷片式电容器:中高段的滤波特性好钽电容:容值高,低频滤波(有正负)铝电解电容插件电容铝电解电容CBB电容X电容Y电容高压陶瓷电容电感类型:电感读数二极管二极管工作曲线二极管的使用二极管正负区分PCB丝印正负标识。
2025-04-14 11:54:13
856
原创 led屏幕驱动原理
以上就是如何实现驱动led显示屏的原理讲了:行管芯片的作用恒流驱动芯片的作用,在恒流驱动芯片中讲了如何实现灰度等级的,如何提高发光效率HUB75接口的认识。
2025-04-03 16:52:12
795
原创 Windows系统有趣操作
在Windows搜索栏中输入“记事本”,然后在结果中找到“记事本”应用。右键点击“记事本”,选择“以管理员身份运行”;然后在记事本里面找到文件选项,打开文件C:\Windows\System32\drivers\etc,选择打开hosts文件,这样就能直接修改了。这篇文章记录在使用windows系统过程中遇到的一些问题以及解决方法!如果提示需要管理员权限才能保存到该文件夹怎么解决?保存文件,退出,大功告成!1、github访问很慢。
2025-03-30 17:23:32
190
原创 Linux线程入门
以上 API 都是针对线程属性操作的,所谓线程属性是类型为 pthread_attr_t 的变量,设置一个线程的属性时,通过以上相关的函数接口,将需要的属性添加到该类型 变量里面,再通过 pthread_create( )的第二个参数来创建相应属性的线程。1,当线程的调度策略为 SCHED_FIFO 时,其静态优先级(static priority)必须设置为 1-99,这将意味着一旦这种线程处于就绪态时,他能立即抢占任何静态优先级为 0 的普通线程。每个线程都有一个栈,它是线程执行时的内存区域。
2025-03-05 20:53:55
857
原创 Linux进程
1、使用ipcs -m可以查看当前路径下消息队列的信息2、消息队列使用简单但是由于内核进行分配内存,检查边界,设置阻塞,以及各种权限监控,使得我们使用起来非常省力,因此不适合用来传输海量数据,能解决这个问题的就是共享内存。1、他们都需要通过键值获取ID才能进行一系列的操作2、ipcs指令:查看当前路径下的消息队列,共享内存,信号量信息从你提供的信息来看,系统中当前有一个共享内存段和一个信号量数组。
2025-03-03 11:42:22
698
原创 SPI通讯
SPI总线包括4条逻辑线,定义如下MISO:Master input slave output 主机输入从机输出MOSI:Master output slave input 主机输出从机输入SCLK:Serial Clock 穿行时钟信号,由主机产生发送给从机SS:Slave Select 从机选择信号,通常低电平有效不同的制造商会遵循其他的命名规则MISO也可以是:SOMI,DOUT,DO,SDO或SO(在主机端)MOSI也可以是:SIMO,DIN,DI,SD或SI(在主机端)
2025-02-15 11:48:44
258
原创 Can通信学习
CAN收发器一般是单独的芯片,并且根据CAN总线的结构不同,需要使用不同的CAN收发芯片,例如,STM32F407开发板上使用的CAN收发芯片是TJA1040,只能构成闭环网络结构。总线上所有设备都会监视总线数据,一旦发现“为错误”“填充错误”“CRC错误”“格式错误”“应答错误”,这些设备便会发出错误帧来破坏数据,同时终止当前的发送设备,发送错误帧有两种主动错误帧,被动错误帧,这是根据错误状态进行选择的。,如下图4所示,传输的是差分信号,通过两根信号线的电压差CANH-CANL来表示总线电平。
2025-01-21 11:58:32
2877
原创 ARM寄存器简介
_CC_ARM:用于 ARM 编译器(如 armcc 或 armclang)。__ICC_ARM:用于 IAR 编译器(IAR Embedded Workbench for ARM)。__GNUC__:用于 GNU 编译器(如 GCC,支持多种平台)。
2024-12-05 11:23:23
1766
原创 FreeRTOS移植
1.Source文件夹这里我们再重点分析下文件夹下的文件,具体见图13-6。编号①和③包含的是FreeRTOS的通用的头文件和C文件,这两部分的文件试用于各种编译器和处理器,是通用的。需要移植的头文件和C文件放在编号②portblle这个文件夹。
2024-12-04 12:06:30
1282
原创 单片机IAP固件升级
IAP技术能够让单片机在应用运行时自行更新固件,无需外部编程器或人工干预,极大提高了设备的维护性和灵活性。它在嵌入式系统、物联网设备、智能硬件等领域具有重要的应用价值。Bootloader(引导程序)是嵌入式系统和单片机中用于启动操作系统或应用程序的基础软件。它的主要作用是在系统上电或重启时,初始化硬件并加载并执行主程序或操作系统。简而言之,Bootloader是设备开机时首先运行的程序,它帮助将设备从一个无操作系统的状态启动到一个有操作系统或应用程序的状态。
2024-11-23 23:17:38
1166
原创 GD32学习知识点累计
GD32f427主频最高位240MHZ,GD32给的函数外接25MHZ晶振配置主频为200MHZ,APB1最高频率为60HZ配置为主频的4分频为50MHZ,APB2最大为120MHZ配置为主频的2分频为100MHZ。无论什么定时器最大频率为240MHZ。
2024-10-24 18:36:45
410
原创 GEC6818初次连接使用
使用自动获取网络命令一切正常使用静态设置,虽然电脑连接手机热点,通过电脑网线提供网络给开发板不能ping百度但是不影响我们使用网络连接开发板(telnet),使用网络传输文件等操作!!!,具体原因还不清楚注意命令一定要要输入正确。出错检查输入设置是否正确!如果开发板的 root 用户还没有密码,键入以下命令然输入两次密码来修改,否其他设备无连:密码更改失败,查询/etc/目录下是否有shadow文件夹,没有请创建。
2024-09-18 21:29:20
2096
原创 给虚拟机linux系统安装交叉编译工具链
我们在电脑上写的代码编译生成的是X86架构的二进制文件,只能在X86平台上运行,而开发板是ARM架构因此需要安装交叉编译链工具,这样在电脑上写的代码交叉编译之后生成的是ARM架构的二进制文件。绿色的字眼是与本文无关的只是这样有助于我们的使用。
2024-09-16 16:44:44
1438
原创 VScode相关问题与解决
usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/Scrt1.o: in function `_start‘_scrt1.o in function start-优快云博客。本文通过一个实例展示了在使用Vscode时如果没有保存.cpp或.c源文件,直接用g++或gcc命令生成可执行文件会导致编译错误。案例中,未保存的hell.cpp在保存前后运行结果对比,强调了保存源文件的重要性。
2024-09-13 21:20:21
807
原创 库文件制作
库文件的作用库文件分为静态库和动态库,我在学习单片机RTOS想看底层实现代码的时候往底层找的时候就找不到了。这就是为了保护代码的隐私!使用了动态库。库文件是二进制文件因此别人可以通过这个动态库和对应的头文件就可以达到既然使用者知道函数的使用方法,也可以让使用者正确的使用这个函数,这个使用者是看不到这个函数是如何实现的!!!静态库和动态库的区别静态库和动态库的区别体现在程序的链接阶段:静态库在程序的链接阶段被复制到了程序中;
2024-09-12 16:47:10
1033
原创 linux网络设置
如何将自己的linux系统网络设置为静态,这里讲述通用的方法-使用命令的方式。etc文件夹是存放配置文件的文件夹,改变网络配置也就是更改某个配置文件。
2024-09-09 21:18:15
1082
1
原创 网络编程入门-实现服务器与客户端通讯
TCP概念:TCP(Transmission Control Protocol)协议指的是传输控制协议,是一个面向连接的传输协议,他是一个能提供高可靠性的通信协议,所谓高可靠性指的是数据无丢失、数据无误、数据无失序、数据无重到达。(打电话)适用场景:适用于对传输质量要求较高,以及传输大量数据的通信。在需要传输可靠数据的场合通常会选择使用TCP通信协议。比如QQ/微信/支付宝等通信软件的账户登录和支付相关功能是通常采用可靠的TCP通信协议来实现。
2024-09-09 16:10:53
609
原创 解决OpenMV非官方LCD显示
以下代码可以解决花屏,就是屏幕被分割的情况,但是并不能够解决完全能解决,屏幕起码能看,额,最好的方式就是改变驱动。
2024-09-02 17:24:02
1283
13
原创 二叉树练习
树的根节点及其子树,都是相对的概念。在任何一棵树中都有一个根节点,而这棵树本身又可以是别的树的子树。树的基本概念有:A)双亲和孩子:一个节点的后继节点被称为该节点的孩子,该节点称为这些孩子的双亲。B)结点的度:一个节点孩子的个数。C)兄弟:拥有双亲的节点互为兄弟节点;D)节点的层次:人为规定根节点的层次为1或0(具体看说明),他的后代节点得层依次加一。E)树的高度:树中结点层次的最大值。F)终端节点:树最末端的叶子节点。
2024-08-22 17:05:51
1228
原创 内核链表的实现
内核链表最强的的地方在于,它可以存储任意类型的数据,我们只需要在节点里加上自己设定变量类型的标识,在遍历时我们获取节点的数据类型就可以进行打印并且内核指针可以有多对,这样这个节点可以存在于多个链表中。
2024-08-19 10:09:18
1129
原创 2024年电赛H题全开源
在制作小车过程中虽然遇到了很多困难与挫折但是我们要坚持下来,解决问题才是根本,有错误必有源头,顺着错误找源头才是正解!empty_LP_MSPM0G3507_nortos_ticlang · fighter/电子设计大赛 - 码云 - 开源中国 (gitee.com)【fighter】视频已打包,欢迎围观!_哔哩哔哩_bilibili。
2024-08-14 10:10:47
9590
9
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅