0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

142條STM32遇到的坑,你知道幾個(gè)?

Dp1040 ? 來(lái)源:玩點(diǎn)嵌入式 ? 2023-04-27 11:04 ? 次閱讀

1、AHB系統(tǒng)總線分為APB1(36MHz)和APB2(72MHz),其中2>1,意思是APB2接高速設(shè)備。

2、Stm32f10x.h相當(dāng)于reg52.h(里面有基本的位操作定義),另一個(gè)為stm32f10x_conf.h專(zhuān)門(mén)控制外圍器件的配置,也就是開(kāi)關(guān)頭文件的作用

3、HSE Osc(High Speed External Oscillator)高速外部晶振,一般為8MHz,HSI RC(High Speed InternalRC)高速內(nèi)部RC,8MHz

4、LSE Osc(Low Speed External Oscillator)低速外部晶振,一般為32.768KHz,LSI RC(Low Speed InternalRC)低速內(nèi)部晶振,大概為40KHz左右,提供看門(mén)狗時(shí)鐘和自動(dòng)喚醒單元時(shí)鐘源

5、SYSCLK時(shí)鐘源有三個(gè)來(lái)源:HSI RC、HSE OSC、PLL。

pYYBAGD2PlmAW0h7AABGi52MgGM539.png

6、MCO[2:0]可以提供4源不同的時(shí)鐘同步信號(hào),PA8。

7、GPIO口貌似有兩個(gè)反向串聯(lián)的二極管用作鉗位二極管。

poYBAGD2Pl6AFIWQAAD3QRi_Y0g399.png

8、總線矩陣采用輪換算法對(duì)系統(tǒng)總線和DMA進(jìn)行仲裁

9、ICode總線,DCode總線、系統(tǒng)總線、DMA總線、總線矩陣、AHB/APB橋

10、在使用一個(gè)外設(shè)之前,必須設(shè)置寄存器RCC_AHBENR來(lái)打開(kāi)該外設(shè)的時(shí)鐘

11、數(shù)據(jù)字節(jié)以小端存儲(chǔ)形式保存在存儲(chǔ)器中。

12、內(nèi)存映射區(qū)分為8個(gè)大塊,每個(gè)塊為512MB。

13、FLASH的一頁(yè)為1K(小容量和中容量),大容量是2K。

14、系統(tǒng)存儲(chǔ)區(qū)(SystemMemory)為ST公司出廠配置鎖死,用戶(hù)無(wú)法編輯,用于對(duì)FLASH區(qū)域進(jìn)行重新編程。 所以我們燒寫(xiě)程序務(wù)必選擇BOOT1 = 0,這樣通過(guò)內(nèi)嵌的自舉程序?qū)LASH進(jìn)行燒寫(xiě),比如中斷向量表和代碼

15、STM32核心電壓為1.8V

16、STM32復(fù)位有三種:系統(tǒng)復(fù)位、上電復(fù)位、備份區(qū)域復(fù)位。 其中系統(tǒng)復(fù)位除了RCC_CSR中的復(fù)位標(biāo)志和BKP中的數(shù)值不復(fù)位之外,其他的所有寄存器全部復(fù)位。 觸發(fā)方式例如外部復(fù)位、看門(mén)狗復(fù)位、軟件復(fù)位等; 電源復(fù)位由于外部電源的上電/掉電復(fù)位或者待機(jī)模式返回。 復(fù)位除了BKP中的寄存器值不動(dòng),其他全部復(fù)位; 備份區(qū)域復(fù)位的觸發(fā)源為軟件復(fù)位或者VDD和VBAT全部掉電時(shí)。

17、單片機(jī)復(fù)位后所有I/O口均為浮空輸入狀態(tài)

18、68個(gè)可屏蔽中斷通道,16個(gè)可編程優(yōu)先級(jí),16個(gè)內(nèi)核中斷,一共68+16=84個(gè)中斷。 103系列只有60個(gè)中斷,107系列才有68個(gè)中斷

19、系統(tǒng)啟動(dòng)從0x00000004開(kāi)始,0x000 0000保留

20、(NestedVectored Interrupt Controller)NVIC嵌套向量中斷控制器,分為兩種:搶先式優(yōu)先級(jí)(可嵌套)和中斷優(yōu)先級(jí)(副優(yōu)先級(jí),不能嵌套)。 兩種優(yōu)先級(jí)由4位二進(jìn)制位決定。 分配下來(lái)有十六種情況:

pYYBAGD2PmKASxEnAACVJAidgp0435.png

21、0號(hào)搶先優(yōu)先級(jí)的中斷,可以打斷任何中斷搶先優(yōu)先級(jí)為非0號(hào)的中斷; 1號(hào)搶先優(yōu)先級(jí)的中斷,可以打斷任何中斷搶先優(yōu)先級(jí)為2、3、4號(hào)的中斷; ……; 構(gòu)成中斷嵌套。 如果兩個(gè)中斷的搶先優(yōu)先級(jí)相同,誰(shuí)先出現(xiàn),就先響應(yīng)誰(shuí),不構(gòu)成嵌套。 如果一起出現(xiàn)(或掛在那里等待),就看它們2個(gè)誰(shuí)的子優(yōu)先級(jí)高了,如果子優(yōu)先級(jí)也相同,就看它們的中斷向量位置了。 原來(lái)中斷向量的位置是最后的決定因素?。。?!

22、上電初始化后AIRC初始化為0,為16個(gè)搶先式優(yōu)先級(jí),但是由于所有的外部通道中斷優(yōu)先級(jí)控制字PRI_n為0,所以搶先式優(yōu)先級(jí)相同,此時(shí)就不能嵌套了

23、NVI中有ISER[2](Interrupt Set-Enable Registers),ICER[2](Interrupt Clear-Enable Registers),ISPR[2](Interrupt Set-Pending Registers),ICPR[2](Interrupt Clear-Pending Registers), IABR[2](Active Bit Registers),IPR[15](InterruptPriority Registers)定義。 其中ISER和ICER分別為中斷使能和中斷失能寄存器,都是寫(xiě)1來(lái)使能/失能中斷的。 為什么寫(xiě)1? 為什么不采用一個(gè)寄存器而用兩個(gè)寄存器來(lái)表示中斷使能/失能狀態(tài)? 由于硬件,寫(xiě)0比較復(fù)雜,并且可能造成其他位的狀態(tài)改變,所以用1來(lái)表示打開(kāi)或者關(guān)斷是比較合理的

24、中斷標(biāo)志位需要手動(dòng)清除

25、配置外圍器件的一般步驟:

1、打開(kāi)端口時(shí)鐘。 2、定義初始化結(jié)構(gòu)體并初始化。 3、調(diào)用

26、串口的奇偶校驗(yàn):如果是奇偶校驗(yàn),那么USART_InitStructure.USART_WordLength= USART_WordLength_9b; 這個(gè)數(shù)據(jù)的長(zhǎng)度必須設(shè)定為9位!

