原创 linux驅動開發之應用程序控制LCD屏

1, 打開設備 int fd = open(“/dev/fb0”, O_RDWR); 2, 獲取到lcd屏的信息xres, yres, bpp struct fb_var_screeninfo

原创 keil5 支持C51編譯

打開Keil_c51v960,直接安裝,重啓keil5即可。 下載鏈接:鏈接:https://pan.baidu.com/s/1NIlZHgw8wNStX5QGYVCYhA 提取碼:v58x

原创 keil5 支持keil4安裝包(Keil uVision5支持keil4)

下載地址http://www2.keil.com/mdk5/legacy 下載完成:

原创 STM32 UDP部分,基於ENC28J60以太網模塊,項目筆記

1.前言 嵌入式以太網開發是一個很有挑戰性的工作,通過半個月學習,我覺得大致有兩條途徑。第一條途徑,先通過高級語言熟悉socket編程,例如C#或C++,對bind,listen,connect,accept等函數熟悉之後,應用

原创 Can not read register 0 (R0) while CPU is running

問題一、cubemx生成工程,燒錄程序後,不能再燒錄。 問題二、5PIN端子SWD燒錄器可以燒錄,但是不能仿真。 程序仿真提示錯誤如下: ***JLink Error: CPU is not halted ***JLink Err

原创 keil5 編譯報Output Name not specified, please check 'Options for Target - Utilities'

keil5 編譯報Output Name not specified, please check ‘Options for Target - Utilities’ 原因是在工程裏面添加了text文件。 解決方法:添加text文件

原创 Add Flash Programming Algorithm 增加 512K

先下載MDKCM525,詳看我上一篇博客。 安裝完成後,再次打開keil,可以看到新增了很多選項。

原创 可調亮度值RGB燈光控制代碼架構賞析

#define DKLEDR_ctl(a) if(a)\ GPIO_SetBits(DKLEDR_GPIO_TYPE,DKLEDR_GPIO_PIN);\ else \

原创 STM32棧stack 堆棧 注意事項 Stack_Size EQU 0x00000400

標題一、看STM32啓動文件,例如startup_stm32f10x_cl.s 一般默認是Stack_Size EQU 0x00000400 表示工程中棧大小是1024字節,即局部變量不能大於1024字節。 如果

原创 linux驅動開發之字符設備驅動編程步驟簡述

1,實現入口函數 xxx_init()和卸載函數 xxx_exit() 2,申請主設備號 register_chrdev_region (與內核相關) 3,註冊字符設備驅動 cdev_alloc cdev_init cdev

原创 linux驅動開發之i2c從設備驅動at24c02的編程

編譯從設備驅動編程的前奏: 1, 將i2c core層和i2c adapter控制器層編譯進內核 make menuconfig Device Drivers —> <*

原创 linux驅動開發之platform平臺總線的編程(一)

總線分成三部分: bus driver device 什麼時候用平臺總線 1, 只要有設備的地址和中斷都可以用平臺總線 2, 如果寫的驅動需要在多個平臺中升級使用 3, 平臺總線只是一個功能代碼:將操作方法和操作資源

原创 示波器測量晶振、萬用表測量晶振的方法(第二版)

晶體振盪器是指從一塊石英晶體上按一定方位角切下薄片(簡稱爲晶片),石英晶體諧振器,簡稱爲石英晶體或晶體、晶振;而在封裝內部添加IC組成振盪電路的晶體元件稱爲晶體振盪器。其產品一般用金屬外殼封裝,也有用玻璃殼、陶瓷或塑料封裝的。石英

原创 串口類問題(232、485)

問題:串口不能接收數據,並且發送數據,中斷服務函數一直接收到數據; 原因/現象:電路板RX和TX引腳焊接短接。

原创 二進制轉換成十六進制輸出的C代碼

(本博客只提供很厲害的方法,沒有代碼) 項目需求是需要把一個字節(8bit)的二進制數轉換成一個十六進制的數值,然後發送給上位機; 我自己試着編寫代碼,思路是把這個8bit的二進制數存放到一個數組裏面,分高4bit和低4bit,分別轉