STM32CUBE双串口空闲中断+DMA透传代码,拿到下载直接能用,U1:PA9PA10,U2:PA2PA3
2024/9/12 3:50:25 3.6MB STM32CUBE
1
使用MATLAB对一幅图像添加椒盐噪声或者高斯噪声。
不调用现成函数,只用到rand产生随机数。
代码非常精简,使用方便,适合新手参考。
核心代码如下:%***添加椒盐噪声***K1=0.2;%多少被污染K2=0.5;%胡椒噪声比例I1=rand(m,n)<K1;I2=rand(m,n)<K2;Image(I1&I2)=0;Image(I1&~I2)=255;%***添加高斯噪声:Box-Muller方法***AVG=0;%平均值STD=0.05;%标准差U1=rand(m,n);U2=rand(m,n);X=STD*sqrt(-2*log(U1)).*cos(2*pi*U2)+AVG;Image=double(Image)/255+X;Image=uint8(255*Image);
2024/7/28 22:18:07 1KB 椒盐噪声 高斯噪声 MATLAB 图像处理
1
以往的文件或书信可以通过亲笔签名来证明其真实性,而通过计算机网络传输的信息则可以通过数字签名技术来实现其真实性的验证。
下面就以DSA算法为例,介绍数字签名算法。
DSA算法在1991年被美国国家标准与技术局(NIST)采纳为联邦数字签名标准,NIST称之为数字签名标准(DSS)。
(1)DSA中的参数:全局公钥(p,q,g):p为512~1024bit的大素数,q是(p-1)的素因子,为160比特的素数,g=h(p-1)/qmodp,且1<h1用户私钥x:x为0<x<q内的随机数用户公钥y:y=gxmodp用户为待签消息选取的秘密数k,k是满足0<k<q的随机数或伪随机数。
(2)签名过程用户对消息M的签名为(r,s),其中r≡(gkmodp)modq,s≡[k-1(H(M)+xr)]modq,H(M)是由MD4、MD5或SHA求出的杂凑值。
(3)验证过程设接收方收到的消息为M,签名为(r,s)。
计算:w≡(s)-1modq,u1≡[H(M)w]modqu2≡rwmodq,v≡[(gu1yu2)modp]modq检查v=r′是否成立,若成立,则认为签名有效。
这是因为若(M′,r′,s′)=(M,r,s),则:
2024/1/31 14:58:34 3.62MB C++ DSA
1
openonload-201811-u1.tgz
2023/8/27 2:16:20 4.75MB openonload-2018
1
单片机数模转换程序将da#include//52系列单片机头文件#include#defineucharunsignedchar#defineuintunsignedintsbitdula=P2^6;//申明U1锁存器的锁存端sbitwela=P2^7;//申明U2锁存器的锁存端sbitadwr=P3^6;//定义AD的WR端口sbitadrd=P3^7;//定义AD的RD端口sbitled=P2^5;sbitDAC0832_CS=P3^2;sbitDAC0832_WR=P3^6;sbitAD_CS=P0^7;ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};ucharweima[]={0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf};voiddelayms(uintxms){uinti,j;for(i=xms;i>0;i--)//i=xms即延时约xms毫秒for(j=110;j>0;j--);}voiddisplay(ucharbai,ucharshi,ucharge)//显示子函数{dula=1;P0=table[bai]|0x80;//送段选数据dula=0;P0=0xff;//送位选数据前关闭所有显示,防止打开位选锁存时wela=1;//原来段选数据通过位选锁存器形成混乱P0=0x7e;//送位选数据wela=0;delayms(1);//延时dula=1;P0=table[shi];dula=0;P0=0xff;wela=1;P0=0x7d;wela=0;delayms(1);dula=1;P0=table[ge];dula=0;P0=0xff;wela=1;P0=0x7b;wela=0;delayms(1);}/*voiddisplays(uchara,ucharb,ucharc)//显示子函数{dula=1;P0=table[a];//送段选数据dula=0;P0=0xff;//送位选数据前关闭所有显示,防止打开位选锁存时wela=1;//原来段选数据通过位选锁存器形成混乱P0=0x77;//送位选数据wela=0;delayms(1);//延时dula=1;P0=table[b];dula=0;P0=0xff;wela=1;P0=0x6f;wela=0;delayms(1);dula=1;P0=table[c];dula=0;P0=0xff;wela=1;P0=0x5f;wela=0;delayms(1);}*/voiddisplays(ucharshuzi,ucharweizhi,bitdp){dula=1;if(dp)P0=table[shuzi]|0x80;elseP0=table[shuzi];dula=0;wela=1;P0=weima[weizhi];wela=0;}voidmain()//主程序{uintad;ucharA1,A2,A3,adval;AD_CS=1;//置CSAD为0,选通ADCS以后不必再管ADCSDAC0832_CS=0;DAC0832_WR=0;while(1){wela=1;P0=0x7f;wela=0;adwr=1;_nop_();adwr=0;//启动AD转换_nop_();adwr=1;P1=0xff;//读取P1口之前先给其写全1adrd=1;//选通ADCS_nop_();adrd=0;//AD读使能_nop_();
2018/2/21 19:13:45 3KB 51数模转换
1
单片机数模转换程序将da#include//52系列单片机头文件#include#defineucharunsignedchar#defineuintunsignedintsbitdula=P2^6;//申明U1锁存器的锁存端sbitwela=P2^7;//申明U2锁存器的锁存端sbitadwr=P3^6;//定义AD的WR端口sbitadrd=P3^7;//定义AD的RD端口sbitled=P2^5;sbitDAC0832_CS=P3^2;sbitDAC0832_WR=P3^6;sbitAD_CS=P0^7;ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};ucharweima[]={0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf};voiddelayms(uintxms){uinti,j;for(i=xms;i>0;i--)//i=xms即延时约xms毫秒for(j=110;j>0;j--);}voiddisplay(ucharbai,ucharshi,ucharge)//显示子函数{dula=1;P0=table[bai]|0x80;//送段选数据dula=0;P0=0xff;//送位选数据前关闭所有显示,防止打开位选锁存时wela=1;//原来段选数据通过位选锁存器形成混乱P0=0x7e;//送位选数据wela=0;delayms(1);//延时dula=1;P0=table[shi];dula=0;P0=0xff;wela=1;P0=0x7d;wela=0;delayms(1);dula=1;P0=table[ge];dula=0;P0=0xff;wela=1;P0=0x7b;wela=0;delayms(1);}/*voiddisplays(uchara,ucharb,ucharc)//显示子函数{dula=1;P0=table[a];//送段选数据dula=0;P0=0xff;//送位选数据前关闭所有显示,防止打开位选锁存时wela=1;//原来段选数据通过位选锁存器形成混乱P0=0x77;//送位选数据wela=0;delayms(1);//延时dula=1;P0=table[b];dula=0;P0=0xff;wela=1;P0=0x6f;wela=0;delayms(1);dula=1;P0=table[c];dula=0;P0=0xff;wela=1;P0=0x5f;wela=0;delayms(1);}*/voiddisplays(ucharshuzi,ucharweizhi,bitdp){dula=1;if(dp)P0=table[shuzi]|0x80;elseP0=table[shuzi];dula=0;wela=1;P0=weima[weizhi];wela=0;}voidmain()//主程序{uintad;ucharA1,A2,A3,adval;AD_CS=1;//置CSAD为0,选通ADCS以后不必再管ADCSDAC0832_CS=0;DAC0832_WR=0;while(1){wela=1;P0=0x7f;wela=0;adwr=1;_nop_();adwr=0;//启动AD转换_nop_();adwr=1;P1=0xff;//读取P1口之前先给其写全1adrd=1;//选通ADCS_nop_();adrd=0;//AD读使能_nop_();
2019/5/4 18:48:13 3KB 51数模转换
1
内含小牛U1整车线路原理,接线图,有颜色标注,可A4打印运用。
2019/11/19 18:15:45 404KB 小牛电动车 U1 线路 原理
1
最近刚更新了U1的一些套件,给大家分享下vSphere为实现业务敏捷性奠定了强大、灵活、安全的基础,有助于加快向混合云发展的数字化转型进程并推动数字化经济取得成功。
借助vSphere,您可以在适应日益增长的基础架构需求和复杂性的同时,支持新的工作负载和用户场景。
vSphere是安全SDDC的核心,可确保应用、数据、基础架构和访问的安全。
高级安全功能已完全集成到hypervisor中,由机器学习提供技术支持,可提供更好的可见性和保护并加快速度响应安全事件。
vSphere可协助您跨混合云在通用操作环境中运行、管理、连接和保护您的应用。
2018/1/9 5:51:31 105B vsphere 6.7u1 vmware
1
实验一:用MATLAB工具箱演示灰度调整,对比度加强,直方图均衡,局部平滑,中值滤波,频率域平滑与锐化,用MATLAB编写有关程序。
掌握知识点:灰度调整,对比度加强,直方图均衡,局部平滑,中值滤波,频率域平滑与锐化的原理与方法运用知识点:学会编写MATLAB函数来实现上述方法实验二:编写MATLAB函数实现最近临元法,双线性插值法掌握知识点:最近临元法,双线性插值法的原理和方法,运用知识点若给出f(1,1)=1,f(1,2)=5,f(2,1)=3,f(2,2)=4,用上述编写的函数确定f(1.2,1.6)的灰度值实验三:huffman编码掌握知识点:huffman编码的原理及方法运用知识点编写huffman编码的函数,将下列信源进行编码结点分别为u1,u2,u3,u4,u5,u6,u7,u8出现的概率分别为p1=0.10p2=0.09P3=0.11p4=0.13p5=0.07p6=0.12p7=0.08p8=0.20
2015/8/4 19:01:08 1.01MB 图像处理 MATLAB
1
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