- 博客(625)
- 资源 (114)
- 收藏
- 关注
原创 SWD Connect/Transfer
NoteNoteNoteBit orderParityNoteNoteNoteNoteIf, orPurposeAttributesto 1.seeTypically:• For theSTICKYORUN//void)U8 rtn;rtn =return rtn;//void)//void)U8 ack;1);#define#define#definebitdata )
2023-03-11 18:48:55
792
原创 C#窗口介绍
(21)Font属性:用来获取或设置控件显示的文本的字体。(7)Left属性:用来获取或设置窗体的左边缘的x坐标(以像素为单位)。(8)Top属性:用来获取或设置窗体的上边缘的y坐标(以像素为单位)。(23)IsMdiChild属性:获取一个值,该值指示该窗体是否为多文档界面(MDI)子窗体。(24)IsMdiContainer 属性:获取或设置一个值,该值指示窗体是否为多文档界面(MDI)中的子窗体的。(9)ControlBox属性:用来获取或设置一个值,该值指示在该窗体的标题栏中是否显示控制框。
2023-02-27 10:59:08
4114
原创 C#多窗口切换
*******************数据导入Excel**********************/sfd.Filter = "Excel文件(*.xlsx)|*.xlsx";
2023-02-27 10:54:47
4924
原创 C#实现多个子窗体切换效果
/将窗体一进行显示 panel2.Controls.Clear();//清空原容器上的控件 panel2.Controls.Add(f1);//清空原容器上的控件 panel2.Controls.Add(f2);//将窗体三进行显示 panel2.Controls.Clear();//清空原容器上的控件 panel2.Controls.Add(f3);//实例化f3 }
2023-02-27 10:33:23
1453
原创 C# 多窗口切换的实现
(2)、在左侧splitContainer1.panel1中放入3个Button控件,button1(窗口1)、button2(窗口2)、button3(窗口3);(1)、创建Winform窗体程序,放入SplitContainer控件splitContainer1将窗体分成左右2部分;(3)、创建子窗体Form1,放置2个Label,Title和Content;string title = "窗口一";title = "窗口二";title = "窗口三";(5)、在主窗体初始化3个Form1窗体。
2023-02-27 10:03:49
3406
原创 C#之winform控制台打印输出、打印调试
开发winform的时候,使用控制台打印解决方法,需要先往主函数所在的源文件中加入以下内容。在C#的时候,使用的是Console.WriteLine("Hello World");// 允许调用控制台输出。/// 应用程序的主入口点。// 控制台输出,需加入此库。
2023-02-18 14:34:54
7074
原创 循环冗余校验(CRC)算法
另外一点,多项式表示和二进制表示都很繁琐,交流起来不方便,因此,文献中多用16进制简写法来表示,因为生成多项式的最高位肯定为1,最高位的位置由位宽可知,故在简记式中,将最高的1统一去掉了,如CRC32的生成多项式简记为04C11DB7实际上表示的是104C11DB7。不过这个代码已经比网上常见的计算代码要好了,因为这个代码有一个crc的参数,可以将上次计算的crc结果传入函数中作为这次计算的初始值,这对大数据块的CRC计算是很有用的,不需要一次将所有数据读入内存,而是读一部分算一次,全读完后就计算完了。
2022-12-23 16:32:33
2653
原创 Pyqt5使用多线程解决界面卡顿并将命令行输出重定向到UI
UI界面部分代码,在点击按钮之后将按钮设为不可点击状态,同时在接收到信号时候将按钮设置为可以点击状态.如果想要在1按钮函数运行结束之前,按钮处于不可点击状态也可以通过信号实现。先使用qtdesigner画两个按钮和两个text,用来检测功能。button1函数部分在添加一个信号,并在函数执行结束之后在发射。可以通过qt的QThread来解决。下面实现将命令行输出重定向到UI界面上。在使用pyuic将其转换为py文件。先给按钮2定义一个简单的函数,运行。这样在点击按钮UI界面也不会卡顿。
2022-12-11 21:19:04
665
原创 PyQt - 使用多线程避免界面卡顿
所以这种情况下必须使用多线程的方式来解决,即在主界面线程中在启动一个新的子线程,利用该子线程处理比较耗时的操作,然后通过signal-slot机制将子线程的数据反馈到主界面线程中,而且在子线程中不能操作界面。这就是所说的:UI只用来操作UI,子线程只用来处理数据,就是将UI的操作与耗时数据的处理进行分开处理。这是因为对于pyqt来说,界面线程是主线程,如果我们在主线程函数里面调用了一个耗时比较久的循环,可能就会造成主界面线程卡死在循环中,从而造成无法操作主界面或者主界面卡顿、卡死。
2022-12-11 16:31:59
3654
原创 MFC中Edit控件使用方法
众所周知,现在微软出台的编译器已经很多了,如vc++6.0,vs2005,vs2008,vs2010等,虽然变化多样,但是万变不离其根本,最根本用法没有多大变化。点击新建一个基于MFC的应用程序,创建对话框应用程序,在资源视图中,拖放Edit控件到对话框上,在编辑框控件上点右键,修改ID为一个有意义的标识。例如:CString m_nName;方法四:分别拖两个编辑框IDC_EDIT1,IDC_EDIT2,IDC_EDIT3。
2022-11-11 16:36:23
1345
原创 串口字符串转换
/此处使用strncpy_s(char * str2, int size2, char * str1, int size1);//发送消息,WM_USER+1为自定义消息,即找到串口的,并将串口号"COMx"通过WPARA M参数传送给主对话框窗口。FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED,//重叠方式,用于异步通信。
2022-11-05 19:35:57
1097
原创 WIN32 串口通信程序
/{0,0,elseif (!#if 1if (!#endifif (!if (!if (!/*if (!*/stopFlag){
2022-10-23 20:50:16
720
原创 pyOCD - 用于调试烧写 Cortex-M 芯片环境成功搭建
pyOCD 是一个开源 Python 软件包,用于多种受支持的硬件调试器(DAP-Link、J-Link、ST-Link)下编程和调试Arm Cortex-M微控制器。它是完全跨平台的,并支持Linux,macOS和Windows。它内置支持多达70种流行的MCU。pyOCD 允许用户通过命令来:烧录、擦除、单步、停止、设置断点、全速运行、芯片上锁、读写外设寄存器、读写存储空间等操作。
2022-10-16 11:39:41
13265
原创 zephyr线程生命周期
ephyr中线程是使用CPU的最小单位,线程从创建后由zephyr内核进行调度,根据运行和等待资源的状况在几个状态中切换,直到线程终止退出生命周期。
2022-09-18 17:12:01
420
原创 zephyr 堆栈
在Zephyr中每个线程的堆栈大小在创建时就已经指定,运行过程中无法再做改变,线程运行的上下文是存放在线程的堆栈中,一旦堆栈被破坏意味着线程的执行上下文被破坏,这将导致线程执行出现不可预期的异常,Zephyr针对可能造成线程破坏的情况提供了保护,监控,预防手段。本文将介绍比较通用的一些堆栈保护技术,这些技术除了在Zephyr上出现外,其它OS也广泛的采用了这些技术。
2022-09-18 16:53:12
816
原创 zephyr idle thread
系统的thread有效工作时间是不能占满CPU工作时间的,在其等待的时候有一个idle thread占用CPU,Tickless idle就是将idle thread占用CPU的运行时间转为CPU idle,达到省电的目的。上图示例了一个跑了3个thread: Ta,Tb,Tc。这三个thread根据实际的应用情况调度,在t1,t2,t3这三个时间段这3个thread都不需要工作,在Normal的状态下,Idle thread将占用这3个时间段的CPU,让CPU空转。
2022-09-18 15:55:54
1102
原创 Zephyr调度算法
Zephyr维护了1个就绪列队和多个内核对象等待列队。所有就绪线程被放入就绪列队等待调度器来选择线程进入调度,等待信号量,互斥量等其它内核对象的线程,会分别放到对应内核对象的等待列队中,当等待的资源就绪时,将从对应的列队中选出线程使用资源。在Zephyr运行过程中,根据运行的情况任意一个列队中都可能存在多个线程,随时都会有线程会从列队中加入,取出。这些对列队的操作需要满足,Zephyr中提供三种算法用于管理列队,不同的工作环境可以通过配置Zephyr选择不同的算法管理不同的列队。
2022-09-18 15:22:21
848
原创 Zephyr 线程阻塞和超时机制分析
kernel 只有一个 ready_q,可被调度的 thread 都被放到 ready_q 中每个需要等待的内核对象都有一个 wait_q, 当 thread 等待该内核对象时,该 thread 会从 ready_q 中移除,放入到等待内核对象的 wait_q 中当内核对象有效时,会将 thread 从 wait_q 中移除又放回 ready_q。
2022-09-18 12:52:57
260
原创 zephyr k_poll
它们可以使用运行时初始化器 K_POLL_EVENT_INITIALIZER() 或 k_poll_event_init() 或静态初始化器 K_POLL_EVENT_STATIC_INITIALIZER() 进行初始化。例如,这意味着当 k_poll() 返回并且 poll 事件表明信号量可用时, k_poll() 的调用者必须调用 k_sem_take() 以获取信号量的所有权。当 k_poll() 在循环中调用时,事件状态必须由用户重置为 K_POLL_STATE_NOT_READY。
2022-09-14 09:17:52
430
原创 zephyr k_queue
*如果是采用alloc_append方式的节点,则使用CONTAINER_OF方式获取节点地址,从而获取数据*//*保留,用于queue中data_q链表的节点*/fifo_tx_data1->data = ... /*为data成员装载数据*/_wait_q_t wait_q;
2022-09-13 21:31:45
228
原创 Cortex-M3和Cortex-M4 Fault异常基础知识
硬Fault:如果上面的总线Fault、存储器管理Fault、用法Fault的处理程序不能被执行(例如禁能了总线Fault、存储器管理Fault、用法Fault异常或者在这些异常处理程序执行过程中又出现了Fault)则触发硬Fault。如果一个非硬Fault异常被禁能并且相关Fault发生,这时异常会升级为硬Fault。Fault状态寄存器组(SCB->CFSR和SCB->HFSR)和Fault地址寄存器组(SCB->MMAR和SCB->BFAR)包含Fault的详细信息以及异常发生时访问的内存地址。...
2022-08-28 09:25:37
2352
原创 Q格式的数据
相对于浮点数,Q格式指定了相应的小数位数和整数位数,在没有浮点运算的平台上,可以更快地对浮点数据进行处理,以及应用在需要恒定分辨率的程序中(浮点数的精度是会变化的)。类似于加法的操作,需要相同定标的两个Q格式数进行相减,但是不会存在溢出的情况。所以不难看出,的范围大小和精度;所以不难求出,的范围大小和精度;,从而达到所需要的数值范围和精度,这里可能有点抽象,下面继续看介绍。乘法同样需要考虑溢出的问题,这里通过。综上,可以得到有符号的范围是:,上面的程序其实并不安全,在一般的。需要注意的是,Q格式是。...
2022-08-25 19:42:05
1376
原创 c程序的分层架构案例
实际工作时cal.c是直接完成工作的,但是cal.c中的关键部分是调用的framework.c中的函数来完成的。第三:分层写代码的思路是:有多个层次结合来完成任务,每个层次专注各自不同的领域和任务;并且把相应的接口写在对应的头文件中发出来,将来别的层次的人用这个头文件来协同工作。第六:下层注重实际干活的函数,注重为上层填充变量,并且将变量传递给上层中的函数。第五:上层注重业务逻辑,与我们最终的目标相直接关联,而没有具体干活的函数。第四:分层之后上层为下层提供服务,上层写的代码是为了在下层中被调用。...
2022-08-10 22:25:03
773
原创 解决git@github.com: Permission denied (publickey)
解决git@github.com: Permission denied (publickey)
2022-07-31 14:50:49
4447
2
原创 python @property的用法
1.什么是property简单地说就是一个类里面的方法一旦被@property装饰,就可以像调用属性一样地去调用这个方法,它能够简化调用者获取数据的流程,而且不用担心将属性暴露出来,有人对其进行赋值操作(避免使用者的不合理操作)。...
2022-06-18 20:04:32
832
原创 UML类图
平时阅读一些远吗分析类文章或是设计应用架构时没少与UML类图打交道。实际上,UML类图中最常用到的元素五分钟就能掌握,下面赶紧来一起认识一下它吧:一、类的属性的表示方式在UML类图中,类使用包含类名、属性(field) 和方法(method) 且带有分割线的矩形来表示,比如下图表示一个Employee类,它包含name,age和email这3个属性,以及modifyInfo()方法。那么属性/方法名称前加的加号和减号是什么意思呢?它们表示了这个属性或方法的可见性,UML类图中表示可见性的符.
2022-05-30 15:44:55
340
1
原创 Python之抽象基类
1.抽象基类的定义抽象基类(abstract base class,ABC):抽象基类就是类里定义了纯虚成员函数的类,纯虚函数只提供了接口,并没有具体实现。2.抽象基类的特点不能被实例化抽象基类不能被实例化(不能创建对象),通常是作为基类供子类继承,子类中重写虚函数,实现具体的接口。子类必须实现抽象基类的方法抽象基类就是定义各种方法而不做具体实现的类,任何继承自抽象基类的类必须实现这些方法,否则无法实例化。3.抽象基类应用场景3.1 检查某个类中是否有某种方法判断 Demo中 是否
2022-05-30 10:59:57
2187
原创 python 设计模式
程序设计的好与坏,早在我们青葱岁月时就接触过了,只是那是并不知道这竟如此重要。能够立即改善程序设计、写出“好”代码的知识有以下几点:面向对象五个基本原则;常见的三种架构;绘图;起一个好名字;优化嵌套的 if else 代码;当然,其他技术知识的丰富程度也决定了程序设计的好坏。例如通过引入消息队列解决双端性能差异问题、通过增加缓存层提高查询效率等。下面我们一起来看看,上面列出的知识点包含哪些内容,这些内容对代码和程序设计的改善有何帮助。1、面向对象五个基本原则本书作者是 201...
2022-05-30 09:44:40
105
原创 tinyEMU中常用技巧
本文主要介绍一下tinyEMU中常用的一些技巧。使用c语言实现template在tinyemu中,cpu可以是32,64甚至是128bit的。cpu位宽的差异不影响软件模拟cpu操作的主要逻辑,我们只需要在处理数据时,注意处理的cpu位宽就好。在这样的情况下,我们有两种实现方式针对每种位宽的cpu都实现相应的一套模拟cpu操作的代码利用c语言宏,让m4帮忙生成对应的代码。第一种方案比较容易想到,但是,会多写很多重复的代码,作为软件工程师,我们希望将相同的逻辑都抽象出来。对于其他支持泛型的语言来
2022-05-25 16:10:22
204
原创 基本JPEG(Baseline JPEG)和渐进JPEG(Progressive JPEG)
一、 JPEG介绍JPEG 是Joint Photographic Experts Group(联合图像专家小组)的缩写,是第一个国际图像压缩标准。JPEG图像压缩算法能够在提供良好的压缩性能的同时,具有比较好的重建质量,被广泛应用于图像、视频处理领域。1.1. JPEG不同场景的解释:作为委员会:是Joint Photographic Experts Group(联合图像专家小组)的缩写;作为压缩标准:JPEG是联合图像专家小组制定的图像压缩标准(见1.3);作为文件后缀:是采用JPEG压缩标
2022-05-25 16:03:59
2388
1
原创 GD32VF103启动流程分析
1 *.S文件分析1.1 文件位置(1)下载NucleiStudio,新建rt_thread工程,工程名为freertos_GD32VF103(2)启动文件为:freertos_GD32VF103/nuclei_sdk/SoC/gd32vf103/Common/Source/GCC/startup_gd32vf103.S1.2 中断异常背景知识GD32VF103的中断控制器具有两种模式:默认模式和ECLIC模式。模式的设置由mtvec[5:0]指定,当mtvec[5:0]==6’b0000
2022-05-21 13:14:44
1545
原创 RISC-V链接脚本
OUTPUT_ARCH( "riscv" )ENTRY( _start )MEMORY{ /* Run in FLASH */ flash (rxai!w) : ORIGIN = 0x08000000, LENGTH = 128k ram (wxa!ri) : ORIGIN = 0x20000000, LENGTH = 32K /* Run in RAM *//* flash (rxai!w) : ORIGIN = 0x20000000, LE...
2022-05-20 20:33:49
1862
原创 GD32VF103开发环境简单介绍
GD32VF103的主频是108MHz,据官方的宣传资料所说,其性能为153 DMIPS,达到1.41DMIPS/MHz,相对于Cortex M3的1.25DMIPS/MHz提高了13%左右,更重要的是它的节能特性,同主频下动态功耗仅为Cortex M3的一半。至于外设方面USB、ADC、DAC、CAN、RTC、SPI等都是挺齐全的。GD32VF103支持哪些集成开发环境呢?我所知的三个:华为开发的IoT Studio、兆易创新和芯来科技开发的Nuclei Studio(基于Eclipse架构)、矽速科
2022-05-19 22:10:40
675
RISC-V 体系结构原理与编程资料
2022-10-23
FatFs 文件系统在nor flash 移植
2022-09-03
CmBacktrace: ARM Cortex-M series MCU error tracking library
2022-08-28
en.stsw-stm32054_v3-6-0_en.stm32cubef1
2022-05-06
基于Ymodem协议串口升级程序的实现过程
2022-04-07
基于vs2019的lvgl模拟器lv_sim_visual_studio_sdl
2022-03-19
LvglFontTool_V0.3_littevgl
2021-09-26
LittleVGL模拟器环境a(CodeBlocks).rar
2021-09-18
darknet-master开源深度学习框架
2021-05-29
UGUI-master.7z
2021-04-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