
下面編寫(xiě)下USB鍵盤(pán)的程序,依然在CustomHID工程上修改。依舊最先修改的是usb_desc.c文件。我們從設(shè)備描述符開(kāi)始講述。設(shè)備描述符需要修改下bMaxPacketSize(最大包長(zhǎng)度)域?yàn)?x08,因?yàn)楸槐敬蔚墓こ套畲笸ㄓ嶉L(zhǎng)度就是8字
一。 寄存器和固定庫(kù)開(kāi)發(fā)的區(qū)別和聯(lián)系STM32的寄存器很多,不容易記憶,調(diào)用固定庫(kù)函數(shù),設(shè)置好入口參數(shù),從而操作相應(yīng)的寄存器。二。MDK下寄存器地址和名稱(chēng)映射關(guān)系GPIO各端口的地址GPIOA 的寄存器的地址=GPIOA 基地
1總體描述:DM9000A的PHY能夠以10BASE-T的標(biāo)準(zhǔn)在UTP3\\4\\5或者以100BASE-T的標(biāo)準(zhǔn)在UTP5上接口通信。它的自動(dòng)協(xié)商功能是夠自動(dòng)配置DM9000A最大地發(fā)揮出自身性能。它同時(shí)支持IEEE 802.3X全雙工數(shù)據(jù)流通信。2、結(jié)構(gòu)圖:3
最近在項(xiàng)目中要用到飛思卡爾的MMA7660這一款傳感器,我在STM32中使用的是模擬I2C來(lái)讀寫(xiě)它的寄存器,閑話不多說(shuō),代碼如下:1、IO引腳配置和模擬I2C的方法/********************(C)COPYRIGHT2015ASTO****************
在NVIC中有一個(gè)硬fault狀態(tài)寄存器(HFSR),它指出產(chǎn)生硬fault的原因。如果不是由于取向量造成的,則硬fault服務(wù)例程必須檢查其它的fault狀態(tài)寄存器,以最終決定是誰(shuí)上訪的。1、寄存器描述首先查看硬故障寄存器,判別
STM32和STM8的串口貌似都可以一次發(fā)送9位數(shù)據(jù),最近才注意到這個(gè),在此記錄。一般不帶奇偶校驗(yàn)位的串口數(shù)據(jù):起始位(1)+數(shù)據(jù)位(8)+停止位(1)帶奇偶校驗(yàn)位的串口數(shù)據(jù):起始位(1)+數(shù)據(jù)位(8)+校驗(yàn)位(1)+停止
//位帶操作,實(shí)現(xiàn)51類(lèi)似的GPIO控制功能//具體實(shí)現(xiàn)思想,參考第五章(87頁(yè)~92頁(yè)).//IO口操作宏定義#define BITBAND(addr, bitnum) ((addr & 0xF0000000)+0x2000000+((addr &0xFFFFF)
STM32三種啟動(dòng)模式對(duì)應(yīng)的存儲(chǔ)介質(zhì)均是芯片內(nèi)置的,它們是: 1)用戶(hù)閃存 = 芯片內(nèi)置的Flash。2)SRAM = 芯片內(nèi)置的RAM區(qū),就是內(nèi)存啦。3)系統(tǒng)存儲(chǔ)器 = 芯片內(nèi)部一塊特定的區(qū)域,芯片出廠時(shí)在這個(gè)區(qū)域預(yù)置了一段Boot
使用STM32的芯片的朋友,可以很方便的將移植到GD32上面,下面就具體移植過(guò)程分享一下:整個(gè)移植過(guò)程可以分為硬件和軟件兩個(gè)方面。硬件方面:首先要確定先前所使用ST芯片的flash大小和管腳數(shù)量,然后替換成GD相同大小
原因是JTAG已經(jīng)被占用,當(dāng)然不能再用JTAG操作啦!此時(shí)要保證CPU不進(jìn)入正常運(yùn)行狀態(tài),才能使用JTAG。解決方案:options for target ---->Debug---->右上方---->use 后面的setting按鈕------>左上方Ort下面的JTAG變?yōu)镾
網(wǎng)上關(guān)于發(fā)送字符的代碼大多如下:USART_SendData(USART1, (uint8_t)ch);while( USART_GetFlagStatus(USART1, USART_FLAG_TC) != SET);其實(shí)咋一看是說(shuō)的通的,但是在仔細(xì)看手冊(cè)的時(shí)候發(fā)現(xiàn) TC 和 TXE 標(biāo)志位在復(fù)位的時(shí)
Note: keil生成的.axf或者.elf都是可以執(zhí)行的鏡像文件。IAP User Program 需要注意的問(wèn)題要設(shè)置好好中斷向量的問(wèn)題,假設(shè)User Program 開(kāi)始地址是(0x08008000),那么中斷向量就必須設(shè)在在0x08008000處,中斷向量要
STM32位帶操作舉例intmain(void){GPIO_InitTypeDefGPIO_InitStruction;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);GPIO_InitStruction.GPIO_Pin=GPIO_Pin_8;GPIO_InitStruction.GPIO_Mode=GPIO_Mode_Out_
一、STM32通用定時(shí)器原理STM32系列的CPU,有多達(dá)8個(gè)定時(shí)器,其中TIM1和TIM8是能夠產(chǎn)生三對(duì)PWM互補(bǔ)輸出的高級(jí)定時(shí)器,常用于三相電機(jī)的驅(qū)動(dòng),它們的時(shí)鐘由APB2的輸出產(chǎn)生。其它6個(gè)為普通定時(shí)器,時(shí)鐘由APB1的輸出產(chǎn)生
STM32時(shí)鐘框圖如下:重要的時(shí)鐘:1、HSI:高速內(nèi)部時(shí)鐘信號(hào) stm32單片機(jī)內(nèi)帶的時(shí)鐘 (8M頻率)精度較差2、HSE:高速外部時(shí)鐘信號(hào)精度高 來(lái)源(1)HSE外部晶體/陶瓷諧振器(晶振)(2)HSE用戶(hù)外部時(shí)鐘3、LSE:低速外部晶體 32.7
看了很多關(guān)于配置濾波器和設(shè)置ID(StdID ExtID)的文章,發(fā)現(xiàn)都有問(wèn)題。經(jīng)過(guò)自己實(shí)驗(yàn)測(cè)試,得到的結(jié)果如下:(1) 設(shè)置ID 如果你想使用的StdID,則ExtID可以隨意設(shè)置,只需要配置正確StdID即可。同時(shí),需要設(shè)置IDE=0
在STM32平臺(tái)上編寫(xiě)如下代碼:int main(){while(1);}BUILD://Program Size: Code=340 RO-data=252 RW-data=0 ZI-data=1632編譯后,就會(huì)發(fā)現(xiàn)這么個(gè)程序已用了1600多的RAM,這1600多的RAM跑哪兒去了,分析map,你會(huì)發(fā)現(xiàn)是
1.堆和棧大小定義大小在startup_stm32f2xx.sStack_Size EQU0x00000400 AREA STACK, NOINIT, READWRITE, ALIGN=3Stack_Mem SPACE Stack_Size__initial_sp; Heap Configuration; Heap Size (in Bytes) ; Heap_Size E
給等待入門(mén)的人一點(diǎn)點(diǎn)建議 :入門(mén)必須閱讀的相關(guān)文檔1、 幾個(gè)重要官方文檔的功能:a) Datasheet——芯片基本數(shù)據(jù),功能參數(shù)封裝管腳定義和性能規(guī)范。b) 固件函數(shù)庫(kù)用戶(hù)手冊(cè)——函數(shù)庫(kù)功能,庫(kù)函數(shù)的定義、功能和用法。
Cortex-M3 支持了位操作后,可以使用普通的加載/存儲(chǔ)指令來(lái)對(duì)單一的比特進(jìn)行讀寫(xiě)?! ≡?CM3 支持的位帶中,有兩個(gè)區(qū)中實(shí)現(xiàn)了位帶。 其中一個(gè)是 SRAM 區(qū)的最低 1MB 范圍, 0x20000000 ‐\ 0x200FFFFF(SRAM 區(qū)中