- 博客(44)
- 资源 (11)
- 收藏
- 关注
原创 Python 基于Threading的UdpServer和Serial的类
Summary将udpserver和Serial的对象进行包装,分别使用独立线程来维护。实现的功能:UDP端接收的数据从串口发出,串口接收的数据从UDP端发出SerialThreadBase.pyimport serialimport serial.tools.list_portsimport threadingfrom queue import Queueimport timeclass serialThreadBase(threading.Thread): def _
2021-12-23 16:15:22
1090
原创 winform touch screen override WndProc --Win32.cs
WndProcprotected override void WndProc(ref Message m) { switch (m.Msg) { case Win32.WM_POINTERDOWN: case Win32.WM_POINTERUP: case Win32.WM_POINTERUPDATE: case Win32.WM_POINTERCAPTURECHANG
2021-12-17 13:23:54
1004
原创 PowerShell Little Code
Title$file= Get-Content "list.csv"foreach ($line in $file){ $arr = $line.Split(",") N_m3u8DL-CLI_v2.9.7.exe $arr[0] --saveName $arr[1] Write-Host $arr[1]}Start-Transcript -path C:\powershelllog.txt -Force -Append –NoClobberGet-ChildItem
2021-10-13 00:31:45
204
原创 软件内部采用订阅发布的方法进行数据交换的方法
问题通常情况下,一个中小型软件会包含大概在50个窗体以内,不免会在窗体之间需要传递多种信息和数据。通常有几种方式:全局变量通过设立全局变量,使得所有的窗体均可以访问的到。使用一个小型化的数据库例如sqlite或者配置文件来进行数据的传递。但是以上这两种方法均无法实现及时响应。接收数据端需要不断的刷新查询全局变量或者配置文件,造成一定的性能浪费和损失,也丢失了一定的实时响应特性。况且很多软件其实并不需要附带一个本地数据库。事件为了解决及时响应,可以通过在窗体中添加事件,通过delegate和
2021-01-26 12:39:23
316
原创 使用C++来写NiosII[4]-UART
先看看效果main.cppGNios::Uart u0(UART_BASE);void u0_hanlder2(uint8 content){ uint8 rxdata=content; u0.Send(rxdata);}int main() { u0.Init(115200,UART_IRQ_INTERRUPT_CONTROLLER_ID,UART_IRQ,u0_hanlder2); //波特率115200,接收中断函数为u0_handler2 while (1) { }
2020-07-12 23:29:33
259
原创 使用C++来写NiosII[3]-EXTI
将带有中断的PIO单独独立出来一个类叫Exti外部中断类。显而易见,这个Exti实际上是个GPIO的继承类先看看效果main.cppuint8 key_flag=0;GNios::Gpio Led(LED_BASE);GNios::Exti keyin(KEY1_BASE);GNios::Exti key2in(KEY2_BASE);void ISR_Key1Handler(){ key_flag=1; keyin.ClearEdgeCapture(GpioPin0);}voi.
2020-07-12 23:21:47
229
原创 使用C++来写NiosII[2]-GPIO
先看看效果比如我们现在要实现点亮一个灯的操作,采用了C++进行封装之后,在主程序中就会非常的简洁。main.cppGNios::Gpio Led(LED_BASE);int main() { //Hello world to jtag printf("Hello from Nios II!\n"); //led int i; while (1) { for (i = 0; i < 4; i++) { //IOWR_ALTERA_AVALON_PIO_DATA
2020-07-12 23:06:11
456
原创 使用C++来写NiosII[1]-前言
特此说明一下,并不是非得用C++来进行开发。对于绝大部分的应用来说,用C已经足足够了,况且对于一般的NiosII项目来说,硬件上不停的变化,也会导致大部分的代码都是写一次即可,能够完成项目就好。那么为什么还是要写一下这个东西,就是因为在实际的大型项目的开发中,C++是有独特的优势的,当项目程序越来越大,涉及到的算法和控制流程越来越多的情况下,面向对象的C++更能够体现软件工程的思想。而且随着项目的持续推进,更多的关注点应该是程序流程和应用流程本身,这个时候就稍微需要隐藏一下底层的东西,保持代码的干净,方.
2020-07-12 22:17:14
429
转载 C/C++ 不带参数的回调函数 与 带参数的回调函数 函数指针数组 例子
不带参数的回调函数例子#include <iostream>#include <windows.h>void printFunc(){ std::cout<<"printFunc"<<std::endl;}void CallFunc(void (*FuncPoint)()){ FuncPoint();}int main(int argc,char* argv[]){ CallFunc(printFunc); sy
2020-07-09 22:55:05
383
转载 Function‘__builtin_stwio’ could not be resolved
Function ‘__builtin_stwio’ could not be resolvedIf you are using Eclipse IDE for Altera NIOS II C++ firmware development, you will probably be annoyed by the following two reported semantic error messages when you are using IOWR() and IORD() macros from t
2020-06-25 00:34:58
493
原创 正确理解Avalon MM总线的动态地址寻址Dynamic Addressing
目前Nios已经取消了Native寻址模式(即从设备到主设备寄存器映射),全部采用了Dynamic寻址模式,查找了目前存在的一些资料,尤其是某些教程,还在使用Native模式,对Dynamic动态模式避而不谈,还有好多资料摸棱两可,说的模模糊糊,感觉应该是没吃透这个东西,要么就是调试程序的使用使用固有的2或者4方法,其实为什么这么做,可能也不知道。下面根据查询官方手册,给出我的理解。以下所说的32bit,16bit表示的都是数据宽度。所有的寄存器都是8bit的!!在Master来看,一个地址只对应.
2020-06-23 00:16:21
1002
1
转载 Visual Studio 项目在修改项目版本时,使用 * 通配符报错
CS8357 C# The specified version string contains wildcards, which are not compatible with determinism. Either remove wildcards from the version string, or disable determinism for this compilationCS83...
2020-01-10 11:54:40
2870
原创 Net 4中使用System.Net.Http.HttpClient和使用Task await async
添加Nuget包Microsoft.BclMicrosoft.Bcl.BuildMicrosoft.Net.HttpMicrosoft.Bcl.Async
2020-01-10 10:21:39
1363
1
原创 利用反射来初始化自定义泛型成员
直接代码 private List<T> CreateListInstance<T>(int Length) { List<T> tList = new List<T>(); for (int i = 0; i < Length; i++) { ...
2019-09-22 00:24:46
311
转载 Typical Result or EventArgs Class
public class Result{ public bool Success { get; private set; } public string Error { get; private set; } public bool Failure { /* … */ } protected Result(bool success, string...
2019-03-03 13:35:39
219
转载 如何向生产设备迁移有变动的数据库
参考 https://msdn.microsoft.com/zh-CN/data/jj591621 实体框架CodeFirst迁移步骤1.修改好CodeFirst代码。2.在程序包管理器控制台(点击工具>>库程序包管理器>>程序包管理器控制台可以调出)中输入Enable-Migrations,启用迁移。3....
2019-03-01 23:40:39
204
原创 异步编程模型(勘误)
还不确定是否正确,反正能正常执行,先记录下来代码 public class App { private static string result; private static AutoResetEvent are = new AutoResetEvent(false); ManualResetEvent mre = new Manua...
2019-02-16 11:00:38
232
转载 可以排序的DataGridView数据源SortableBindingList<T>
一般情况下,DataGridView绑定的数据源都是BindingList<T>,但是BindingList<T>不支持排序,所以造成了DataGridView也是不能排序的,改进的SortableBindingList<T>增加了排序功能。代码如下 public class SortableBindingList<T> : Bindin...
2019-02-13 21:14:42
1381
转载 DataGridView中增加ProgressBar
效果此代码也是转载的,此处更改了显示百分比显示一位小数,同时文字显示位置居中,代码如下,以下代码添加到工程中,编译一次,即可在DataGridView添加列中看到DataGridViewProgressColumn。 public class DataGridViewProgressColumn : DataGridViewImageColumn { p...
2019-02-13 21:07:53
1393
原创 Win10蓝牙设备删除后无法连接解决办法
现象一般情况下,当操作系统无法与蓝牙设备,比如鼠标键盘等出现无法连接的情况,通过删除掉蓝牙设备后重新连接配对即可,可是在Win10当中,一旦删除掉蓝牙设备后,再重新配对的时候是无法发现已经删除的设备的。(因为这个原因误会了鼠标,还让客服给换新)。而且当系统重启之后,在蓝牙设备表里是还能够看到已经配对过的设备的,但此时设备是无法工作的,使用了很多方法都无济于事。原因归根结底原因是因为Wi...
2019-01-11 01:36:26
35365
21
转载 Winform 剪贴板的复制和粘贴使用
复制:private void TextBox_DoubleClick(object sender, System.EventArgs e) { if(TextBox.Text != "") Clipboard.SetDataObject(TextBox.Text); } 粘贴:private void TextBox2_DoubleClick(object...
2018-10-21 20:07:49
1910
原创 DataGridView解决使用BindingList时属性改变界面不更新问题
在使用BindingList作为DataGridView的数据源时,当BindingList<>有增加或者删除的时候DataGridView会自动刷新,但是当BindingList<>中属性内容进行更新的时候界面并不会刷新,是因为实体类没有实现INotifyPropertyChanged接口,实现相关接口即可。代码如下: public clas...
2018-10-21 12:29:04
4125
转载 MSDN代码注释范例
/// <summary> /// This sample shows how to specify the <see cref="TestClass(int)"/> constructor as a cref attribute. /// </summary> public TestClass(...
2018-08-14 17:17:12
410
原创 C# 多行文本去掉空白行,空行和重复行
需要使用LINQstring[] strArray=str.Split(new char[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries);strArray = strArray.GroupBy(p => p).Select(p => p.Key).ToArray();
2018-08-14 14:51:02
6431
转载 STM32的AFIO时钟什么时候需要开启
AFIO 是什么?AFIO 时钟什么时候需要开启? 我们从《STM32中文参考手册_V10》中找到:对寄存器 AFIO_EVCR、AFIO_MAPR 和 AFIO_EXTICRX 进行读写操作前,应当首先打开 AFIO 的时钟(设置 APB2 外设时钟使能寄存器 RCC_APB2ENR)。 也就是说:当你需要配置 AFIO 这些寄存器的时候,就需要把 RCC_APB2ENR 寄存器的...
2018-04-20 11:52:38
1318
转载 Winform 复制、粘贴文本信息到剪贴板
Winform 复制、粘贴文本信息到剪贴板复制private void button1_Click(object sender, System.EventArgs e) { // Takes the selected text from a text box and puts it on the clipboard. if(textBox1.SelectedText !=
2018-02-05 22:28:13
1477
转载 Quartus Prime 275080警告 pin name already exists
Quartus Prime 275080警告Quarus Prime中如果有总线命名分别为 a[11..0] 和 a11,则编译的时候会报错,原因是原理图分解的时候简单的把a[11..0]分解成了 a11,a10,a9….a0 这样的话就出现了命名冲突.解决办法Assignments -> Settings -> Analysis and Synthesis Settings ->
2018-02-01 13:17:55
4894
原创 在MvvmLight中View和ViewModel的绑定
在MvvmLight中View和ViewModel的绑定 本文会介绍在MvvmLight框架下几种情况下的页面绑定方法,分别使用了{x:Bind}, {Binding};在一个View对应多个ViewModel情况下两种绑定方法,以及混合两种方式的绑定方法。准备工作ViewModel为了完成以下内容,ViewModel需要准备两个类 MainPageViewModelpublic class
2017-08-21 12:52:58
2837
1
转载 在MvvmLight下使用{x:Bind}
One of the XAML-related announcements at Build this year was the availability of compiled bindings. These new bindings can be used instead of the “classic” {Binding} syntax in XAML. Note that this synt
2017-08-21 10:54:08
395
原创 UWP下用x:Bind双向绑定ComboBox的SelectedItem
Code-Behind构造ComboBoxItem类MVVM相关双向绑定XAML引入转换器ComboBox测试代码Code-Behind构造ComboBoxItem类ComboBox一般有两个内容,一个是值Value,一个是显示的Text,所有构造一个类,具有这两个属性 public class ComboBoxItem { public string V
2017-08-17 10:00:37
2744
原创 Verilog任意整数分频器
Verilog任意整数分频器Verilog任意整数分频器偶数分频奇数分频两种情况结合一下 在实际设计中有的时候需要简单的任意整数分频器,整数分频器主要解决两种情况下的分频,一个是偶数分频,另一个是奇数分频偶数分频 偶数分频比较简单,可以使用一个计数器来实现,对输入时钟进行计数,当计数器的值为N/2-1时,将输出翻转,同时将计数器清零即可。(N为分频系数)module EvenDiv_
2017-07-24 16:13:46
4167
转载 解决TableLayoutPanel控件闪烁
当TableLayoutPanel控件中的需要更新的Label过多的时候,刷新Label的时候会出现闪烁问题,主要解决办法就是增加双缓冲,代码如下private void MainForm_Load(object sender, EventArgs e){ tableLayoutPanel1.GetType().GetProperty("DoubleBuffered", Sys
2016-12-23 12:07:07
7403
转载 TcpClient类异步接收数据
构造函数属性主要方法流程TcpClient读取数据过程TcpClient连接TcpClient已经连接上NetworkStream读取NetworkStream已经读取完毕取出数据TcpClient发送数据流程TcpClient线程NetworkStream异步发送线程实例TcpClient连接NetworkStream异步读取NetworkStream读取处理 Tc
2016-05-19 11:29:11
15230
6
原创 InvokeRequired和Invoke
跨线程访问控件事件类型 有些方法比较繁琐简化一下例如在另开一个Thread的时候需要通过delegate和Invoke来跨线程访问UI控件,相关代码可以简化跨线程访问控件 private delegate void ReceiveAppendStringDelegate(string message); //注册一个自定义的delegate /// <summary
2016-05-17 23:14:46
768
转载 UdpClient类使用
UdpCLient类使用构造函数方法通信流程实例UdpCLient类使用 说明: 本文摘录自MSDN UdpClient类 有删减,将常使用的方法列出构造函数 名称 说明 UdpClient() 初始化 UdpClient 类的新实例 UdpClient(Int32) 新实例初始化 UdpClient 类,并将其绑定到提供的本地端口号。 UdpClien
2016-05-17 16:24:25
2734
转载 Verilog - 二进制数转换成BCD编码
二进制和BCD编码都是什么?这里所说的二进制,就是一个变量(整数)的实际值的意思,比如一个整数10,那么我们说他的二进制的值就是10,这个没啥好说的。 主要是BCD编码,在数据的传输中,数据都是以字节(byte)为单位进行的传输,一个字节有8个位(bit),那么一个字节能够传递的数值的范围就是0~255(十六进制为0x00~0xFF)。这个时候,比如我们要传递一个值35,那么用十六进制表示就是0x
2015-12-16 12:06:12
29414
7
原创 师父
很久没有因为一个电视节目而令自己如此的心情难以平静,今天看了《了不起的挑战》的第二期内容,嘉宾们被分配到了各个平凡的工作岗位上,有在600米悬崖上的蜘蛛侠,有在地下585米的矿工,有在深秋吃糖里面的挖藕工人,有在重庆山城的棒棒。令我感到心情无法平静的并不是节目组的安排和工种的危险程度,而是在各个工种中带着嘉宾工作的师父们。 其中“矿井师父”更是让我对“师父”这个词充满了敬意。何谓师父,“师者,传道
2015-12-15 23:40:29
737
原创 iocomp winform 类型的使用笔记
值类型的转换赋值 double d=50; gauge.Value.AsDouble = d;取出值 gauge.Value.AsDouble = d; double b = gauge.Value.AsDouble;
2012-06-06 23:22:13
1238
转载 最好用的C#操作ini文件的类库
using System;using System.Text;using System.Runtime.InteropServices;using System.Globalization;using System.Collections.Generic;namesp
2011-09-08 00:31:45
1515
原创 MSChart 美化(参照微软Sample)
public void ChartEnhance(Chart chart1,string chartAreaName,string legendName,string seriesName,string titleName,string titleText) { chart1.BackColor = Color.WhiteSmoke;
2011-06-20 18:01:00
2085
Win10彻底删除已经配对的蓝牙设备工具
2019-01-11
《ARM嵌入式系统基础教程》--创新的多媒体教学课件第5-8章
2008-12-17
《ARM嵌入式系统基础教程》--创新的多媒体教学课件第1-4章
2008-12-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人