27、ADC的規(guī)則組可以自定義轉(zhuǎn)換通道順序和轉(zhuǎn)換的通道個(gè)數(shù)。 在實(shí)際應(yīng)用中,有時(shí)候希望有一些特別的通道具有很高的優(yōu)先權(quán),需要在規(guī)則組進(jìn)行轉(zhuǎn)換的時(shí)候強(qiáng)制打斷,進(jìn)行另一個(gè)通道的轉(zhuǎn)換,這樣一組通道,叫做注入組。

28、定時(shí)器的輸出比較模式:Timing(凍結(jié),什么都不做,普通定時(shí)),Active(OCxREF輸出高電平有效),Inactive(OCxREF輸出低電平),Toggle(比較成功后翻轉(zhuǎn)電平)。

29、STM32的定時(shí)器從0開(kāi)始計(jì)數(shù),滿(mǎn)足一些條件,給出標(biāo)志位(比如匹配成功、時(shí)間更新、溢出等)然后從0開(kāi)始計(jì)數(shù)。 這一點(diǎn)和51不同。

30、OCx=OCxREF+極性

31、自動(dòng)裝載寄存器和影子寄存器:前者相當(dāng)于51當(dāng)中的溢出設(shè)定數(shù)值。 而影子寄存器顧名思義是影子,就是寄存器的另一分copy。 實(shí)際起作用的是影子寄存器,而程序員操縱的則是自動(dòng)裝載寄存器。 如果APPE位使能,表明自動(dòng)裝載寄存器的值在下一次更新事件發(fā)生后才寫(xiě)入新值。 否則,寫(xiě)入自動(dòng)裝載寄存器的值會(huì)被立即更新到影子寄存器。

pYYBAGD2PmeAR2owAACragATJD8195.png

32、RCC_PCLK1Config(RCC_HCLK_Div4); PCLK1的4分頻給定時(shí)器基準(zhǔn)時(shí)鐘

33、定時(shí)器配置:RCC、NVIC、GPIO(OC輸出或者PWM)、TIMx

34、通用定時(shí)器可以輸出4路不同的PWM,高級(jí)定時(shí)器可以輸出4路不同的PWM外,還可以輸出3路互補(bǔ)的PWM信號(hào)(驅(qū)動(dòng)三相電機(jī)),一共有7路。 這樣算出來(lái)STM32可以產(chǎn)生30路PWM=72+44

35、

poYBAGD2PmuAQ57EAACbNuzCCb0830.png

36、高級(jí)定時(shí)器時(shí)鐘源掛在了APB2上,而通用定時(shí)器掛在APB1上。 AHB(72mhz)→APB1分頻器(默認(rèn)2)→APB1時(shí)鐘信號(hào)(36mhz)→倍頻器(2倍)→通用定時(shí)器時(shí)鐘信號(hào)(72mhz)。 如果APB1沒(méi)有分頻,那么通用定時(shí)器的時(shí)鐘信號(hào)頻率就直接等于APB1的時(shí)鐘頻率,沒(méi)有上述的倍頻器2過(guò)程。 TIM_SetAutoreload()用來(lái)改變PWM的頻率,TIM_SetCompare1()用來(lái)改變占空比

37、有刷電機(jī)一般啟動(dòng)力矩大一些,無(wú)刷電機(jī)啟動(dòng)力矩小,運(yùn)行起來(lái)力矩大。 有刷電機(jī)采用電刷機(jī)械電流換向,而無(wú)刷電機(jī)則通過(guò)霍爾傳感器測(cè)出轉(zhuǎn)子的電流來(lái)判斷電機(jī)的運(yùn)動(dòng)位置和方向,返回給控制回路。

38、死區(qū)是必須要有的,因?yàn)檫@涉及到電路的短路問(wèn)題。 晶閘管在換向的時(shí)候需要死區(qū)時(shí)間來(lái)徹底關(guān)斷線路

39、剎車(chē)功能用來(lái)在控制回路出現(xiàn)問(wèn)題時(shí),硬件自動(dòng)給予外部電機(jī)進(jìn)行緊急剎車(chē)制動(dòng),反應(yīng)在PWM上持續(xù)給出一個(gè)固定的占空比? (三相驅(qū)動(dòng)也是? )

40、PWM輸出最好采用PWM模式,其他的比較輸出模式相位會(huì)慢慢改變,不精準(zhǔn)

41、對(duì)FLASH的讀寫(xiě)需要先解鎖后加鎖。 FLASH寫(xiě)0容易,寫(xiě)1難。

42、下載程序有兩種方式,一種為ICP(在線編程),適用于JTAG或SWD協(xié)議下的燒寫(xiě)程序。 另一種成為IAP(在應(yīng)用編程),適用于很多接口(USB,串口,CAN)下載到存儲(chǔ)器中,IAP允許在程序運(yùn)行時(shí)重新燒寫(xiě)FLASH

43、FLASH分為主存儲(chǔ)器(這里放置用戶(hù)的程序代碼)和信息塊(啟動(dòng)代碼),除此之外,還有一部分叫做系統(tǒng)存儲(chǔ)器,這一塊用戶(hù)不可操作,為ST公司出產(chǎn)后固化,為系統(tǒng)的上電自舉程序

44、FLASH在寫(xiě)的時(shí)候,一定不能讀,如果有讀操作,那么將會(huì)鎖住總線

45、對(duì)FLASH操作時(shí),必須打開(kāi)HIS

46、STM32有兩種看門(mén)狗(IWDG獨(dú)立看門(mén)狗《獨(dú)立時(shí)鐘》,WWDG窗口看門(mén)狗《由APB1分頻而來(lái)》)

47、SPI的的最高頻率為36MHz(fpclk/2)

48、 TIM1和TIM8高級(jí)定時(shí)器在輸出PWM時(shí),需要配置一下主輸出功能(CtrlPWMOutputs)才能輸出PWM。 其他的通用定時(shí)器不需要這樣配置。 但是TIM6和TIM7沒(méi)有PWM輸出功能。

49、Code為程序代碼部分

RO-data 表示程序定義的常量(如:const temp等);

RW-data 表示已初始化的全局變量

ZI-data 表示未初始化的全局變量,以及初始化為0的變量

代碼,RO數(shù)據(jù),RW數(shù)據(jù).............閃光

RW-data, ZIdata.公羊

初始化時(shí)RW-data從flash拷貝到RAM

50、STM32F103ZET6有144個(gè)引腳(Z為144),其中,可用IO口為112個(gè)(7X16=112,ABCDEFG口)

51、ARM公司只生產(chǎn)內(nèi)核標(biāo)準(zhǔn),不生產(chǎn)芯片。 ST、TI這樣的公司從ARM公司那里購(gòu)買(mǎi)內(nèi)核,然后外加自己的總線結(jié)構(gòu)、外設(shè)、存儲(chǔ)器、始終和復(fù)位、I/O后就組成了自己的芯片。

