- 博客(121)
- 资源 (17)
- 收藏
- 关注
原创 CP AUTOSAR之SPI Handler/Driver详细说明
本文遵循autosar标准:R22-11#1 简介及功能概述SPI 处理程序/驱动程序提供对通过 SPI 总线连接的设备进行读取和写入的服务。它为多个用户提供对 SPI 通信的访问(例如 EEPROM、看门狗、I/O ASIC)。它还提供配置片上 SPI 外设所需的机制。该规范描述了单片 SPI 处理程序/驱动程序的 API。该软件模块包括处理和驱动功能。该单片 SPI 处理程 序/驱动程序的主要目标是充分利用每个微控制器的功能,并允许根据静态配置进行实现优化,以尽可能 满足 ECU 的需求。
2024-03-03 23:46:04 95 1
原创 CP AUTOSAR之LIN Driver详细说明
本文指定了 AUTOSAR 基础软件模块 LIN 驱动程序的功能、API 和配置。LIN 驱动程序是微控制器抽象层 (MCAL) 的一部分,执行硬件访问并向上层提供独立于硬件的 API。唯一可以访问 LIN 驱动程序的上层是 LIN 接口。一个 LIN 驱动程序可以支持多个通道。这意味着 LIN 驱动程序可以处理一个或多个 LIN 通道,只要它们属于同一 LIN 硬件单元。在下面的示例中,三个不同的 LIN 驱动器连接到 LIN 接口。仅包含一个 LIN 的驱动是最常见的配置。
2024-02-29 14:13:22 183 1
原创 正点原子STM32MP157开发板的一些错误和解决方法
执行make menuconfig遇到错误错误1scripts/kconfig/Makefile:208: recipe for target 'scripts/kconfig/mconf-cfg' failedmake[1]: *** [scripts/kconfig/mconf-cfg] Error 1Makefile:567: recipe for target 'menuconfig' failedmake: *** [menuconfig] Error 2解决方法sudo
2020-12-28 14:07:33 2562 1
原创 ubuntu下一些报错和解决方法
ubuntu20.04下安装了python3后执行python --version提示python找不到默认情况下,Ubuntu 20.04随附Python 3作为默认python版本。它可以作为“ python3”命令而不是“ python”使用。sudo ln -s /usr/bin/python3 /usr/bin/python然后提示ln: 无法创建符号链接’/usr/bin/python’: 文件已存在这时发现使用命令python --version依然找不到python,
2020-12-24 15:41:54 6667 2
原创 linux下的常用操作(备忘)
1.设置TAB键为4字节VI编辑器默认TAB键为8空格,我们改成4空格,用 vi打开文件 /etc/vim/vimrc,在此文件最后面输入如下代码set ts=42.vim显示行号用 vi打开文件 /etc/vim/vimrc,在此文件最后面输入如下代码set nu3.设置软件更新服务器为中国点击ubuntu左上角的活动,搜索软件和更新4.更新本地数据sudo apt-get update5.软件安装更新和卸载(以串口工具为例)sudo apt
2020-12-08 12:53:01 265
原创 香橙派4在armbian上应用自启动设置
香橙派4在armbian上应用自启动设置设置开机显示命令行编辑启动命令验证命令是否可用编辑了一个qt界面,需要设置开机启动,费了九牛二虎之力,终于搞定了。设置开机显示命令行开机不显示图形界面,直接显示命令行的操作有两种方法:多用户方法sudo systemctl set-default multi-user.target //多用户模式(命令行)sudo systemctl set-default graphical.target //图形化界面systemctl 方法system
2020-11-18 14:03:45 3243
原创 Orange Pi4在PC机上QT5开发环境的搭建
1.下载交叉编译工具下载地址:https://www.linaro.org/downloads/进去之后选择选择下的工具。将交叉编译工具 gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz复制到你想要安装的目录,并解压,命令:hasee@ubuntu:/home/user$ sudo tar -xvf gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz 我们.
2020-09-19 13:51:46 2853 2
原创 搜狗输入法在ubuntu18.04中乱码和在QT5中无法输入中文解决方法
乱码效果如下再切换一次输入法,又变正常。一直处于正常和乱码交替变化。目前按照网上的其它方法,删除搜狗目录文件,重启fcitx都无效。后来找到一个简单的方法:打开将搜狗设置到输入法的第二个位置,第一个位置我用英语来占位这样搜狗切换就没有乱码了。...
2020-09-17 09:59:22 643
原创 STM32远程升级设计
STM32 的内部闪存地址起始于0x08000000。一般情况下,程序从此地址开始写入。由于STM32内部是通过一张“中断向量表”来响应中断,程序启动后,将首先从“中断向量表”取出复位中断向量执行复位中断程序完成启动,而这张“中断向量表”的起始地址是0x08000004。中断代码响应过程简单表述如下:1、当中断来临,STM32 的内部硬件机制亦会自动将PC 指针定到“中断向量表”处,并根据中断源取出对应的中断向量执行中断服务程序;2、STM32 在复位后,先从0X08000004 地址取.
2020-07-16 17:21:11 2384
原创 stm32模拟SPI协议
代码使用HAL库实现。话不多说,直接看代码//GPIO初始化void MX_IO_Init(void){ //本例中引脚端口是GPIOB,使能时钟为__HAL_RCC_GPIOB_CLK_ENABLE(); //如果移植,请注意此处的更改 GPIO_InitTypeDef GPIO_InitStruct; /* GPIO Ports Clock Enable */ __HAL_RCC_GPIOB_CLK_ENABLE(); /*Configure GPIO pins : P
2020-07-10 00:15:52 1711 2
原创 驱动开发:实现字符设备
本文通过操作寄存器实现led灯的亮灭#include <linux/init.h>#include <linux/module.h>#include <linux/platform_device.h>#include <linux/miscdevice.h>#include <linux/fs.h>#include <linux/moduleparam.h>#include <linux/stat.h>
2020-07-10 00:01:05 180
原创 OpenCV实现图片人脸检测
本文使用python实现import cv2 as cvimport numpy as npdef face_detect_demo(src): gray = cv.cvtColor(src, cv.COLOR_BGR2GRAY) face_detector = cv.CascadeClassifier("D:/Python/Python38/Lib/site-packages/cv2/data/haarcascade_frontalface_alt_tree.xml")
2020-06-21 01:38:37 566
原创 OpenCV的分水岭算法
本文使用python实现import cv2 as cvimport numpy as npdef watershed_demo(src): print(src.shape) blurred = cv.pyrMeanShiftFiltering(src, 10, 100) # 去噪声 gray = cv.cvtColor(blurred, cv.COLOR_BGR2GRAY) # 转为灰度 ret, binary = cv.threshold(g
2020-06-20 18:15:51 282
原创 OpenCV的图像腐蚀膨胀和开闭操作
本文使用python实现图像腐蚀import cv2 as cvimport numpy as npdef erode_demo(image): # 图像腐蚀 print(image.shape) gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) ret, binary = cv.threshold(gray, 0, 255, cv.THRESH_BINARY | cv.THRESH_OTSU) # 图像二值化 cv
2020-06-18 00:10:31 577
原创 OpenCV的对象测量
import cv2 as cvimport numpy as npdef measure_object(image): gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) # RGB转灰度 ret, binary = cv.threshold(gray, 0, 255, cv.THRESH_BINARY | cv.THRESH_OTSU) # 二值化 print("threshold value : %s"%ret) c.
2020-06-12 19:16:40 443
原创 OpenCV的轮廓发现
import cv2 as cvimport numpy as npdef contours_demo(image): gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) ret, binary = cv.threshold(gray, 0, 255, cv.THRESH_BINARY | cv.THRESH_OTSU) # 图像二值化 ''' def threshold(src: Any, # 源图像,可以为8位的灰度.
2020-06-09 01:00:20 432
原创 OpenCV的霍夫曼圆检测
import cv2 as cvimport numpy as npdef detect_circles_demo(image): dst = cv.pyrMeanShiftFiltering(image, 10, 100) # 均值偏移滤波 ''' def pyrMeanShiftFiltering(src: Any, # 输入的8-比特,3-信道图象 sp: Any, # 空间窗的半径 .
2020-06-08 23:49:39 1255
原创 OpenCV的霍夫曼直线检测
import cv2 as cvimport numpy as npdef line_detection(image): gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) edges = cv.Canny(gray, 50, 150, apertureSize=3) lines = cv.HoughLines(edges, 2, np.pi/180, 200) ''' def HoughLines(image: Any.
2020-06-08 01:39:03 401 2
原创 OpenCV的Canny边缘提取
import cv2 as cvimport numpy as npdef edge_demo(image): blurred = cv.GaussianBlur(image, (3, 3), 0) # 高斯模糊,平滑处理原图像降噪 gray = cv.cvtColor(blurred, cv.COLOR_BGR2GRAY) # 转为灰度 xgrad = cv.Sobel(gray, cv.CV_16SC1, 1, 0) # x的梯度 ygra.
2020-06-07 02:41:17 605 3
原创 OpenCV关于图像梯度
Sodel算子import cv2 as cvimport numpy as npdef sobel_demo(image): # Sobel算子 grad_x = cv.Sobel(image, cv.CV_32F, 1, 0) # 求x方向上的梯度 ''' def Sobel(src: Any, # 原图像 ddepth: Any, # 图像深度 dx: Any,
2020-06-06 18:46:38 265
原创 OpenCV图像金字塔
本文使用python实现。图像金字塔import cv2 as cvimport numpy as npdef pyramid_demo(image): # 图像金字塔 level = 3 temp = image.copy() pyramid_images = [] for i in range(level): dst = cv.pyrDown(temp) ''' def pyrDown(src: An
2020-06-06 00:38:39 248
原创 OpenCV的图像二值化
本文使用python实现。全局阈值import cv2 as cvimport numpy as npdef threshold_demo(image): # 全局阈值 gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) ret, binary = cv.threshold(gray, 0, 255, cv.THRESH_BINARY | cv.THRESH_OTSU) ''' # 函数 cvThreshold 对单通
2020-06-05 01:14:44 525
原创 OpenCV模板匹配
本文使用python实现。OpenCV中模板匹配使用的公式如下函数(1):平方差匹配法:该方法采用平方差来进行匹配;最好的匹配值为0;匹配越差,匹配值越大。函数(2):归一化平方差匹配法函数(3):相关匹配法:该方法采用乘法操作;数值越大表明匹配程度越好。函数(4):归一化相关匹配法函数(5):相关系数匹配法:1表示完美的匹配;-1表示最差的匹配。函数(6):归一化相关系数匹配法代码如下import cv2 as cvimport numpy as npdef te
2020-06-04 01:36:30 1453
原创 OpenCV的直方图
本文使用python实现图像直方图图像直方图是不同像素值范围的像素个数统计图:# matplotlib.pyplot.hist()函数def hist(x: Any, # 输入的数据 bins: Any = None, # 条形数 range: Any = None, # x轴的范围,范围之外的将被舍弃,数组元组类型(起,终)
2020-06-01 16:16:44 913
原创 OpenCV的双边模糊和均值漂移
双边模糊双边滤波是一种非线性的滤波方法,是结合图像的空间邻近度和像素值相似度的一种折衷处理,同时考虑空域信息和灰度相似性,达到保边去噪的目的。双边滤波器之所以能够做到在平滑去噪的同时还能够很好的保存边缘,是由于其滤波器的核由两个函数生成:空间域核和值域核。空间域核为模板窗口的其他系数的坐标;为模板窗口的中心坐标点;为高斯函数的标准差。空间域核由像素位置欧式距离决定的模板权值:由的计算公式可知,它是计算临近点到中心点临近程度,因此定义域核是用于衡量空间临近的程度。使用该公式生成的...
2020-06-01 01:07:36 746
原创 OpenCV的高斯模糊
本文使用python实现本文的文字说明全在代码的注解里面,不要担心代码看不懂import cv2 as cvimport numpy as npdef clamp(pv): if pv > 255: return 255 elif pv < 0: return 0 else: return pvdef gaussian_noise(image): # 高斯噪声 h, w, c = image
2020-05-31 01:04:55 938
原创 OpenCV实现模糊操作
模糊操作的基本原理:1.基于离散卷积,2.定义好每个卷积核,3.不同卷积核得到不同的卷积效果,4.模糊是卷积的一种表象import cv2 as cvimport numpy as npdef blur_demo(image): # 均值模糊 dst = cv.blur(image, (5, 5)) # (5, 5)模糊参数,第一个5是水平模糊,第二个5是垂直模糊 cv.imshow("blur_demo", dst)def median_demo(image)
2020-05-30 18:17:28 609
原创 OpenCV的ROI和泛洪填充
ROI(region of interest),即感兴趣区域。机器视觉、图像处理中,从被处理的图像以方框、圆、椭圆、不规则多边形等方式勾勒出需要处理的区域,称为感兴趣区域。import cv2 as cvimport numpy as npsrc = cv.imread("C:/Users/admin/Desktop/14.jpg") # 打开一张图片cv.namedWindow("input image", cv.WINDOW_AUTOSIZE) # 设置图片尺寸,自动cv.imshow
2020-05-30 17:09:21 401
原创 stm32的低功耗模式
本文以smt32L4R5ZIT6单片机为例,编写代码。本文只讲代码,不说废话。单片机进入低功耗前,都应该关闭中断。同时在低功耗前加上如下代码功耗更低 __HAL_RCC_PWR_CLK_ENABLE();//使能电源时钟 HAL_PWR_EnableBkUpAccess();//使能LSE/RTC控制的备份域 LSE_OFF_Config();//关闭LSE时钟,确保RTC关闭 HAL_PWREx_ControlVoltageScaling(PWR_REGULATOR_VOLTAG
2020-05-30 02:27:04 3572 4
原创 OpenCV的像素运算
本文代码使用python实现import cv2 as cvimport numpy as np# 像素相加def add_demo(m1, m2): dst = cv.add(m1, m2) cv.imshow("add_demo", dst) # 显示图片# 像素相减def subtract_demo(m1, m2): dst = cv.subtract(m1, m2) cv.imshow("subtract_demo", dst)# 像素
2020-05-29 23:43:51 661
原创 OpenCV的色彩空间实例
本文使用python实现。色彩空间常用的就如下几种:RGB 、HSV 、HSI、YCrCb(YUV)RGB色彩就是常说的光学三原色,R代表Red(红色),G代表Green(绿色),B代表Blue(蓝色)。自然界中肉眼所能看到的任何色彩都可以由这三种色彩混合叠加而成。HSV(Hue, Saturation, Value)是根据颜色的直观特性由A. R. Smith在1978年创建的一种颜色空间, 也称六角锥体模型。HSI〔Hue-Saturation-Intensity(Lightnes.
2020-05-28 18:43:54 520
原创 OpenCV打开图片并获取图片信息
本文使用python语言实现,话不多说,直接上代码def get_image_info(image): print(type(image)) # <class 'numpy.ndarray'> image的类型 print(image.shape) # (496, 751, 3) 形状:高496,宽751,3通道 print(image.size) # 1117488 496x751x3 print(image.dtype) # uint8 3通道
2020-05-28 00:36:47 2400 1
原创 win10下QT5配置OpenCV方法
作为一个QT小白,最近在配置QT5+OpenCV,却发现总是踩坑。好在我成功配置好了。系统版本:win10 64位系统QT5版本:qt-opensource-windows-x86-5.12.3.exeCmake版本:cmake-3.17.0-win64-x64.zipOpenCV版本:opencv-4.3.0.zip...
2020-05-26 19:57:16 1987
原创 stm32模拟IIC操作
话不多说,直接上代码,不懂的看注解//本程序使用的IIC器件是一个三轴加速度,型号MMA845x#define IIC_WRITE 0x1C#define IIC_READ 0x1C#define clk_hight (HAL_GPIO_WritePin(GPIOB, GPIO_PIN_6, GPIO_PIN_SET)) //本程序IIC的时钟线接在PB6,置高#define clk_low (HAL_GPIO_WritePin(GPIOB, GPIO_PIN_6, G
2020-05-23 00:25:27 1590 1
原创 stm32的内部flash读写操作(含结构体的保存)
不同的stm32单片机的flash大小不同,这个需要查阅芯片手册或者查看STM32CubeMX软件。stm32的flash地址起始于0x0800 0000,结束地址是0x0800 0000加上芯片实际的flash大小,要操作flash时注意不要超出此范围。Flash中的内容一般用来存储代码和一些定义为const的数据,和一些用户自定义的保存数据,它断电不丢失。不同型号的单片机对flash的操作方式略有不同。下面我以自己用到的STML4R9VIT6和STM32L431RCT6为例贴上代码。ST
2020-05-20 01:22:22 8852
原创 python中自定义异常和assert,else,finally
class MyException(Exception): # 自定义异常类,继承自Exception pass# raise MyException("这是用户定义的异常") # 触发自定义异常try: # 捕捉异常 ...
2019-06-18 12:55:24 619
原创 python中try-except处理异常
# 异常的使用a = [1, 2, 3, 4, 5, 6, 0, 8, '22']# b = [item for item in a if 100 % item == 0]# print(b) # 直接运行报错ZeroDivisionError: integer division or modulo by z...
2019-06-18 12:09:01 854
原创 python中filter()高阶函数
# filter()函数是python内置的另一个有用的高阶函数# filter()函数接收一个函数f和一个list,# 这个函数f的作用是对每个元素进行判断,返回True或False# filter()根据判断结果自动过滤掉不符合条件的元素# 返回由符合条件元素组成的新lista = [1, 2, 3, 4, 5, 6]b = filter(lambda x: x % 2 ...
2019-06-17 18:42:36 9192 3
原创 python中map()和reduce()
# map()是python内置的高阶函数# 它接收一个函数f和一个list,并通过把函数f依次作用在list的每个元素上,# 得到一个新的list并返回# reduce()函数也是python内置的一个高阶函数# reduce()函数接收的一个参数和map()类似,一个函数f,一个list,# 但行为和map()不同,reduce()传入的函数f必须接收两个参数,# re...
2019-06-17 18:21:22 1149
原创 python中列表解析
# 列表解析a = [1, 2, 3, 4]# b = [2, 3, 4, 5]b = [item for item in a] # 通过for循环将a中的元素取出来放在item中,并将item放在列表b中print(b) # [1, 2, 3, 4] 元素和a一模一样b1 = [item + 1...
2019-06-17 17:46:37 514
QT之qcustomplot.zip
2020-11-17
STM32L4R5ZIT6_低功耗模式选择.rar
2020-05-30
stm32操作模拟IIC源码
2020-05-22
cmake-3.17.0-win64-x64_opencv-4.3.0_cvui-2.7.0.zip
2020-05-17
tensorflow-1.14.0-cp36-cp36m-manylinux1_x86_64.whl百度云地址.txt
2019-07-04
BeyondComparePro v4.1.5.21031 绿色精简中文版 x64
2018-07-19
BeyondComparePro v4.1.5.21031 绿色精破解版 x64
2018-06-25
j-link v8固件烧录工具和教程,解决keil5提示升级的问题
2018-05-02
JLINKV8固件升级
2018-04-04
Linux C编程一站式学习(宋劲杉编著word版本)
2018-01-23
Linux C编程一站式学习
2018-01-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人