
圖片解碼首先是最簡單的bmp圖片解碼,關于bmp的結構可自行查閱,代碼如下#ifndef __BMPDECODE_H_#define __BMPDECODE_H_#include "ff.h"#include "lcd.h"#include "stdlib.h"#include "usb_type.h"//重定義區(qū)typedef c
這張圖是一條外部中斷線或外部事件線的示意圖,圖中信號線上劃有一條斜線,旁邊標志19字樣的注釋,表示這樣的線路共有19套.圖中的藍色虛線箭頭,標出了外部中斷信號的傳輸路徑,首先外部信號從編號1的芯片管腳進入,經過編
在這里需要理解一個概念就是,使用hal庫,首先一定要對標準庫中外設的使用,有一個很好的了解,在我這里出現(xiàn)這個原因就是由于對標準庫中外設的使用不夠了解,導致轉移到HAL庫,出現(xiàn)各種問題。本次采用的是HAL庫串口2
信的RTC芯片看起來不錯,但是貴。威帆的SD3088這個不錯,而且還可以給電池充電,便宜很多,淘寶上價格6元一片。我這項目對時間要求嚴格,就不使用1元多的芯片了。網傳STM32F1的I2C有Bug,模擬通信最為保險。威帆網站
使用的是STM32F407的板子,程序參考的是STM32F4xx固件庫的DAC_SignalsGeneration文件夾下的程序。官方例程分別使用了DAC的禁止生成波(DAC_WaveGeneration_None)的Escalator Wave梯形波,Sine Wave正弦波和stm32內置
在STM32中經常遇到一些結構體的設置,結構體的好處不用多少了,仔細看《C語言設計》譚浩強版本,這樣設計讓項目很有層次,一目了然,這里介紹一下結構體指針在STM32庫函數(shù)的應用,如下例子: (GPIO_TypeDef *) 這里
關于DAC的使用相對很簡單,這里只注意兩點:1.從了解寄存器原理來說知道DAC輸出是受DORx寄存器直接控制的,但是我們不能直接往DORx寄存器(可讀)寫入數(shù)據(jù),而是通過DHRx間接的傳給DORx寄存器,實現(xiàn)對DAC輸出的控制。
這次是做一個SD卡的USB讀卡器的功能,我們就在上次NAND Flash模擬出的U盤的工程上修改了,這樣的話只要修改一小部分了。工程的絕大部分不需要修改,只要將fsmc_nand.c文件移除工程,添加上官方的關于SDIO的SD卡的驅動
USART1需要事先進行較為麻煩配置,配置之后發(fā)現(xiàn)即使用HAL函數(shù)發(fā)送語句還要事先以字符串方式定義,實在是麻煩,雖然后面另外自己寫了一個簡單的庫來操作串口,但看到了更簡單的方法,修改標準庫中printf相關的兩個函數(shù)
芯片型號 : STM32F10X參考資料:STM32F10XXX使用手冊朱友鵬單片機完全學習課程在STM32的電源管理系統(tǒng)中,軟件工程師需要關注的是低功耗模式的選擇和實現(xiàn)。在設計產品時會出現(xiàn)如使用電池供電需要較低功耗的情景,此時
一、問題在成功實現(xiàn)了程序定時在APP和IAP之間來回切換后,以為已經掌握了stm在線升級的秘訣,于是興沖沖的開始改公司的升級程序。結果,發(fā)現(xiàn)程序可以從IAP跳轉到APP,但是程序會跑飛。在進入APP模式后,結束調試時,
閱讀nvic:系統(tǒng)中斷管理。我的理解——管理系統(tǒng)內部的中斷,負責打開和關閉中斷?;A應用1,中斷的初始化函數(shù),包括設置中斷向量表位置,和開啟所需的中斷兩部分。所有程序中必須的。用法: void NVIC_Configuratio
usb_init.c這個文件是主要是初始化。函數(shù)很簡單:/******************************************************************************** Function Name : USB_Init* Description : USB系統(tǒng)初始化* Input : None
1、打開STM32 CAN系統(tǒng)工作時鐘RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO, ENABLE);RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN1, ENABLE);2、開放系統(tǒng)中斷,根據(jù)實際情況選擇NVIC_InitStr
首先是一些必要的聲明#include#include"pwm.h"u32Sys_Clk=1000000;u16pwm1_2_Freqz;//pwm波1,2輸出口的頻率u16pwm3_4_Freqz;//pwm波3,4輸出口的頻率u16TIM2_PERIOD;//定時器跳轉周期數(shù)u16TIM4_PERIOD;u16CCR_VAL1;//
#include "sysdef.h"#define MAX_MAIL_NUM 3//CAN總線調試:0=運行 1=自環(huán)調試#define CAN_DEBUG 0//CAN總線波特率:0=250kbps,1=500kbps,2=1Mbps#define CAN1_BPS 0unsigned char can1_addr = 0;unsigned short C
首先我們需要了解一個內存映射:stm32的flash地址起始于0x0800 0000,結束地址是0x0800 0000加上芯片實際的flash大小,不同的芯片flash大小不同。RAM起始地址是0x2000 0000,結束地址是0x2000 0000加上芯片的RAM大小
1)獨立看門狗沒有中斷,窗口看門狗有中斷2)獨立看門狗有硬件軟件之分,窗口看門狗只能軟件控制3)獨立看門狗只有下限,窗口看門狗又下限和上限4)獨立看門狗是12位遞減的。窗口看門狗是7位遞減的5)獨立看門狗是用
例子一 1 ;RCC寄存器地址映像 2 RCC_BASE EQU 0x40021000 3 RCC_CR EQU (RCC_BASE + 0x00) 4 RCC_CFGR EQU (RCC_BASE + 0x04) 5 RCC_CIR EQU (RCC_BASE + 0x
我用的紅外遙控是使用的NEC協(xié)議,即使用PWM來調制發(fā)送的信息 NEC協(xié)議,其特征如下:1、8位地址和8位指令長度;2、地址和命令2次傳輸(確??煽啃裕?、PWM脈沖位置調制,以發(fā)射紅外載波的占空比代表“0”和“1”;4、