自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(96)
  • 收藏
  • 关注

原创 stm32一个按键消抖的新思路

在循环 或者其他任务循环中可以判断cnt是否为15 15ms之后肯定cnt达到15 这时候再判断 key的值是否还是低 就判断出来了key是否按下了 这样做的消抖 我认为优点是不用等待传统的HAL_delay 带来的阻塞问题 因为syshandler是肯定要执行的 不如利用这个 来进行一些改进 甚至还可以利用这个中断来进行时间片的轮询任务等等都是值得学习的。注意:在syshandler里面 判断flag是否为高 若为高 说明启动了按键开始计数。申明计数变量 cnt和 计数标志位 flag。

2024-01-07 22:55:43 565

原创 FPGA复习(功耗)

减小功耗 就得减小电流 电流和CF有关( C: 电容(被门数目和布线长度影响) F:时钟频率)方法大纲 减小功耗:1 时钟控制 2输入控制 3减小供电电压 4双沿触发器 5修改终端同步数字电路降低动态功耗:动态禁止在特定区域中的时钟:利用触发器的时钟使能引脚,或利用全局时钟的多路选择器。时钟使能触发器输入或全局时钟多路选择器)替代直接时钟选通(因为直接的时钟选通大多是不好的)时钟树利用缓冲器使得时钟到达各个寄存器的时间差最小。在执行时序分析时必须考虑时钟偏移。时钟偏移与时钟速度是无关的。

2023-10-15 16:17:16 901

原创 对于L1正则化和L2正则化的理解

不对,我们超参数就变成了lambad,这张图告诉我们左图L2正则化带来的是w的衰退,而右图就是L1带来的不仅是衰退,还有稀疏性,因为调整lambad甚至可以让一个feauture不起作用,不用考虑!因为w过大,之后测试或者验证的时候,你如果引入了噪声,噪声也会被放大,我们不要那么敏感,引入了正则项,也就是w的欧式距离(L2)或者曼距离(l1)。不用担心这样做,会以为本来的w很大,结果故意限制了w的大小,带来的偏差,因为本来就可以等价,因为很多w和b的值都能够成为最值,我们要做的 限制他的大小罢了。

2023-10-09 23:52:06 608 1

原创 pytorch第三天(线性回归初阶)lm老师版

【代码】pytorch第三天(线性回归初阶)lm老师版。

2023-10-02 19:14:34 116

原创 pytorch第二天(矩阵的乘法和求导)lm老师版

【代码】pytorch第二天(矩阵的乘法和求导)lm老师版。

2023-10-01 21:31:06 77

原创 pytorch第一天(tensor数据和csv数据的预处理)lm老师版

他是跑到上一个级创建的dir。

2023-09-30 21:09:22 680

原创 机器学习中分类问题的初步

用回归来预测分类,因为回归会惩罚那些太正确的分类,反而得到的结果是不好的,还有一个问题 如果你把class 1当作1,class 2当作2,class 3当3,这样做就相当于默认了 class 1 2相近。二维空间不是很好,看更高维,结果做了更高层发现效果也一般,不同系给同一个方差,减少overfitting的概率。L(u,$)是衡量不同的高斯分布sample出这79个点的几率大小好坏=f0*f1*f2*****等。做人脸辨识也可以是分类,手写字识别也可以是。找到最大的u和$的值 也就是最好的高斯分布。

2023-09-21 23:32:09 198

原创 torch其他层和联合使用

torchvison中有很多model,用于图形处理现成的,包括alexmodel,可以直接调用,语音方面也会有,但是文字当面没有。recurrent layers一般是特定的结构,在语音识别和创作用的比较多,又RNN,LSTM,GRU一些东西。CIF10图片的神经网络:卷积--最大池化--卷积--池化--卷积--池化--展平变换--全连接。distance function是计算两个点的误差,用什么函数来衡量的。dropout层,是为了防止过拟合,把其中的一些值以概率为p转换成0。

2023-09-21 20:54:37 93

原创 pytorch的卷积层池化层和非线性变化 和机器学习线性回归

把全部能想象到的参数都加进去,因为我们不知道有哪些参数是影响的,这样做,我们在train上可以得到很低,但是又可能会过拟合!forward执行的就是前向网络,就是往前推进的,当然也有反向转播,那就是用来就gradient dicent了,求导计算了。直到你用更高次的model来拟合,train 的结果更高了,但是test的结果更差了,这个就是过拟合了overfitting了。mxpool是下采样,mxunpool是上采样,dilation是空洞卷积,ceil——mode来保留,用来对应下面情况。

2023-09-20 21:22:49 273

原创 深度学习常见的transform和dataloder联合transform