pYYBAGD2Pm-AMiYWAADEvuFRcqM224.png

52、CMSIS標(biāo)準(zhǔn)用于在向上的用戶(hù)層和下面的硬件層交換信息。 這個(gè)架構(gòu)當(dāng)然可以自己定義,但是這樣的話就會(huì)沒(méi)有標(biāo)準(zhǔn)。 所以強(qiáng)制使用CMSISI標(biāo)準(zhǔn)來(lái)設(shè)計(jì)芯片。 通俗點(diǎn)的講就是系統(tǒng)初始化的函數(shù)名稱(chēng)CMSIS定義為SystemInit(),GPIO_ResetBits()等

53、端口復(fù)用和端口重映射是兩個(gè)概念:前者在使能其對(duì)應(yīng)的端口和對(duì)應(yīng)的功能時(shí)鐘即可。 后者需要打開(kāi)AFIO時(shí)鐘,然后進(jìn)行端口的重映射GPIO_PinRemapConfig()

54、下載程序只能使用串口1,在硬件設(shè)計(jì)時(shí)一定要注意!

55、J-TAG調(diào)試頻率一般設(shè)定為2MHz,而SWD調(diào)試頻率可以設(shè)定為10MHz

56、SysTick的中斷實(shí)現(xiàn)可以有兩種方式:循環(huán)等待和中斷法。 推薦用循環(huán)等待,中斷法可能會(huì)出問(wèn)題而且占用資源。

57、部分I/O引腳是5V兼容的。 單個(gè)I/O的最大驅(qū)動(dòng)電流和灌入電流均為25mA。 整個(gè)芯片的電流為150mA

58、KEIL支持位段操作,可以利用C語(yǔ)言中的位段知識(shí)定義位段結(jié)構(gòu)體,然后對(duì)單獨(dú)的寄存器進(jìn)行單獨(dú)的位操作。

59、關(guān)于內(nèi)部上下拉電阻的設(shè)置:如果外部的按鍵另一頭接地,那么需要設(shè)置成上拉電阻。 (理由是當(dāng)沒(méi)有按下按鍵時(shí),由于上拉,輸入為高電平; 按下時(shí),由于外部接地,輸入為低電平。 )同理,如果外部的按鍵另一頭接高電平,那么需要設(shè)置成下拉電阻。

60、串口中斷TXE和TC的區(qū)別:其實(shí)很明顯,一個(gè)是發(fā)送寄存器空標(biāo)志,一個(gè)是發(fā)送完成標(biāo)志。 因?yàn)榇谠诎l(fā)送的時(shí)候首先需要把發(fā)送寄存器中的數(shù)據(jù)移位到移位寄存器(影子寄存器)后再串行發(fā)送出去。 所以當(dāng)發(fā)送寄存器DR空時(shí)說(shuō)明現(xiàn)在可能正在往外面發(fā)送數(shù)據(jù),數(shù)據(jù)可能還沒(méi)有發(fā)送完。 但是發(fā)送完成不一樣,他是在移位寄存器將本次數(shù)據(jù)全部移位完成后設(shè)置的標(biāo)志位(也就是發(fā)送完了停止位)。 這么看來(lái):TXE允許程序有更充裕的時(shí)間填寫(xiě)TDR寄存器,保證發(fā)送的數(shù)據(jù)流不間斷。 TC可以讓程序知道發(fā)送結(jié)束的確切時(shí)間,有利于程序控制外部數(shù)據(jù)流的時(shí)序。

61、窗口看門(mén)狗顧名思義有一個(gè)窗口,這個(gè)窗口的橫坐標(biāo)為時(shí)間,意思是在指定的時(shí)間范圍內(nèi)刷新寄存器,否則單片機(jī)復(fù)位。 窗口的上限由人來(lái)設(shè)定W[6:0],下線定死為0x40Twwdg=(4096×2^WDGTB×(T[5:0]+1)) /Fpclk1; Twwdg為超時(shí)時(shí)間ms,F(xiàn)pclk1為APB1時(shí)鐘KHz,

62、TIMx通用定時(shí)器有4個(gè)獨(dú)立通道,分別可以用來(lái)作為:輸入捕獲、比較輸出、PWM生成、單脈沖模式輸出。

63、定時(shí)器的時(shí)鐘來(lái)源有4個(gè):內(nèi)部時(shí)鐘(CK_INT),外部時(shí)鐘模式1(TIx),外部時(shí)鐘模式2(ETR),內(nèi)部觸發(fā)模式(ITRx,這個(gè)用來(lái)定時(shí)器的同步)

64、定時(shí)器中斷溢出更新時(shí)間:Tout=((arr+1)*(psc+1))/Tclk,ARR為自動(dòng)裝載寄存器(1~65535)、PSC為分頻系數(shù),TCLK為輸入時(shí)鐘頻率(Mhz)

65、PWM1和PWM2模式的區(qū)別僅在于相位的180度。 前者高電平時(shí),后者低電平。 感覺(jué)好雞肋,OCxREF極性就可以實(shí)現(xiàn)這個(gè)功能。

66、定時(shí)器輸入捕捉有一個(gè)濾波器,顧名思義濾波器起到的就是濾波的作用,在捕捉外部信號(hào)時(shí),信號(hào)可能不穩(wěn)定,此時(shí)需要濾波:當(dāng)檢測(cè)到有外部輸入時(shí),需要再連續(xù)采樣N次如果確定為高電平/低電平,則觸發(fā)響應(yīng)中斷(如果開(kāi)啟了的話)。

67、電容觸摸屏原理:通過(guò)充放電的曲線不同來(lái)檢測(cè)是否被按下。 實(shí)際的實(shí)驗(yàn)過(guò)程中,TPAD可以用一塊覆銅區(qū)域來(lái)替代,通過(guò)電容的充放電常數(shù)來(lái)確定是否按下。

pYYBAGD2PnSAeVvfAABLRgP7zeQ321.png

68、OLED,即有機(jī)發(fā)光二極管(OrganicLight-Emitting Diode),又稱(chēng)為有機(jī)電激光顯示(Organic Electroluminesence Display,OELD)。 下圖為OLED的GRAM與屏幕的對(duì)應(yīng)表

pYYBAGD2PniADOXfAAAv9cuvFrg336.png

PAGE2單獨(dú)列出來(lái):

poYBAGD2PnyAXOlJAABpLsLz9OE775.png

69、USART可以操縱SPI設(shè)備。 不過(guò)最大頻率只有4.5MHz

70、使用I/O口時(shí)應(yīng)該注意的問(wèn)題

pYYBAGD2PoGAP6inAAFL92nc688721.png

71、ADC的Vref+和Vdda與VSS,Vref-一定要加高質(zhì)量的濾波電容,切靠近單片機(jī)。

poYBAGD2PoWAPgEXAACN-MtkilM599.png

