原创 Line Disciplines
在Linux tty子系統中,Line Disciplines處在底層驅動與上層應用的之間,先來看一個例子:#include <linux/init
原创 關於dev_set_drvdata()和dev_get_drvdata()
內核版本:Linux-4.5 dev_set_drvdata()和dev_get_drvdata()代碼如下:static inline void
原创 c printf
原文鏈接:http://www.cplusplus.com/reference/cstdio/printf/ function <cstdio> printf int printf ( const char * format
原创 RT-Thread線程
1. 線程創建 線程的創建可以使用rt_thread_create()函數,原型如下:rt_thread_t rt_thread_create(const char *name,
原创 RT-Thread初探
試驗平臺:正點原子探索者STM32F407開發板一、RT-Thread介紹RT-Thread是由國內開發者主導開發的一款開源嵌入式實時操作系統,它包含:操作系統內核、TCP/IP協議棧、文件系統、libc接
原创 第八篇 uCGUI的移植
uCGUI版本:v3.98 屏:OLED 前面顯示字符串我們自己定義了一個字庫,uCGUI中肯定也是有字庫支持的,這裏的移植目標也是調用GUI_DispString()函數後能正確顯示出字符,這裏不會將u
原创 libopencm3庫的使用
libopencm3是開源的cortex-m系列單片機的固件庫,支持stm32、atmel、nxp等等系列單片機。 在Linux下編譯需要交叉編譯器gcc,從這裏下載:https://launchpad.
原创 第九篇 藍牙配對
不管是經典藍牙也好,還是BLE也好,配對方式都有四種,分別是: 1. Numeric Comparison 2. Just Works 3. Out of Band 4. Passkey Entry 而b
原创 第七篇 OLED屏
OLED即Organic Light-Emitting Diode,相比LCD的屏,LCD屏需要背光,而OLED不需要,因爲它本身就是發光的。 開發板上的屏使用的驅動IC是SSD1306,支持並口、I2C
原创 第六篇 蜂鳴器和app_timer
開發板上的蜂鳴器是有源的,所以控制上相對比較簡單,要讓蜂鳴器出聲,只需要把控制gpio口拉高就可了。 什麼時候關閉蜂鳴器呢?有兩種辦法,一是在打開蜂鳴器之後加上一段延時,然後再關閉蜂鳴器。二是使用time
原创 第五篇 按鍵
實際上在藍牙樣板程序中已經包含了按鍵部分的初始化,我們只需要根據自己的板子做很少的配置工作,buttons_init()函數如下:static void buttons_init(void) {
原创 C++引用
一. C++中的引用 引用(reference)實際上是爲對象定義了一個別名,主要用作函數的形參。 引用通過在變量名前加上"&"符號來定義。 例如:int ival = 1024; int &refVal
原创 第四篇 串口通信
在單片機程序開發中除了單步調試外,最有效的調試方法算是打印調試了,所以這裏先把串口功能調試好,也方便以後的調試開發。 nRF51822帶有一個UART接口,但是沒有固定的TX、RX引腳,是可以任意配置到不
原创 mtk平臺充電器檢測
平臺:mt6735 5.1 首先來看BAT_thread()。void BAT_thread(void) { static kal_bool battery_meter_initilized = KAL
原创 Linux driver oops異常的處理
如果Linux驅動裏面出現了oops異常,這種情況如何快速定位到底什麼原因引起的呢,需要對驅動debug。 例如:#include <linux/init.h> #include <linux/modul