原创 27、IMX6ULL學習筆記-異步通知

一、實驗說明 異步通知提供一種類似中斷的機制,當驅動程序可以訪問的時候主動告訴應用程序,類似中斷。“信號”爲此應運而生,信號類似於我們硬件上使用的“中斷”, 只不過信號是軟件層次上的。算是在軟件層次上對中斷的一種模擬,驅動可以通過

原创 26、51單片機心形燈範例程序

一、說明 本程序以STC89C52RC單片機爲主MCU,旨在爲開發者節約大量時間,請盡情複製粘貼。 二、原理圖 三、Keil C語言程序 #include<reg52.h> #include<intrins.h> #define

原创 25、IMX6ULL學習筆記-非阻塞IO

一、實驗說明 1、poll函數 APP中調用select(),poll()函數時,會使驅動調用其poll()函數. 在單個線程中, select 函數能夠監視的文件描述符數量有最大的限制,一般爲 1024,可以修改內核將監視的文件

原创 24、IMX6ULL學習筆記-阻塞IO

一、原理圖 二、中斷表 三、設備樹 四、例程說明 wake_up()函數需要從等待隊列頭中喚醒進程,故進程阻塞前,需要以進程爲形參創建等待隊列項,並將等待隊列項加入等待隊列頭中。 然後,wake_up()函數根據需要去喚醒等

原创 28、利用穩壓芯片設計一個恆流源

一、先從一個簡單的穩壓電路說起 LM7805(12V-5V)穩壓電路如下圖所示。標箭頭的是能確定的電流的走向,那麼圖中序號1、2的電流走向是什麼樣呢? 序號1分析:由於序號1左邊的電路是電容,所以說序號1支路上不可能有電流流過。

原创 23、IMX6ULL學習筆記-中斷下半部

一、原理圖 二、中斷表 三、設備樹 四、說明 本次實驗是在按鍵中斷的基礎上修改,原理圖和設備樹不變,使用中斷下半部機制,介紹work和tasklet兩種實現下半部的方式。 方式一:tasklet 方式二: 五、taskl

原创 19、IMX6ULL學習筆記-linux設備樹之按鍵中斷

一、原理圖 二、中斷表 三、設備樹 三、驅動程序 #include <linux/module.h> #include <linux/kernel.h> #include <linux/init.h> #include <l

原创 12、IMX6ULL學習筆記-linux設備樹之Beep驅動

一、原理圖 二、設備樹 在iomuxc節點下的imx6ul-evk子節點下添加pinctrl_beep: beepgrp節點 在根節點下添加devicetree-beep-pincrl子節點 三、驅動程序 #includ

原创 03、單片機MAX7219級聯教程,附驅動源碼

51或者STM32開發中,我們在很多時候都會使用到數碼管,數碼管的刷新會佔用很大的時間資源,少數的數碼管不影響系統的運行,但如果數碼管過多,刷新這一工作勢必會影響系統的運行,下面來介紹一種芯片方案,單片機只需向芯片寫入要顯示的數字

原创 02、單片機C語言之CRC32校驗碼

CRC32校驗碼主要用來檢驗數據在傳輸過程中的完整性 一、發送方 1、計算要發送數據的CRC32碼 2、發送數據包 3、數據包內容 數據+CRC32碼 二、接收方 1、接收數據包 2、提取 數據 和CRC32碼 3、

原创 11、IMX6ULL學習筆記-linux設備樹之pinctrl和gpio子系統

一、原理圖 二、寄存器 三、設備樹 在iomuxc節點下的imx6ul-evk子節點下添加pinctrl_myled: ledgrp節點 在根節點下添加devicetree-leds-pincrl子節點 四、驅動程序

原创 18、IMX6ULL學習筆記-linux設備樹之內核定時器之ioctl函數

一、設備驅動程序 #include <linux/types.h> #include <linux/kernel.h> #include <linux/delay.h> #include <linux/ide.h> #includ

原创 01、C語言字符串和數據的統一

本片文章主要介紹怎麼把C語言的字符串當成數字使用>>>>以下給出源碼解析 #include "stdio.h" static void get_sizeof(void) { printf("|<<<---------------

原创 10、IMX6ULL學習筆記-linux設備樹之普通led驅動

一、原理圖 二、寄存器 三、添加設備樹節點 /{ devicetree-leds@0x020C406C{ #address-cells = <1>; #size-cells = <1>; compatible = "i

原创 08、VSCode自帶虛擬終端的外觀設置

一、設置光標 二、設置字體 三、設置展示