72、ADC分為規(guī)則組和注入組,前者有16個(gè)通道,后者有4個(gè)通道。 并且16個(gè)通道公用一個(gè)數(shù)值寄存器,注入組的4個(gè)通道分別有一個(gè)數(shù)值寄存器。

9272edde-e455-11ed-ab56-dac502259ad0.jpg

73、采樣頻率越高,輸入阻抗要求越小。

74、Stm32進(jìn)入中斷的最短周期為6個(gè)周期

75、

pYYBAGD2Po6AO8lYAACMiGh2ZFQ122.png

76、

poYBAGD2PpKAFlnkAADi6D3NZ7o239.png

77、FSMC,即靈活的靜態(tài)存儲(chǔ)控制器。 能夠與同步或異步存儲(chǔ)器和16位PC存儲(chǔ)器卡接口,STM32的FSMC接口支持包括SRAM、NANDFLASH、NORFLASH和PSRAM等存儲(chǔ)器。

78、平時(shí)所說(shuō)的U盤(pán)里的FLASH存儲(chǔ)器有兩種類(lèi)型:NANDflash和NOR flash。

非電閃光燈 無(wú)閃光燈
不能直接運(yùn)行里面的代碼 可以直接運(yùn)行里面的代碼
寫(xiě)入和擦除速度快 寫(xiě)入和擦除速度慢
讀取速度稍慢 讀取速度稍快
擦寫(xiě)周期100萬(wàn)次 擦寫(xiě)周期10萬(wàn)次
成本低,容量高 成本高,容量低
一般為串行接口 有SRAM接口

79、TFT在操作時(shí),可以當(dāng)作外部SRAM來(lái)操作,這樣的話,如果單片機(jī)有FSMC接口,就可以使用NORFLASH的SRAM接口去控制,速度非常快。

80、Stm32的的FSMC有4個(gè)256MB的存儲(chǔ)塊,一共尋址1GB的外部存儲(chǔ)器空間。

pYYBAGD2PpaAMfO3AACrw6Jcb0Y710.png

81、在STM32內(nèi)部,F(xiàn)SMC的一端通過(guò)內(nèi)部高速總線AHB連接到內(nèi)核Cortex-M3,另一端則是面向擴(kuò)展存儲(chǔ)器的外部總線。 內(nèi)核對(duì)外部存儲(chǔ)器的訪問(wèn)信號(hào)發(fā)送到AHB總線后,經(jīng)過(guò)FSMC轉(zhuǎn)換為符合外部存儲(chǔ)器通信規(guī)約的信號(hào),送到外部存儲(chǔ)器的相應(yīng)引腳,實(shí)現(xiàn)內(nèi)核與外部存儲(chǔ)器之間的數(shù)據(jù)交互。

82、FSMC中的DATASET和ADDSET的設(shè)置需要參看外部存儲(chǔ)器的時(shí)序圖來(lái)確定。 一般而言,DATASET指的是數(shù)據(jù)建立時(shí)間,也就是讀/寫(xiě)信號(hào)開(kāi)始到讀/寫(xiě)信號(hào)停止(上升沿存儲(chǔ)數(shù)據(jù))的持續(xù)時(shí)間。 (一般來(lái)說(shuō)寫(xiě)比讀快! )。 而ADDSET指的是地址建立時(shí)間,指的是片選之后到讀/寫(xiě)操作之前的時(shí)間,這是針對(duì)SRAM來(lái)說(shuō)的,如果操縱的是TFT,不存在地址線,所以此時(shí)的ADDSET就是讀/寫(xiě)信號(hào)結(jié)束到RS電平的轉(zhuǎn)換時(shí)間。

pYYBAGD2PpuAefzOAAEPnI4G8yc629.png

83、pYYBAGD2PpaAMfO3AACrw6Jcb0Y710.png

84、

poYBAGD2PqSASaRHAAG07aymUx4332.png

85、FSMC的三個(gè)配置寄存器:FSMC_BCRx(片選控制配置)、FSMC_BTRx(片選時(shí)序)、FSMC_BWTRx(片選寫(xiě)時(shí)序)。

86、RTC時(shí)鐘配置必須要用到BKP寄存器,BKP寄存器在單片機(jī)復(fù)位、電源復(fù)位、待機(jī)喚醒模式下是不會(huì)更改值的,他的供電由VDD供電,VDD被切斷后自動(dòng)切換至外部的VBAT供電。

87、要修改BKP寄存器的值,必須取消其寫(xiě)保護(hù)的標(biāo)志。 BKP寄存器在上電時(shí)自動(dòng)寫(xiě)保護(hù)。

88、 Stm32有三種省電模式:

poYBAGD2PqiAIPE2AABsbrfyC-g264.png

三種省電模式中,耗電量從上到下依次降低,待機(jī)模式的電流僅為2uA。

89、從待機(jī)模式中喚醒單片機(jī)等效于讓單片機(jī)復(fù)位,但是電源寄存器的值會(huì)有一個(gè)標(biāo)志位指示單片機(jī)是被喚醒的,不是被復(fù)位的。

90、ADC的時(shí)鐘不要超過(guò)14MHz,否則轉(zhuǎn)換精度會(huì)下降。 最大轉(zhuǎn)換速率為1MHz,即轉(zhuǎn)換周期為1us(14MHz,采樣周期為1.5個(gè)ADC時(shí)鐘)

91、Tcovn=采樣時(shí)間+12.5個(gè)周期。 采樣時(shí)間盡量選長(zhǎng)一點(diǎn),這樣精度高一些,但是轉(zhuǎn)換速率下降,這也是有利必有弊。

92、

pYYBAGD2Pq2ACj1BAACDZUwrgvE613.png

93、拿ARM7TDMI來(lái)說(shuō),T代表Thumb指令集,D是說(shuō)支持JTAG調(diào)試(Debugging),M意指快速乘法器,I則對(duì)應(yīng)一個(gè)嵌入式ICE模塊。

94、 MMU作為嵌入式處理器與應(yīng)用處理器的分水嶺標(biāo)志à具有內(nèi)存管理單元的嵌入式處理器可以定位為應(yīng)用處理器。 這么說(shuō)M系列和A系列的處理器的區(qū)別在于A系列的處理器具有MMU單元可以進(jìn)行內(nèi)存模塊的管理。

95、ARM處理器有兩種狀態(tài):ARM狀態(tài)和Thumb狀態(tài)。

poYBAGD2PrGAQFzRAABmGt6QzDU030.png

96、這張圖說(shuō)明了一切:Thumb2指令集做了一件很偉大的事情:將16位和32位的指令集融為一體,兼容性非常強(qiáng)! (這么說(shuō)CM3不支持某些32位ARM指令集?? )

97、

92f8fe38-e455-11ed-ab56-dac502259ad0.jpg

98、MSP是系統(tǒng)復(fù)位后使用的堆棧指針,PSP由用戶(hù)的代碼使用。 兩個(gè)堆棧指針為4字節(jié)對(duì)齊!!

