原创 在樹莓派(Linux)上使用FTDI的usb轉串口芯片ft232兩種驅動方式(VCP和D2xx)

FTDI的芯片ft232芯片提供VCP和D2xx兩種方式的驅動。目前的樹莓派系統中提供的主要還是VCP的驅動方式。但是有的代碼是基於D2xx的驅動方式的API編寫的,這時候就需要將系統中的VCP驅動方式替換成D2xx的驅動方式。   默認

原创 樹莓派上實現qt+opencv獲取mipi-csi攝像頭視頻以及qt使用wiringPi庫控制LED的亮滅

系統配置: https://blog.csdn.net/xiaolintyd/article/details/52974809 首先在系統裏面安裝opencv sudo apt-get install libopencv-dev 安裝qt

原创 Android設備通過以太網使用adb

一般pc調試Android設備的時候最常用的方法就是adb了。多數時候我們都是通過Android設備的usb口和pc相連來使用adb,其實pc機也可以通過以太網的方式使用adb。這樣在通過usb方式受限的時候,我們也可以通過以太網方式調試

原创 修改Android系統的system分區的讀寫權限

Android系統的默認分區是隻讀mount,是不能往裏寫數據的。如果想往system分區中寫數據,可以使用adb命令adb remount從新mount一下。也可以在板子的終端上面remount一下system分區使其可以讀寫:moun

原创 python調用c/c++的方法

首先編寫一個c++文件api.cpp: #include <Python.h> class MyClass { public: int add(int x,int y) { return x+y; } }; extern

原创 基於python的opencv的錄像保存視頻預覽的操作

本文介紹基於python語言使用OpenCV提供的接口在樹莓派上實現視頻的預覽和視頻的保存(avi),以及使用OpenCV讀取播放一個現有的視頻文件,並將這個視頻文件寫道另一個文件中。 本文主要參考http://www.waveshare

原创 git commit之後,想撤銷commit

寫完代碼後,我們一般這樣 git add . //添加所有文件 git commit -m "本功能全部完成"   執行完commit後,想撤回commit,怎麼辦?   這樣涼拌: git reset --soft HEAD^   這樣

原创 live555轉發H264實時流實現直播的實現

本文介紹了在樹莓派上通過live555實現了從樹莓派的USB端口獲取到的H264碼流的實時直播的功能。 GitHub:https://github.com/SkyDreamcode/live555H264-V4l2LiveStreamin

原创 泛型編程--c++中的模板特化

 模板的特化:函數模板的特化和類模板的特化 當函數模板或者類模板需要對一些特殊的類型做特殊處理的時候,需要用到c++中模板的特化機制。 比如如下代碼,模板ret_max中兩個參數t1和t2,可以是多個類型,int,double,。如果需要

原创 c++中函數對象的理解以及bind1st和bind2nd的使用

本文主要介紹了c++中函數對象的基本概念,以及stl中自帶的常用的函數對象(包括一元函數對象和二元的函數對象)。然後以binder1st和binder2nd爲例以代碼爲示例,簡單的使用方法。然後爲了加深對函數對象的理解,自己根據類模板和函

原创 數據結構中的排序--冒泡(bubble)排序

冒泡排序的思路:以升序爲例,將數列中的第一個數拿出來,依次後後面的比較,如果比後面的數大,那麼久交換,直到比較到最後一個,當這一趟比較結束後,第一個數就是最小的。然後再取第二個數,同樣的依次和後面的數比較,比較結束後,這個數據就是第二小的

原创 數據結構中的排序--堆(heap)排序

堆排序的相關理論和概念可以參考網絡上的資源。 堆排序涉及到的主要是完全二叉樹,以及堆的理解。 堆在排序中的作用是在一個完全二叉樹中選出待排序數據中的最大或者最小的值,並將這個值放置於根節點。每次只需要將根節點的值取出,放到已排好序的數列中

原创 c++ STL中的map的簡單介紹和示例

map的介紹 標準的STL關聯程序(set,map,multset,multmap)的內部結構是平衡二叉樹。平衡二叉樹分爲:avl-tree,rb-tree,aa-tree。 STL的底層機制都是以RB-tree(紅黑樹)實現的。RB-t

原创 C++實現棧的操作(push和pop)

棧的組織形式: 如上圖所示:棧也是有多個數據節點組成的,每個節點包含有數據域和指向下一個節點的指針域。並且每次的push、pop和判空都是操作的棧頂指針top。 棧中每個數據節點的定義: class data_node{ public

原创 泛型編程--c++中使用模板對任何類型的數組排序

通過使用c++中的泛型編程機制模板,實現可以對任意類型的數組裏面的數據進行排序。包括我們自己定義的一個類模板的類型。 首先我們對普通的類型int和float類型的數組進行排序,排序的模板: template <typename T> c