原创 linux多線程編程,替代sleep的幾種方式

我只想要進程的某個線程休眠一段時間的,可是用sleep()是將整個進程都休眠的,這個可能就達不到,我們想要的效果了。 目前我知道有三種方式: 1 usleep    這個是輕量級的, 聽說能可一實現線程休眠, 我個人目前使用的這種。 2

原创 pthread多線程時sigalrm和setitimer的使用

目錄   1、signal 2、signal的註冊和捕捉 3、setitimer 1、signal 信號定義在signal.h頭文件中,信號名都定義爲正整數。 具體的信號名稱可以使用kill -l來查看信號的名字以及序號,信號是從1開始編

原创 嵌入式Linux下設置永久ip和臨時ip地址的幾種方法

目錄   永久-1: 永久-2: 臨時:(reboot後設置失效) 語法:   永久-1: 編輯文件:vi /etc/profile, 添加: ifconfig eth0 192.168.1.100 netmask 255.255.255

原创 Linux-C/C++編程實現log顯示系統時間示例程序

直接上代碼吧:   運行效果:  

原创 keil-stm32報錯:function call is not allowed in a constant expression

今天在調試一個stm32程序,將一個定長數組改爲不定長數組的時候,編譯報錯:function call is not allowed in a constant expression u8 usart1_recv = malloc(SR

原创 linux下永久修改設備權限/dev/ttyS*

rc.local /etc/rc.local 系統腳本,系統啓動後執行,與是否登陸無關,所以優先級高於profile,可以指定執行程序的權限 例如:修改ttyS0的權限 chomd 777 /dev/ttyS0

原创 stty命令用法(設置串口)

stty 用法:stty [-F 設備 | --file=設備] [設置]...  或:stty [-F 設備 | --file=設備] [-a|--all]  或:stty [-F 設備 | --file=設備] [-g|--save

原创 Linux下多線程的線程保護

目錄   一 開發環境 二 互斥鎖 一 開發環境 系統:Ubuntu16.04 線程庫:pthread 語言:c/c++ Linux下的線程保護,最常用的是互斥鎖、條件變量、信號量和讀寫鎖。 先來試一下互斥鎖吧 二 互斥鎖 多線程之間可能

原创 eclipse開發stm32記錄

目錄 (需要整套下載包的可以留言郵箱給我) 安裝eclipse + cdt  安裝GNU ARM Toolchain 安裝GNU eclipse ARM插件 之前都是用mdk-keil來開發stm32的程序,很不幸,有個項目需要用到opc

原创 使用visual stdio code開發Linux系統下的c/c++程序

首先說明,本文方法使用vscode作爲編輯器,編譯還是在Linux下進行,目前vscode或者vs等IDE開發Linux下的程序,都還不夠成熟,只能編譯相對簡單的程序,部分複雜的功能無法使用,所以這裏還是使用Linux系統本身去編譯。 其

原创 Linux下通過jsoncpp和socket解析和發送json數據的使用例程

目錄   1、json數據解析 2、json數據生成 3、json類型判斷函數,判斷key的類型函數   1、json數據解析 Json::CharReaderBuilder rbuilder; Json::CharRe

原创 chrome安裝離線插件包

插件包爲rar或者zip之類的壓縮包 1、解壓縮到一個文件夾 2、在Chrome的地址欄中輸入:chrome://extensions/  3、右上方的開發者模式按鈕上打勾 4、點擊“加載正在開發的擴展程序”按鈕,並選擇剛剛解壓的Chro

原创 Linux下的串口通訊調試工具,程序代碼示例

嵌入式領域,串口通訊是使用非常多的一種通訊協議了,所以一塊串口通訊調試工具自然必不可少。 這裏主要是針對的嵌入式Linux系統,ubuntu之類的網上有很多,就不需要看下面的了。 環境:Linux + c/c++ 說明:啓動後,選擇rea

原创 使用jsoncpp時,發生terminate called after throwing an instance of 'Json::LogicError'的處理方法

出現這種錯誤的原因很多,原因也很明顯,就是你使用了錯誤的類型處理數據,比如一個int你用string去賦值,或者讀取一個不存在的member…… 最好的方法當然時修改你的讀取函數,but,很多時候json數據時從別的地方讀取的,它會不按

原创 Linux的route命令使用總結

1、 查看本機路由表 route   2、添加一個默認路由 route add default gw 192.168.1.1 當主機不能在路由表中查找到目標主機的IP地址或網絡路由時,數據包就被髮送到默認路由(默認網關)上。默認路由的F