dataset如同扑克牌 完好的新的,而dataloder就如同打乱了 拿在手中的牌,batch_size指的就是我每次抓牌 抓两张牌,shuffle为1的话,就打乱牌,num_workers有时候在windows下运行会出问题,这时候设置成0试试看,drop_last是如果100张牌,每次取3张,最后一张牌是否舍去?randomcrop是随机裁剪,随机裁剪可以用于数据增强,学习transform就是先看输入输出,再看案例,再试着用用,看看效果,即使不知道是什么类型的输出,直接就是那个打印。

2023-09-19 14:40:35 196

原创 深度学习pytorch之tensorboard和transform的使用

这里是将tensorboard里面加入图片的显示,HWC指定图片类型是长宽通道数,不然只能加入tensor型后面会讲 如何将tensorform来转换图片类型。writer为申明的实例,这里做的画线操作 第一个是tags是图片的标签,第二个参数是y值,第三个是步长,x值。这样操作是引入tensorboard,申明一个类,logs是生成日志的文件夹,事件就在这里产生。在同一个tag标签下面 两个图。就转换图片类型大小等的一个工具。transform的功能。关闭writer编写。

2023-09-18 23:16:40 232

原创 深度学习(一)读取数据 图片数据

【代码】深度学习(一)读取数据 图片数据。

2023-09-17 16:46:27 329

原创 ESP32---定时器+消息队列的使用

【代码】ESP32---定时器+消息队列的使用。

2023-08-28 14:18:17 219

原创 STM32移植ST77891.69寸屏幕并移植lvgl8.0.2(按键输入设备)一些心得

lvgl

2023-08-27 15:09:16 772

原创 STM32移植u8g2玩转oled 用软件iic实现驱动oled

下面就基本上可以驱动成功 最主要是修改后的u8g2的图。这里可以驱动u8g2 具体作用后续学习。移植u8g2到stm。

2023-08-19 22:08:35 1356

原创 STM32驱动OLED显示菜单功能(附带oled硬件iic驱动代码)

下面是oled.c和oled.h文件了 在下章给出。while循环里面就写菜单退出 菜单进入。这里是选择发送ABC 和接受字符。任务三是adc采样 双通道采样。将32位浮点数转换为8位可展示。利用dma采样双通道。

2023-08-19 21:28:43 382

原创 STM32CubeMx之freeRTOS定时器使用

/发送队列等待时间 第二个参数为修改的ms。一定注意定时器任务优先级 要大一点 不然会使用不了。

2023-08-19 12:18:17 151

原创 FPGA应用学习笔记----I2S和总结

增加了时序分布和分析的复杂性。使用fifo会开销大量资源。时序一致在慢时序方便得多。

2023-08-18 10:34:14 385

原创 FPGA应用学习笔记-----布线布局优化

减少布线延时,但会增加面积,若不能执行这个优化,则勾选dont touch,不将其优化。减小面积,当需要门级仿真,就不需要跨层次优化,在边界处也好调试信号。最重要的是与处理器努力的,挂钩允许设计者调整处理器努力的程度。把多位寄存器的相邻位分组放进单个逻辑元件所利用的一种方式。对于自动布局器而言,确定布局过程的最佳起始点也是如此。不能放置多个负载,只使用在关键路径钟。任何给定设计,都没有单一的最优布局。不平衡延时,时序不是最优化的。时钟到输出延时就大大缩短了。高端fpga是基于sram的。

2023-08-17 12:10:19 353

原创 STM32CubeMx之esp8266的at指令使用

AT+CIPSTART="TCP","192.168.37.1",1001//连接tcp。AT+CWJAP="CMCC-5-7","chb513029"//连接热点。AT+CIPMUX=0//设置wifi为单连接。AT+CIPSEND=5//代表发送5个字节。AT+CIPCLOSE//是断开tcp连接。AT+CWMODE=1//设置为设备模式。AT+CWLAP//搜索附近可用wifi。AT+CWQAP//断开和路由器的连接。下面是8266当服务器和设备的模式。AT //返回ok则为正常。

2023-08-16 21:16:41 399

原创 FPGA应用学习笔记-----布图布线

坏的布图导致坏的布局,惊人降低一个设计性能。主要实现控制,胶链逻辑,常常不利于分割设计好的布图,判断好坏是去分析布线与逻辑延时的关系。若关键路径在布线延时占大头的时候,则是好的否则是坏的。分割可以将运行时间惊人地减少到三个小时更小的布局布线操作,主要的结构不影响另一个!布图没有主要的分割,布图由两个小的区域组成,用来收紧关键路径时序,并且对每次时序闭环迭代更新。对于不同的模块有不同的电路和不同的关键路径,高扇出约束到小的区域的好处。

2023-08-16 10:34:39 146

原创 常用的单片机代码 (用于自己cv加快代码速度 一直更新中)

