在使用JLINK下載器期間,出現(xiàn)JLINK突然不能使用,指示燈不亮,曾以為板子燒壞,多次出現(xiàn)此故障后,故此上網(wǎng)尋查,一探究竟。剛上百度,發(fā)現(xiàn)眾人也有此現(xiàn)象。原因:山寨版的jlink會出現(xiàn)固件丟失。解決方法:重新刷固件
背景知識:https://zh.wikipedia.org/wiki/I%C2%B2Cstm32中的IIC描述:I2C功能描述:I2C模塊接收和發(fā)送數(shù)據(jù),并將數(shù)據(jù)從串行轉(zhuǎn)換成并行,或并行轉(zhuǎn)換成串行??梢蚤_啟或禁止中斷。接口通過數(shù)據(jù)引腳(SDA)和時鐘引腳(SC
STC89C52rc是STC公司生產(chǎn)的一種低功耗、高性能的CMOS8位控制器,具有8k字節(jié)系統(tǒng)可編程FLASH存儲器。stc89c51用的是經(jīng)典的MCS-51內(nèi)核,但是做了很多改進(jìn),使芯片具有傳統(tǒng)51不具備的功能,但單芯上有靈活的8位CPU和系統(tǒng)
在做四旋翼時出現(xiàn)的一些問題,總結(jié)記錄一下。PWM定時器初始化先上代碼:(代碼不包括端口的初始化)voidTim2_init(void){TIM_TimeBaseInitTypeDefTIM_TimeBaseStructure;TIM_OCInitTypeDefTIM_OCInitStructure;RCC_A
最近在玩車載液晶儀表,之前用Arduino+USART液晶,后來發(fā)現(xiàn)Arduino性能不夠,就轉(zhuǎn)向STM32。由于需要在液晶屏上顯示手機(jī)信息,先是采用了普通點(diǎn)陣字庫方案,個人感覺效果慘不忍睹,滿屏的鋸齒。翻遍網(wǎng)絡(luò),沒發(fā)現(xiàn)比較合
STM32的硬件I2C不太好用,N多人深受其困擾,本人也不例外.所以干脆一不做二不休,用模擬的I2C算了,雖然速度不及硬件I2C,在一般的應(yīng)用中還是不錯的.帖上代碼和協(xié)議分析圖,造福廣大受STM32的I2C困擾的朋友,哈哈!為了跟硬件
下面編寫下USB鍵盤的程序,依然在CustomHID工程上修改。依舊最先修改的是usb_desc.c文件。我們從設(shè)備描述符開始講述。設(shè)備描述符需要修改下bMaxPacketSize(最大包長度)域為0x08,因為被本次的工程最大通訊長度就是8字
一。 寄存器和固定庫開發(fā)的區(qū)別和聯(lián)系STM32的寄存器很多,不容易記憶,調(diào)用固定庫函數(shù),設(shè)置好入口參數(shù),從而操作相應(yīng)的寄存器。二。MDK下寄存器地址和名稱映射關(guān)系GPIO各端口的地址GPIOA 的寄存器的地址=GPIOA 基地
1總體描述:DM9000A的PHY能夠以10BASE-T的標(biāo)準(zhǔn)在UTP3\\4\\5或者以100BASE-T的標(biāo)準(zhǔn)在UTP5上接口通信。它的自動協(xié)商功能是夠自動配置DM9000A最大地發(fā)揮出自身性能。它同時支持IEEE 802.3X全雙工數(shù)據(jù)流通信。2、結(jié)構(gòu)圖:3
最近在項目中要用到飛思卡爾的MMA7660這一款傳感器,我在STM32中使用的是模擬I2C來讀寫它的寄存器,閑話不多說,代碼如下:1、IO引腳配置和模擬I2C的方法/********************(C)COPYRIGHT2015ASTO****************
在NVIC中有一個硬fault狀態(tài)寄存器(HFSR),它指出產(chǎn)生硬fault的原因。如果不是由于取向量造成的,則硬fault服務(wù)例程必須檢查其它的fault狀態(tài)寄存器,以最終決定是誰上訪的。1、寄存器描述首先查看硬故障寄存器,判別
STM32和STM8的串口貌似都可以一次發(fā)送9位數(shù)據(jù),最近才注意到這個,在此記錄。一般不帶奇偶校驗位的串口數(shù)據(jù):起始位(1)+數(shù)據(jù)位(8)+停止位(1)帶奇偶校驗位的串口數(shù)據(jù):起始位(1)+數(shù)據(jù)位(8)+校驗位(1)+停止
//位帶操作,實現(xiàn)51類似的GPIO控制功能//具體實現(xiàn)思想,參考第五章(87頁~92頁).//IO口操作宏定義#define BITBAND(addr, bitnum) ((addr & 0xF0000000)+0x2000000+((addr &0xFFFFF)
STM32三種啟動模式對應(yīng)的存儲介質(zhì)均是芯片內(nèi)置的,它們是: 1)用戶閃存 = 芯片內(nèi)置的Flash。2)SRAM = 芯片內(nèi)置的RAM區(qū),就是內(nèi)存啦。3)系統(tǒng)存儲器 = 芯片內(nèi)部一塊特定的區(qū)域,芯片出廠時在這個區(qū)域預(yù)置了一段Boot
使用STM32的芯片的朋友,可以很方便的將移植到GD32上面,下面就具體移植過程分享一下:整個移植過程可以分為硬件和軟件兩個方面。硬件方面:首先要確定先前所使用ST芯片的flash大小和管腳數(shù)量,然后替換成GD相同大小
原因是JTAG已經(jīng)被占用,當(dāng)然不能再用JTAG操作啦!此時要保證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);其實咋一看是說的通的,但是在仔細(xì)看手冊的時候發(fā)現(xiàn) TC 和 TXE 標(biāo)志位在復(fù)位的時
Note: keil生成的.axf或者.elf都是可以執(zhí)行的鏡像文件。IAP User Program 需要注意的問題要設(shè)置好好中斷向量的問題,假設(shè)User Program 開始地址是(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通用定時器原理STM32系列的CPU,有多達(dá)8個定時器,其中TIM1和TIM8是能夠產(chǎn)生三對PWM互補(bǔ)輸出的高級定時器,常用于三相電機(jī)的驅(qū)動,它們的時鐘由APB2的輸出產(chǎn)生。其它6個為普通定時器,時鐘由APB1的輸出產(chǎn)生