99、在ARM編程領(lǐng)域中,凡是打斷程序運(yùn)行的事件,統(tǒng)稱(chēng)為異常(exception)。

100、因?yàn)榇嬖贚R(鏈接寄存器),所以可支持1級(jí)的子程序調(diào)用而不用壓棧到內(nèi)存,大大提高了運(yùn)行速度。---à這就是說(shuō),我們?cè)诰幊痰臅r(shí)候,一級(jí)調(diào)用是不會(huì)耗費(fèi)太多時(shí)間的,除非是二級(jí)調(diào)用!

101、處理器有兩種操作模式:handler模式和線程模式。

poYBAGD2PrqAalPPAACBrDztbfg968.png

處理器也有兩種特權(quán)分級(jí):特權(quán)級(jí)和用戶(hù)級(jí)。這張圖說(shuō)明了一切:復(fù)位進(jìn)入特權(quán)級(jí)線程模式,如果有異常,進(jìn)入特權(quán)級(jí)的handler模式處理異常或中斷例程,然后返回至特權(quán)級(jí)線程模式。通過(guò)修改CONTROL寄存器可以進(jìn)入用戶(hù)級(jí)線程模式。

102、兩個(gè)高級(jí)定時(shí)器TIM1和TIM8是掛接在APB1總線上

103、STM32的外部中斷是以組來(lái)區(qū)分的,也就是說(shuō)PA0,PB0,PC0單片機(jī)是無(wú)法區(qū)分其中哪個(gè)觸發(fā)的中斷à均為EXIT0線中斷服務(wù)例程。所以,外部中斷支持16路的中斷分辨率。從另一個(gè)方面來(lái)講,我們可以設(shè)置GPIO_EXTILineConfig(GPIO_PortSourceGPIOx, GPIO_PinSourcex);來(lái)開(kāi)通中斷線實(shí)現(xiàn)組內(nèi)的不同中斷。

104、DAC有兩個(gè)寄存器,一個(gè)是DHR(Data HoldingRegister)數(shù)據(jù)保持寄存器,一個(gè)DOR(Data Output Register)數(shù)據(jù)輸出寄存器。真正起作用的是DOR寄存器,該寄存器把值給數(shù)模轉(zhuǎn)換發(fā)生單元輸出以VREF+為參考電壓的電壓值。如果是硬件觸發(fā)轉(zhuǎn)換,系統(tǒng)將在1個(gè)ABP時(shí)鐘周期后把值給DOR,如果是軟件觸發(fā)轉(zhuǎn)換,時(shí)間為3個(gè)APB時(shí)鐘周期。然后,均等待Tsetting時(shí)間(Typical為3us,Max為4us)后真正輸出電壓值。

105、DAC分8位模式和12位模式,其中后者可以選擇左右對(duì)齊

106、DMA仲裁器分為軟件和硬件兩種。軟件部分分為4個(gè)等級(jí),分別是很高優(yōu)先級(jí)、高優(yōu)先級(jí)、中等、低。硬件部分由通道的大小來(lái)決定優(yōu)先級(jí),越低優(yōu)先級(jí)越高。

107、DMA有一個(gè)實(shí)時(shí)的傳輸數(shù)據(jù)量寄存器叫做DMA_CNDTR,最大值為65535,存放的是當(dāng)前傳輸所要傳輸?shù)臄?shù)據(jù)量。當(dāng)數(shù)據(jù)量變?yōu)?時(shí),表明傳輸完成。

108、 CAN總線(ControllerArea Network)。 CAN控制器根據(jù)兩根線上的電位差來(lái)判斷總線電平,總線電平又分為顯性電平和隱性電平,二者必居其一。

109、CAN總線具有6個(gè)特點(diǎn):1:多主控制(掛接在總線上的所有設(shè)備均可以成為主設(shè)備,并且設(shè)備ID是用來(lái)決定設(shè)備的優(yōu)先級(jí),沒(méi)有設(shè)備地址概念),2:系統(tǒng)若軟性(沒(méi)有設(shè)備地址概念),3、通訊速度較快,通訊距離較遠(yuǎn)(1Mbps下40M,5kbps下10KM),4、具有錯(cuò)誤檢測(cè)、錯(cuò)誤通知(通知其他設(shè)備)和錯(cuò)誤恢復(fù)功能(強(qiáng)制結(jié)束發(fā)送, 重復(fù)發(fā)送接收錯(cuò)誤的信息。 ),5、故障封閉,當(dāng)總線上的設(shè)備發(fā)生連續(xù)故障錯(cuò)誤時(shí),CAN控制器會(huì)把改控制器踢出總線。 6、連接節(jié)點(diǎn)多。 理論上可以無(wú)限制加載,但是受到時(shí)間延遲和電氣負(fù)載的限制,實(shí)際數(shù)目是有限制的。 降低傳輸速度可以適當(dāng)增加可掛接負(fù)載個(gè)數(shù)。

110、CAN協(xié)議有兩個(gè)標(biāo)準(zhǔn),ISO11898(針對(duì)125kbps~1Mbps的高速速率)和ISO11519-2(125kbps以下的低速速率)

pYYBAGD2Pr6AFquzAABpP3aN0nw609.png

111、

pYYBAGD2PsKAHCfXAABnfrCAUb8405.png

112、CAN協(xié)議的有5種類(lèi)型的幀:數(shù)據(jù)幀、遙控幀、錯(cuò)誤幀、過(guò)載幀、幀間隔。 其中前兩種幀有標(biāo)準(zhǔn)格式(11位ID)和擴(kuò)展格式(29位ID)。

poYBAGD2PseAUb-QAADfexcz4ds768.png

113、數(shù)據(jù)幀構(gòu)成:

(1) 幀起始。 表示數(shù)據(jù)開(kāi)的段幀起始。

(2) 仲裁段。 表示該幀優(yōu)先級(jí)的仲裁段。

(3) 控制段。 表示數(shù)據(jù)的字節(jié)及保留位段。

(4) 數(shù)據(jù)段。 數(shù)據(jù)的內(nèi)容,一幀可發(fā)送0~8個(gè)字節(jié)的數(shù)據(jù)。

(5) CRC段。 檢查幀的傳輸錯(cuò)誤段。

(6) ACK段。 表示確認(rèn)正常接收的段。

(7) 幀結(jié)束。 表示數(shù)據(jù)的段幀結(jié)束。

poYBAGD2PsuAeFYrAADdqoC5DnA170.png

114、Stm32f103系列只有一個(gè)CAN控制器,有3個(gè)發(fā)送郵箱和3級(jí)深度的2個(gè)FIFO,14個(gè)過(guò)濾組器。

115、STM32的每個(gè)過(guò)濾組可以配置為1個(gè)32位過(guò)濾器和2個(gè)16位過(guò)濾器。 除此之外,還可以配置為屏蔽位模式(ID+屏蔽)和標(biāo)識(shí)符列表(ID和屏蔽寄存器均用來(lái)做ID寄存器)模式。