【代码】常用的单片机代码 (用于自己cv加快代码速度 一直更新中)

2023-08-15 21:16:28 162

原创 STM32CubeMx驱动SG90(360度)

SG90 360度是一直转 而不是给定角度转的。0.5ms占空比 反转速度最大。pwm周期必须为20ms。2.5ms正转速度最大。

2023-08-15 14:40:19 171

原创 FPGA应用学习笔记-----复位电路(二)和小结

不可复位触发器若和可复位触发器混合写的话,不可复位触发器是由可复位触发器馈电的。不应该出现的复位,因为延时导致了冒险,异步复位存在静态冒险。这样多时钟区域还是算异步的,每一时钟区域用一个复位同步器。附加素隐含项,利用数电方法,消除静态冒险。

2023-08-15 09:48:54 178

原创 FPGA应用学习笔记------系统复位一(同异复位)

但是在慢时钟的时候可能会产生复位丢失,也就相当于确立不了复位,用异步确立,同步释放来解决。复位恢复时间只会存在复位释放时刻,不会出现在确立时刻,则不推荐完全异步复位。要满足复位恢复时间才能正常复位,不然会产生输出准稳态,输出逻辑错误。完全同步复位,肯定是同步于时钟滴,并将总是满足时钟条件,

2023-08-14 09:55:32 127

原创 FPGA应用学习笔记----CORDIC 算法和小结

加减移位操作来运算三角函数,开根号,求对数。

2023-08-13 15:26:06 306

原创 STM32CubeMX之freeRTOS中断系统

优先级是从5-15 而不是0-15 因为前几个已经被freertos所控制了,因为操作系统不是万能的,所以我们需要弄一些中断凌驾在我们操作系统之上,中断中必须使用中断相关的函数!freertos:任务,任务状态,任务的操作,队列,二值信号量,计数信号量,互斥量,事件组,任务通知,软件定时器(也是任务),中断系统。中断不能使用阻塞函数,不能运行的太长,大多都是改变一些标志位。所有关于中断的函数,都有一个参数是关于切换任务,任何中断的优先级都大于任务。使用完一定要恢复中断。

2023-08-12 13:25:38 205

原创 STM32CubeMX之freeRTOS消息通知(有点全能)

进入前不清除数据,退出清除数据参数 0x0000000000 0xffffffff的意思。任务通知是任务自带的程序,不需要单独去创建。这里就是发送过去,然后把其存到了num中。不要有太多疑问,并不是发送num过去的。如果能覆盖就可以一直发。

2023-08-12 13:23:54 101

原创 STM32CubeMX之freeRTOS事件组

事件组就是24个标志位的组合,或操作或者与操作就可以操作其。当有多个判断,才会执行的时候,就会有事件组。例如发射导弹 需要很多人都同意才能发送。这是另一种判断形式(满足一个条件)V1版本无法自动添加事件组。这里是基本的使用 置1操作。这里进行事件组的判断。

2023-08-12 13:19:59 144

原创 STM32CubeMX之freeRTOS互斥量

现象:最低优先级被最高优先级保护先上厕所,再最高优先上厕所,中间优先级却最后上。互斥量就是谁要敢插我小弟的队,我就要打他,不能让其他人插我小弟的队。最高优先级任务:延时(10ms)再上厕所。互斥量的使用是默认开启的不用手动开启!最低优先:我进入厕所,我上完厕所了。在上锁期间,其他人无法抢占任务。这是大哥保护小弟的故事。

2023-08-12 13:17:15 111

原创 STM32CubeMX之freeRTOS信号量

二值信号量就只有0和1,被写入和被取走的两个状态,例如读到数据就是1,然后再屏幕刷新的时候,判断是否为1再进行刷新,就像flag一样,就像标志位一样,计数信号量就是例如计数器一样,计数车库里的车,来了加一,取走减一。如果我们屏幕按固定刷新,就会很消耗资源,如果我们数据变化了,再让屏幕刷新,就可以减小资源占用,这时就会用到信号量了。队列可以传输数据,任务之间和任务和中断之间,消息队列用来传数据,占用时间也长。读取信号量可以死等,等到有信号量就直接读走。计数信号量需要手动开启,默认关闭的。

2023-08-12 13:14:46 194

原创 STM32CubeMX之freeRTOS消息队列

任务二:创造队列 一个普写 一个死写 一个死读。创建一个消息队列,两个发送任务,一个接受任务。覆盖可以把原来数据覆盖了 所以可以一直写。偷窥就是知晓值,但不去拿走值。任务一:一个普写 一个死写 一个普读。任务三:一个普写 一个覆盖 一个偷窥。发送任务二:等待时间为最大。发送任务一:等待时间为0。

2023-08-12 13:11:02 166

原创 OPENCV C++(十二)模板匹配

