- 博客(41)
- 资源 (1)
- 收藏
- 关注
原创 freeRTOS中使用cJSON死机的问题
cJSON默认使用 malloc 和 free 来申请和释放内存,如果在裸机中没有任何问题,但是现在使用了freeRTOS,那么就不能使用 malloc 和 free 来申请和示范内存,需要使用操作系统提供的函数来进行操作。在freeRTOS中使用cJSON来处理PC通过串口发送的信息,但是在串口接收处理任务中调用cJSON处理的函数后会出现死机的问题。添加上面代码后确实可以正常的进行解析和读取内部的key,但是在执行一次后又会死机!创建任务时指定了线程的堆栈大小,如果堆栈较小,则会导致程序异常。
2024-06-06 21:39:54 654
原创 Jetson Nano 编译QT的mysql模块
前言由于Qt与Mysql使用的开源协议不同,导致QT安装包中不能携带mysql的驱动模块,因此需要自行编译安装。升级make下载 make的源码wget https://ftp.gnu.org/gnu/make/make-4.3.tar.gz解压:tar -xvf make-4.3.tar.gz安装:cd make-4.3/./configuremakemake install安装cmakesudo apt install cmake编译安装mysql-conn
2021-09-13 18:27:50 367 4
原创 GRBL分析:gcode解释器(二)
GCode解释器 - gc_execute_line函数解析更新记录2021-8-23函数功能描述函数原型uint8_t gc_execute_line(char *line);传入参数:char *line返回值:内部处理流程
2021-08-24 22:41:36 2884
原创 K210 - MaixBit开发板 裸机开发(3):驱动LCD屏幕
K210 屏幕驱动准备工作开发板:Sipeed Maix Bit开发环境 : kendryte IDE 官方开发准备1、下载示例代码2、安装相关依赖文件3、编译项目4、使用KFlash上传编译完成的固件问题使用官方的示例后会出现显示图片花屏的问题解决1、查看原理图确定引脚是否正确在io_mux_init(void)函数中查看相关引脚的配置确定了引脚的配置没有问题。2、查看 void lcd_init(void) 函数内部调用了 tft_hard_init();
2021-07-26 23:54:24 2723 3
原创 K210 - MaixBit开发板 裸机开发(2):串口通信
K210 串口通信目标实现K210串口回显功能API介绍// 用于初始化串口, channle:指定的串口号void uart_init(uart_device_number_t channel);// 配置串口的相关参数void uart_config(uart_device_number_t channel, uint32_t baud_rate, uart_bitwidth_t data_width, uart_stopbit_t stopbit, uart_parity_t par
2021-03-17 22:56:18 1079
原创 OpenSSL SSL_connect: Connection was reset in connection to github.com:443
Git提交报错描述解决方法1、尝试了重新添加密钥,无法解决2、尝试使用https,无法解决3、可能是因为网络问题,导致被墙,因此开启全局代理,尝试提交。解决
2021-03-16 22:35:20 1935
原创 K210 - MaixBit开发板 裸机开发(2):Kendryte IDE 使用
Kendryte IDE 使用创建工程首先打开 Kendryte IDE,并在目录中创建一个文件夹再 Kendryte IDE中打开刚刚创建的文件夹打开后可以看到下方会出现创建一个新的项目点击后会创建一个新的项目打开json文件,可以修改项目名称修改完成后,点击kendryte,安装项目的依赖包等待依赖安装完成即可。到此就完成了一个工程的创建。点灯确定引脚原理图上的RGB分别再 13, 12, 14脚上分析K210上的管脚类似于 FPGA,GPIO脚只有 0 -
2021-03-15 23:38:16 2174
原创 K210 - MaixBit开发板 裸机开发(1):开发环境搭建
开发环境搭建准备K210的开发环境是基于VsCode二次开发的,因此需要下载官方的IDE(Kendryte IDE)。官方下载地址KendryteIDE中是可以对K210芯片进行串口下载程序的,但是由于 MaixBit这款开发板不知道再IDE中直接下载,因此这里需要借助另一个工具来进行下载,即 kflash_gui。下载地址安装KendryteIDE安装将下载好的IDE解压到目录下,注意该目录下不能出现中文。之后以管理员身份来运行 KendryteIDE.bat 脚
2021-03-12 23:05:33 1512
原创 LeetCode - 对角线遍历
对角线遍历题目描述给定一个含有 M x N 个元素的矩阵(M 行,N 列),请以对角线遍历的顺序返回这个矩阵中的所有元素,对角线遍历如下图所示。示例:输入:[ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ]]输出: [1,2,4,7,5,3,6,8,9]解析首先查看方向信息,可以得出规律,当行号为偶数是,遍历方向网上,行号为奇数时,遍历方向往下,外围部分使用null进行补全这样,可以每一行来遍历,再由行号来确定方向即可再遍历的过程中
2021-01-11 23:10:54 239
原创 LeetCode - 搜索插入位置
搜索插入位置题目描述给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例 2:输入: [1,3,5,6], 2输出: 1示例 3:输入: [1,3,5,6], 7输出: 4示例 4:输入: [1,3,5,6], 0输出: 0题目分析数组是已经排序好的数组中无重复数字,但是插入的数字可能会和数组中的数字重复若插入数字与数
2021-01-05 23:18:05 88
原创 每天一个OpenCV函数:图像的对比度和亮度的调整
算子的概念首先介绍一下算子的概念。一般的图像处理算子都是一个函数,输入一个或多个图像,产生输出图像。//算子的一般形式g(x) = h(f(x)) g(x) = h(f0(x) .... fn(x))点操作这里所将的图像亮度和对比度的调整操作,其实属于图像处理变换中比较简单的一种—点操作。点操作的特点:仅仅根据输入像素值(有时有其他参数)来计算相应的输出像素值这类算子包括:亮度和对比度调整、颜色校正和变换亮度和对比度算子g(x) = a * f(x) + b//f(x) =>
2020-05-18 21:44:33 1236
原创 如何提问面试官
每个人在面试的时候,最后阶段面试官总是会说“请问你这边还有什么问题吗?”,刚开始的新手面对这样可能会是这个表情所以我们应该如何提问面试官呢?GitHub上开源的项目,灵魂提问。。。。。。。。。。。。。。。。职责On-call (电话值班)的计划或者规定是什么?值班或者遇到问题加班时候有加班费吗?我的日常工作是什么?团队里面初级和高级工程师的比例是多少?(有计划改变吗)入职培训会是什么样的?自己单独的开发活动和按部就班工作的比例大概是怎样的?每天预期/核心工作时间是多少小时?在你看来
2020-05-08 22:08:44 265
原创 每天一个opencv函数:图形的绘制
在进行图像处理的过程中经常需要在图像上标注出识别的区域,这样就需要进行图形的绘制。这里介绍一下圆、椭圆、直线、正方形的绘制函数原型圆:void circle(Mat img, Point center, int radius, Scalar color, int thickness=1, int lineType=8, int shift=0)img为源图像center为画圆的圆...
2020-05-07 23:53:57 292
原创 每天一个opencv函数:图像叠加操作addWeighted函数
函数原型void addWeighted(InputArray src1, double alpha, InputArray src2, double beta, double gamma, OutputArraydst, int dtype=-1)参数1:InputArray类型的src1,表示需要加权的第一个数组,常常填一个Mat。参数2:alpha,表示第一个数组的权重参数3:s...
2020-05-05 23:21:23 1124 4
原创 每天一个opencv函数:鼠标操作setMouseCallback
opencv支持鼠标事件操作,通过setMouseCallback函数来设置鼠标事件的回调函数,从而使得每次操作鼠标之后就会调用对应的回调函数。函数原型void setMousecallback(const string& winname, MouseCallback onMouse, void* userdata=0);//winname:窗口的名字//onMouse:鼠标响应函...
2020-05-04 23:50:03 2755
原创 GRBL学习:VS2019下编译运行GRBL
最近一直在学习GRBL这一块,GCode已经看了很多天了。。。。。。。在进行GRBL学习的时候遇到最大的问题就是Grbl的调试问题,很多时候没法再avr上进行调试,因此导致整个学习的过程只能靠看代码来进行。这里提供给一个Grbl再Windows上运行的版本,通过了对部分文件的修改,使得GRBL可以运行再win32上,这样方便了大家的学习过程中调试。...
2020-04-25 22:35:22 1836 8
原创 Qt5中QPrintDialog遇到的问题
问题描述在学习QPrintDialog类时编写的测试代码无法编译过。提示无法解析的外部符号。。。。解决办法这是因为需要在pro文件中添加printsupport之后编辑无上述报错。...
2020-04-25 22:09:23 1212
原创 每天一个opencv函数:滑动条createTrackbar
滑动条事件函数函数原型int createTrackbar(const string& trackbarname, const string& winname, int * value, int count, TrackbarCallback onChange=0, void * userdata = 0);参数详解参数解释参数1滑动条名称参数...
2020-04-20 23:15:55 242
原创 GRBL分析:gcode解释器(一)
Gcode头文件分析Gcode部分就是GRBL中的G代码解释器,因此本部分比较复杂,但是文件整体组成较为简单,只有三个函数和三个结构体以及一些其他变量组成(虽然只有三个函数,但是确实整个项目中代码数量最多的)需要理解gcode解释器,首先需要了解解释器中使用的相关数据结构,因此第一步就是分析gcode部分数据结构!!!2020-4-12更新gcode解释器的数据结构数据结构部分这里我删...
2020-04-12 23:00:27 9717
原创 GRBL分析:protocol文件
说明protocol文件中存在多个函数,目前根据主函数的流程,暂时分析这其中的部分函数,剩余的部分函数,再进行更新。分析2020-4-8更新1、首先分析是的GRBL初始化完成之后的主循环,该循环再GRBL中的作用主要是接收串口的数据,并分析串口数据,形成完成的G代码,交给gcode解释器处理后面的工作。(这里将去除一些没有意义的宏定义)void protocol_main_loop()...
2020-04-08 22:06:23 1250
原创 GRBL分析:serial文件
宏定义:RX_BUFFER_SIZE 128 #ifdef USE_LINE_NUMBERS #define TX_BUFFER_SIZE 112 #else #define TX_BUFFER_SIZE 104SERIAL_NO_DATA 0xff#define RX_RING_BUFFER (RX_BUFFER_SIZE+1)#de...
2020-03-30 23:00:39 911
原创 LeetCode:只出现一次的数字
只出现一次的数字给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4思路异或运算:任何数与0异或都不改变值任何数与自己异或都为0由于重复的数只出现两次,那么...
2020-02-26 21:03:55 83
原创 LeetCode:存在重复
存在重复给定一个整数数组,判断是否存在重复元素。如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。示例 1:输入: [1,2,3,1]输出: true示例 2:输入: [1,2,3,4]输出: false示例 3:输入: [1,1,1,3,3,4,3,2,4,2]输出: true思路:首先对数组进行排序,如果存在重复,那么...
2020-02-25 21:08:15 117
原创 LeetCode:买卖股票的最佳时机 II
#题目描述给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这...
2020-02-19 20:00:28 97
原创 树莓派4上编译grblcontrol
问题描述近段时间一直在做雕刻机这方面,刚好买了一个树莓派4,想着将grblcontrol放到树莓派4上运行。grblcontrol本身就可以在Linux下编译运行(得益于QT的跨平台)。之后我也在Ubuntu下编译了,完美运行。于是想着在树莓派上运行也是很简单的。。。。。首先配置树莓派4的qt开发环境,本想着使用交叉编译,但是感觉太麻烦了,于是放弃。。。。。。直接在树莓派4上编译。1、更新...
2019-09-04 17:17:56 1818
原创 opencv:Microsoft C++ 异常: 内存位置 0x002af444 处的 cv::Exception
问题描述之前一直想学习opencv这一方面,一直没有时间去学习。现在这段时间有了些时间。那么现在就开始学习opencv。下载opencv最新的版本之后,打开vs2019,配置好了环境之后,编写了第一个测试程序:显示图片,但是出现了错误。解决办法查阅了相关资料之后,发现是应为Windows下路径填写错误产生的。opencv中不支持绝对路径,并且不支持’’,应该使用’ / ‘、’//’、’\...
2019-09-02 21:45:13 2285
原创 Windows下更新python的pip源
使用python默认的pip源安装文件时,有些文件的下载速度十分的缓慢,因此需要将pip的源更换为国内的源,这样的话就可以大大加快下载速度。操作方法1、Windows下进入C盘用户目录下,当前用户的目录2、在该目录下新建文件夹pip3、进入pip文件夹,新建文件pip.ini4、打开pip.ini,输入以下参数并保存[global]timeout = 6000index-url...
2019-08-28 22:19:01 781
原创 LeetCode:两数相加
题目描述给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -...
2019-08-26 22:27:43 159
原创 GRBL1.1遇到的问题
问题描述在使用Grbl v1.1版本时,导入NC文件之后可是雕刻,里面的G1指令出现了error22的报错。后来查询了error22的错误是未设定给定速度导致。但是在检查GrblControl中,发现了相关设置均正常。查询了GRBL固件中的设置也没有问题。但是始终无法指定G1指令。解决方法之后再GitHub长查询到,是因为GRBL1.1中去除了默认的给进率导致的。需要在NC文件中添加一个给进...
2019-08-21 13:35:23 4292 9
原创 LeetCode:搜索插入位置
题目给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例 2:输入: [1,3,5,6], 2输出: 1示例 3:输入: [1,3,5,6], 7输出: 4示例 4:输入: [1,3,5,6], 0输出: 0解析1...
2019-08-15 21:54:49 208
原创 LeetCode:实现strStr()
题目实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例 1:输入: haystack = “hello”, needle = “ll”输出: 2示例 2:输入: haystack = “aaaaa”, needle = “...
2019-08-13 22:20:34 168
原创 LeetCode:移除元素
题目给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 nums 中的前两个元...
2019-08-12 22:04:55 82
原创 LeetCode:删除排序数组中的重复项
题目描述给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度后面的元素。示例 2:给定 ...
2019-08-11 21:08:25 83
原创 LeetCode:合并两个有序链表
题目将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4解析:首先需要遍历两个链表,判断当前两个值的大小,判断完成之后将符合条件的节点加入到新的链表中,直到两个链表结束。这样的话我们可以使用递归的思想。比较...
2019-08-07 22:25:41 98
原创 LeetCode:有效的括号
给定一个只包括 '(',')','{','}','[',']'的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例2:输入: "()[]{}"输出: true示例3:输入: "(]"输出: fals...
2019-07-31 22:23:19 86
原创 LeetCode:最长公共前缀
编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串""。示例1:输入: ["flower","flow","flight"]输出: "fl"示例2:输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀。说明:所有输入只包含小写字母a-z。解析:首先对所有的字符串进行排序,按...
2019-07-30 21:37:21 80
原创 LeetCode:罗马数字转整数
罗马数字包含以下七种字符:I,V,X,L,C,D和M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做II,即为两个并列的 1。1...
2019-07-29 22:34:43 69
原创 Winpcap接收函数返回较慢问题
这段时间在做一个网络的项目,需要接收FPGA发送过来的状态信息。因为FPAG无法对ARP进行回应,因此无法使用socket来进行进行编程。在查阅相关资料之后选择了Winpcap来进行收法包。这里不详细说明Winpcap的相关用法,可以参考官方的说明文档。winpcap提供了两种方式来接受网卡上的数据包,一个是回调函数的形式(pcap_loop),另一个就是非回调函数(pcap_next_e...
2019-05-04 12:18:30 844
原创 解决request获取网页之后的中文乱码问题
在爬取网页的时候经常使用到request库来获取网页的源码request会根据网页中的编码方式来进行编码,但是有时request获取到的网页中中文出现了乱码,但是查看获取到的编码当时依旧是utf-8的编码。按照其他的方法来指定编码方式为utf-8后并不能解决这个问题response = requests.get(url, headers = headers)response....
2018-11-05 11:03:22 4441
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人