116、CAN接收到有效報(bào)文被放置在3級(jí)郵箱深度的FIFO中,F(xiàn)IFO完全由硬件來(lái)管理。

117、 CAN總線的波特率

pYYBAGD2PtCAb69aAACWLRvWu0c781.png

118、觸摸屏一般分為電阻式觸摸屏和電容式觸摸屏。 前者檢測(cè)觸摸的位置原理是利用觸摸屏控制器中的A/D轉(zhuǎn)換器經(jīng)過(guò)兩次A/D讀值后得出X和Y的坐標(biāo)值。 注意:這個(gè)X和Y的值是相對(duì)于觸摸屏的,而非LCD屏。 所以在這里需要注意兩個(gè)概念:觸摸屏和LCD屏。 這是兩個(gè)不同的概念,也是兩個(gè)不同的物理結(jié)構(gòu),其中電阻觸摸屏是由上下兩個(gè)導(dǎo)電層中間夾著一層非常薄的透明隔層; 而LCD就是指顯示屏。

119、 電阻觸摸屏有X和Y、X和Y的比例因子、坐標(biāo)軸方向、偏移量。 LCD也有自己的這些參數(shù)。 兩者完全不相干,所以在定位的時(shí)候需要進(jìn)行坐標(biāo)轉(zhuǎn)換。 公式:

936d4090-e455-11ed-ab56-dac502259ad0.png

,通過(guò)對(duì)屏幕的四個(gè)點(diǎn)進(jìn)行校準(zhǔn),得到四元一次方程,求解即可。

120、NEC協(xié)議的數(shù)據(jù)幀格式:同步碼頭、地址碼、地址反碼、控制碼、控制反碼。 同步碼由一個(gè)9ms的低電平和一個(gè)4.5ms的高電平組成,地址碼、地址反碼、控制碼、控制反碼均是8位數(shù)據(jù)格式。 按照低位在前,高位在后的順序發(fā)送。

121、NEC協(xié)議在發(fā)送的時(shí)候,會(huì)有560us的38KHz的載波信號(hào),而在接收的時(shí)候這部分載波信號(hào)被認(rèn)定為低電平,而剩余的(2.25ms-650us)的邏輯“1”和(1.12ms-650us)的邏輯“0”時(shí)間則被認(rèn)定為高電平。

122、在單位時(shí)間內(nèi)的位移被定義為速度,速度有線速度和角速度之分,分別對(duì)應(yīng)兩種傳感器測(cè)量這兩種不同的速度:線速度傳感器(加速度計(jì))、角速度傳感器(陀螺儀)。 前者多應(yīng)用在靜態(tài)或者低慢速運(yùn)動(dòng)中的姿態(tài)求解,后者多應(yīng)用在動(dòng)態(tài)運(yùn)動(dòng)中姿態(tài)求解。

123、根據(jù)標(biāo)準(zhǔn)約定,零加速度(或零 G 準(zhǔn)位)通常定義為相當(dāng)于最大輸出值(12 位輸出為 4096,10 位輸出為 1024 等)一半的輸出。 對(duì)于提供 12 位輸出的加速度計(jì),零 G 準(zhǔn)位將等于 2048。 輸出大于 2048 表示正加速度。 輸出小于 2048 表示負(fù)加速度。 加速度的數(shù)量通常用單位 g (1g = 9.8m/s2 = 重力加速度)表示。 通過(guò)確定測(cè)量的輸出與零 G 準(zhǔn)位之間的差值,然后除以加速度計(jì)的靈敏度(用計(jì)數(shù)/g 或 LSB/g表示)來(lái)計(jì)算加速度。 對(duì)于提供 12 位數(shù)字輸出的 2g 加速度計(jì),靈敏度為 819 計(jì)數(shù)/g 或 819 LSB/g。 加速度等于:a = (Aout - 2048)/(819 計(jì)數(shù)/g),單位為 g。

124、加速度計(jì)測(cè)得的加速度的方向和設(shè)備設(shè)定的坐標(biāo)系是相反的,因?yàn)樵肀砻髟跍y(cè)量力的時(shí)候采用的是非慣性系參考系,而我們高中時(shí)代研究的坐標(biāo)系是慣性系參考系,前者在物體進(jìn)行運(yùn)動(dòng)產(chǎn)生加速度時(shí),假想一個(gè)與速度方向相反的力作用在物體上,這個(gè)力就是慣性力; 后者我們說(shuō)不存在慣性力,只說(shuō)存在慣性,因?yàn)樵趹T性坐標(biāo)系中,我們研究的是物體,而非坐標(biāo)系(即假定坐標(biāo)系相對(duì)地球靜止),當(dāng)我們把坐標(biāo)系也考慮在內(nèi)時(shí),當(dāng)坐標(biāo)系運(yùn)動(dòng),就產(chǎn)生了慣性力f,這種力作用會(huì)假想作用在物體上,只是與運(yùn)動(dòng)方向相反。

125、由上可知,加速度計(jì)的本質(zhì)是測(cè)量力而非加速度。

126、NRF24L01工作在2.4GHz的頻段,由于頻段頻率較高,所以傳輸速率較快,為2Mbps

127、STM32的閃存模塊由:主存儲(chǔ)器、信息塊和閃存存儲(chǔ)器接口寄存器3個(gè)部分構(gòu)成。 主存儲(chǔ)器用來(lái)存放代碼和const常量; 信息塊由兩個(gè)部分組成:?jiǎn)?dòng)程序代碼、用戶(hù)選擇字節(jié)。 其中啟動(dòng)程序代碼為ST公司自帶的啟動(dòng)程序,用于串口下載。 最后的閃存存儲(chǔ)器接口寄存器用于控制整個(gè)對(duì)閃存區(qū)域的操作。

128、CPU的運(yùn)行速度比FLASH的操作速度快的多,一般FLASH的最快訪問(wèn)速度≤24Mhz。 如果CPU的速度超過(guò)這個(gè)頻率,那么在讀取FLASH的時(shí)候必須加入等待時(shí)間(FLASH_ACR設(shè)置)

129、FLASH編程時(shí),寫(xiě)入必須為半字(16位)。 并且在寫(xiě)入的時(shí)候必須保證所寫(xiě)區(qū)域的數(shù)據(jù)必須為0xFFFF。

130、STM32的FSMC有HADDR[27:0],其中[27:26]用來(lái)選擇BANK區(qū)域的4個(gè)不同塊。 剩下的[25:0]則用來(lái)連接外部存儲(chǔ)區(qū)域的地址線FSMC_A[25:0]。 如果數(shù)據(jù)寬度是8bit,此時(shí)的HADDR[25:0]和FSMC_A[25:0]是完全對(duì)應(yīng)的。 如果數(shù)據(jù)寬度是16bit,此時(shí)的HADDR[25:1]和FSMC_A[24:0]是對(duì)應(yīng)起來(lái)的。 需要注意:無(wú)論數(shù)據(jù)寬度是多少,外部的FSMC_A[0]和A[0]總是對(duì)應(yīng)的。