正常模板匹配函数这里0代表的是方法,一般默认为0就okimg是输入图像 templatee是模板 resultmat是输出对于输出的说明:就是说result图像中的每一个点的值代表了一次相似度比较结果。如图可知,模板在待测图像上每次在横向或是纵向上移动一个像素,并作一次比较计算,由此,横向比较W-w+1次,纵向比较H-h+1次,从而得到一个(W-w+1)×(H-h+1)维的结果矩阵,result即是用图像来表示这样的矩阵,因而图像result的大小为(W-w+1)×(H-h+1)。

2023-08-12 12:13:33 1163

原创 FPGA应用学习笔记----定点除法的gold算法流水线设计

分母越接近一,分子就越接近答案。

2023-08-12 12:00:44 200

原创 OPENCV C++(十一)

鼠标响应函数这个是画一个十字符号 标记一个点绘制直方图和以前篇幅一样统计视频一个点不受大影响的时候直方图是高斯分布的(灰度)选取刚才选中的点在对应的直方图加1这里还要画一个drawmaker因为第二遍就不会调用了vp要是全局变量完整代码:当然还有一些变量需要自己设置全局变量直接拿原图和新图直接做差分其中如果摄像机是固定的,那么我们可以认为场景(背景)大多数情况下是不变的,而只有前景(被跟踪的目标)会运动,这样就可以建立背景模型。通过比较当前帧和背景模型,就能轻松地跟踪目标运动情况了。

2023-08-11 12:56:57 805

原创 FPGA应用学习笔记----定点除法的实现

除数左移,被除数减去除数,余数大于0则商数置1然后左移,余数作为被减数左移,再减除数,再看余数是否大于0,若大于0,还是这样操作,若小于0,则商数为0,且余数直接等于上次的余数。synplifypro自动对定点操作实现这类结构,对整数并自动地优化不利用位。迭代除法,就是直接除。迭代除法,就是直接除。

2023-08-11 12:16:00 305

原创 OPENCV C++(十)gramm矫正+直方图均衡化

两者都是只对单通道使用,对多通道的话 就需要分离通道处理再合并通道两种方法,第一个要运算次数太多了,第二个只需要查表伽马矫正函数,这里用第二种方法,且写法有点高级就是建立了查找表,然后计算查找表,再遍历像素直接赋值查找表,就不用计算了。这就是grammar矫正的代码直方图均衡化(只对单通道有效果)多通道的话先分离通道再合并一样的。

2023-08-10 11:33:37 1320

原创 FPGA应用学习-----FIFO双口ram解决时钟域+asic样机的时钟选通

asic时钟的门控时钟,fpga是不推荐采用门控时钟的,有很多方法移除fpga的时钟选通。写地址转换为格雷码后,打两拍和读地址判断是否空产生。相反读地址来判断是否满产生。60m写入异步ram,再用100M从ram中读出。如果是asic采用门控,fpga不采用。内部就一个ram双口的。

2023-08-10 11:05:40 669

原创 OPENCV C++(九)鼠标响应+dft+idft

鼠标响应回调函数(固定格式)这个鼠标响应函数 就是鼠标左键按下后,会标记一个点,画一个白色点,并将这个点存储到points当中鼠标响应函数mousecallback就是窗口名称,后面是图像,中间是函数名选取多边形roi区域函数(结合鼠标响应)建立一个全白色的mat,用鼠标响应选取白色点连接构成roi,然后通过drawcontous把roi在全白色mat里面画出,选中区域为黑色,没有选中区域为白色。也可以将其改成选中的区域为白色 没有选中为黑色 只需要将m=0;

2023-08-09 12:48:44 1380

原创 FPGA应用学习笔记--时钟域的控制 亚稳态的解决

数据要保证建立时间和保持时间才有效,RTL级无法分析亚稳态的,在门级都很难,提高设计本身的设计!用fifo存储数据,然后根据时钟2调整推出数据,要注意防止溢出,要有效握手控制,满标志通知发送端已经满了,空标志通知接收端已经没有数据可以抓取了,在处理时钟域的信号传递,一般会有故障具有随机性,不同工艺出现问题的可能性不同,对于亚稳态的检测很少,故障很难被发现,要设计中要注意。时钟域就是同一个时钟的区域,体现在laways语句边缘触发语句中,设计规模增大就会导致时钟不同步,有时差,就要设计多时钟域。

2023-08-09 11:52:50 929

mpu6050代码11 硬iic 后期移植软iic

mpu6050代码11 别忘记加串口重定向

2023-12-25

u8g2 stm ggggggggggggggggggggggggggg

sssssssssssssssssssssssssssssssssssssssssssss

2023-08-19

stm32f429驱动oled显示

zz

2023-08-19

空空如也

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

TA关注的人

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