131、關(guān)于LB和UB的信號(hào)控制是由硬件自動(dòng)控制的,當(dāng)AHB的數(shù)據(jù)寬度小于外部存儲(chǔ)器的數(shù)據(jù)寬度時(shí),此時(shí)LB和UB的控制信號(hào)自動(dòng)產(chǎn)生(比如字節(jié)讀取/寫(xiě)入16bit的外部存儲(chǔ)器)

132、attribute(函數(shù)屬性、變量屬性、類(lèi)型屬性等)。 如果在使用SRAM時(shí),可以采用u32 sram_array[xx]attribute((at(0x68000000))代表將外部SRAM的空間全部給了sram_array這個(gè)變量,他具有在at0x68000000這個(gè)地址的屬性。 往里面寫(xiě)值就直接在SRAM里面寫(xiě)值。

133、

9375726a-e455-11ed-ab56-dac502259ad0.png

內(nèi)存管理有一種方式叫做分塊式內(nèi)存管理。

注意表中的分配方向,從頂?shù)降住?每一項(xiàng)對(duì)應(yīng)一個(gè)內(nèi)存塊。 里面的數(shù)值代表了內(nèi)存池的狀態(tài):如果為0,表示該內(nèi)存沒(méi)有被分配; 如果非0,那么數(shù)值的大小就表示了該塊內(nèi)存被連續(xù)占用的內(nèi)存數(shù)。 比如說(shuō)數(shù)值為20,意思是包括該項(xiàng)在內(nèi)的內(nèi)存塊被連續(xù)占用了20塊分給了指針。

134、SD卡的分類(lèi):

pYYBAGD2PtyAVwVmAABiRFdxfzs430.png

一般的SD卡支持兩種傳輸模式:SD卡模式(SDIO)、SPI模式。 顯然前面一種是專(zhuān)用模式,所以速度比較快。

135、常用的漢字內(nèi)碼系統(tǒng)有GB2313、GB13000、GBK、BIG5(繁體)。 其中GB2313只有幾千個(gè)漢字,而GBK則有2萬(wàn)多漢字。

136、 要顯示漢字,采用的方式如果用點(diǎn)陣的形式是不可取的,因?yàn)檫@無(wú)法查找漢字。 采用的方式就是內(nèi)碼系統(tǒng)。 GBK標(biāo)準(zhǔn)中,一個(gè)漢字對(duì)應(yīng)2個(gè)字節(jié):前者稱(chēng)為區(qū)(0x810xFE)后者為(0x400x7E)和(0x80~0xFE)。 前者有126個(gè)區(qū),后者有190,那么可以顯示的漢字?jǐn)?shù)量有126*190=23940個(gè)。

根據(jù)這兩個(gè)值用來(lái)查找字庫(kù),字庫(kù)中存放的還是每個(gè)漢字的點(diǎn)陣數(shù)據(jù)。 這個(gè)字庫(kù)非常大,如果是1616的字體,那么一個(gè)字體就需要32個(gè)字節(jié),如此說(shuō)來(lái)需要2394032=748K的空間,可見(jiàn)非常大,所以需要外部的Flash來(lái)存儲(chǔ)這個(gè)字庫(kù)。

137、由于漢字內(nèi)碼系統(tǒng)不具有國(guó)際通用性,但是Unicode幾乎把所有的語(yǔ)言都放置進(jìn)來(lái),這樣在單片機(jī)中操作漢字時(shí),就需要將GBK和Unicode轉(zhuǎn)化。 尤其是在FATFS中,創(chuàng)建中文文件名和讀取中文文件信息時(shí)需要將Unicode換轉(zhuǎn)為GBK后再進(jìn)行修改操作,再反轉(zhuǎn)換成Unicode保存修改。 這么說(shuō),兩者的存在是由于標(biāo)準(zhǔn)的不統(tǒng)一,并且Unicode中只有6064個(gè)漢字,而GBK顯然是一種漢字?jǐn)U展。

138、BMP圖片編碼的順序是從左到右,從下到上。

139、VS1053是一款高性能的數(shù)字音頻解碼芯片,從SD卡中將mp3等音樂(lè)音頻文件通過(guò)SPI送給VS1053后,由其進(jìn)行音頻解碼,輸出音樂(lè)給耳機(jī)。 耳機(jī)驅(qū)動(dòng)可以采用TDA1308芯片,這款芯片為AB類(lèi)耳機(jī)驅(qū)動(dòng)芯片

pYYBAGD2PuGAG4vQAACm82PzssA928.png

140、IAP(In Application Programming)在應(yīng)用編程是為了后期開(kāi)發(fā)更新程序方便而提出的概念。 具體的實(shí)現(xiàn)方法如下圖所示:

poYBAGD2PuWAJISBAAAnEBB5ZFc885.png

在普通編程中,flash中的code是通過(guò)JTAG和ISP等工具下載到單片機(jī)中。 而在IAP編程中,flash被分區(qū)為A和B兩個(gè)區(qū)域,A區(qū)域只允許用USB/USART等方式下載,此區(qū)域作為更新B區(qū)域的代碼用。 B區(qū)域則是用戶(hù)的code區(qū)域,真正的代碼在這里被執(zhí)行,放置的就是app。

pYYBAGD2PuqAAew7AADaAFmehWo793.png

上圖表示STM32正常運(yùn)行的流程圖,可以看到上電復(fù)位后系統(tǒng)從0x80000004處開(kāi)始運(yùn)行程序,這里放置的是復(fù)位中斷向量,然后跳轉(zhuǎn)至復(fù)位中斷程序入口后再跳轉(zhuǎn)至main函數(shù)運(yùn)行用戶(hù)的程序。

pYYBAGD2Pu6AJnnNAACut60H0pI384.png

上圖表示加入IAP后的STM32程序運(yùn)行流程圖。 可以看到上電復(fù)位后跳到IAP程序的main函數(shù)處運(yùn)行IAP過(guò)程(這個(gè)過(guò)程就是把下面灰底色塊的程序代碼燒進(jìn)B區(qū)域à代碼更新)。 后面的過(guò)程和STM32正常運(yùn)行一樣,如果出現(xiàn)中斷請(qǐng)求,還是跳轉(zhuǎn)到A區(qū)域中的中斷向量表中,然后再跳轉(zhuǎn)到B區(qū)域的中斷服務(wù)入口。

141、USB有四根線,VCC、GND、D+、D-。 在USB主機(jī)上,D+和D-均通過(guò)一個(gè)15K的電阻接地,這樣兩條線均為低電平。 在USB設(shè)備中,對(duì)于高速設(shè)備會(huì)在D+通過(guò)一個(gè)1.5K的電阻接到VCC,而低俗設(shè)備會(huì)在D-通過(guò)一個(gè)1.5K的電阻接到VCC。 這樣主機(jī)就可以通過(guò)D+和D-的高電平的到來(lái)來(lái)檢測(cè)是否有設(shè)備接入,并且識(shí)別高低速設(shè)備。

142、UCOSII是一種實(shí)時(shí)操作系統(tǒng),具有執(zhí)行效率高、占有空間?。ㄗ钚?nèi)核2KB)、實(shí)施性能優(yōu)良、擴(kuò)展性強(qiáng)和移植性強(qiáng)等優(yōu)點(diǎn)。

poYBAGD2PvKAe2FcAADBjBvJezg024.png

UCOS具有多任務(wù)并發(fā)工作的特點(diǎn)(注意,任何時(shí)候只有一個(gè)任務(wù)能夠占用CPU。 并發(fā)只是任務(wù)輪流占用CPU而不是同時(shí)工作)。 最大支持255個(gè)任務(wù)并發(fā)工作。

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 控制器
    +關(guān)注

    關(guān)注

    112

    文章

    16367

    瀏覽量

    178122
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5343

    瀏覽量

    120385
  • STM32
    +關(guān)注

    關(guān)注

    2270

    文章

    10900

    瀏覽量

    356092
  • 中斷
    +關(guān)注

    關(guān)注

    5

    文章

    898

    瀏覽量

    41505
  • 總線
    +關(guān)注

    關(guān)注

    10

    文章

    2881

    瀏覽量

    88096

原文標(biāo)題:142條 STM32遇到的坑!你知道幾個(gè)?

文章出處:【微信號(hào):玩點(diǎn)嵌入式,微信公眾號(hào):玩點(diǎn)嵌入式】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    關(guān)于硬件設(shè)計(jì),應(yīng)該知道幾個(gè)事實(shí)!

    本文從問(wèn)答的形式詳細(xì)解決了關(guān)于硬件設(shè)計(jì)會(huì)遇到幾個(gè)問(wèn)題。電阻電容的封裝形式如何選擇,有沒(méi)有什么原則等等。
    發(fā)表于 01-21 10:15 ?1689次閱讀

    說(shuō)說(shuō)在鴻蒙開(kāi)發(fā)時(shí)遇到

    說(shuō)說(shuō)在鴻蒙中遇到~
    發(fā)表于 11-20 17:21

    IAP功能實(shí)現(xiàn)過(guò)程遇到

    花了四天時(shí)間才把IAP功能做好。其中也遇到許多的,這次把這次IAP功能實(shí)現(xiàn)過(guò)程遇到把它分享出來(lái)。一開(kāi)始做iap的時(shí)候也是先從網(wǎng)上看別人的實(shí)現(xiàn)方法,其中就下載了一套別人的程序,不過(guò)
    發(fā)表于 08-05 07:51

    調(diào)試STM32CubeMX串口通信會(huì)遇到哪些

    調(diào)試STM32CubeMX串口通信會(huì)遇到哪些?怎樣去避免呢?
    發(fā)表于 09-29 08:38

    藍(lán)牙遙控小車(chē)制作遇到分享

    32藍(lán)牙小車(chē)最近做了一個(gè)藍(lán)牙小車(chē),在這里和大家分享一下,自己做時(shí)遇到,希望對(duì)大家有點(diǎn)幫助。話不多說(shuō)開(kāi)整。1:主要用到的模塊:stm32103c8+hc—05藍(lán)牙模塊+l298n電機(jī)驅(qū)動(dòng)這是我做的車(chē)模。...
    發(fā)表于 01-05 07:28

    總結(jié)那么幾個(gè)C語(yǔ)言中的“

    總結(jié)幾個(gè)C語(yǔ)言中的“
    的頭像 發(fā)表于 01-16 10:52 ?2580次閱讀

    基于STM32的多種printf用法 知道嗎?

    基于STM32的多種printf用法,知道嗎?
    的頭像 發(fā)表于 02-29 17:02 ?4489次閱讀

    關(guān)于STM32的這幾個(gè)寄存器, 知道嗎?

    關(guān)于STM32的這幾個(gè)寄存器,知道嗎?
    的頭像 發(fā)表于 03-06 15:19 ?1w次閱讀

    關(guān)于 STM32 時(shí)鐘配置的那些

    關(guān)于STM32時(shí)鐘配置的那些
    的頭像 發(fā)表于 03-08 12:06 ?5929次閱讀

    使用Redis時(shí)可能遇到哪些「」?

    這篇文章,我想和你聊一聊在使用 Redis 時(shí),可能會(huì)踩到的「」。 如果在使用 Redis 時(shí),也遇到過(guò)以下這些「詭異」的場(chǎng)景,那很大概率是踩到「」了: 明明一個(gè) key 設(shè)置了
    的頭像 發(fā)表于 04-09 11:19 ?2308次閱讀
    使用Redis時(shí)可能<b class='flag-5'>遇到</b>哪些「<b class='flag-5'>坑</b>」?

    STM32G030J6芯片串口下載程序遇到的一個(gè)

    分享一個(gè)本人給STM32G030J6芯片串口下載程序遇到的一個(gè)為什么是串口下載遇到的問(wèn)題&解決1.引腳的復(fù)用"一次性"串口下載為什么是串口下載博主因?yàn)閳D新鮮
    發(fā)表于 12-02 13:36 ?13次下載
    <b class='flag-5'>STM32</b>G030J6芯片串口下載程序<b class='flag-5'>遇到</b>的一個(gè)<b class='flag-5'>坑</b>

    STM32CubeIDE+FREERTOS踩記錄

    STM32CubeIDE+FREERTOS踩記錄
    發(fā)表于 12-05 18:06 ?15次下載
    <b class='flag-5'>STM32</b>CubeIDE+FREERTOS踩<b class='flag-5'>坑</b>記錄

    STM32L476入-1

    STM32L476入-1
    發(fā)表于 12-09 14:36 ?18次下載
    <b class='flag-5'>STM32</b>L476入<b class='flag-5'>坑</b>-1

    PCB元器件擺放的十小技巧,知道嗎?

    PCB元器件擺放的十小技巧,知道嗎?
    的頭像 發(fā)表于 10-17 14:52 ?2515次閱讀
    PCB元器件擺放的十<b class='flag-5'>條</b>小技巧,<b class='flag-5'>你</b>都<b class='flag-5'>知道</b>嗎?

    關(guān)于圖像傳感器圖像質(zhì)量的四大誤區(qū)!踩過(guò)幾個(gè)?

    關(guān)于圖像傳感器圖像質(zhì)量的四大誤區(qū)!踩過(guò)幾個(gè)?
    的頭像 發(fā)表于 11-27 16:56 ?455次閱讀
    關(guān)于圖像傳感器圖像質(zhì)量的四大誤區(qū)!<b class='flag-5'>你</b>踩過(guò)<b class='flag-5'>幾個(gè)</b><b class='flag-5'>坑</b>?