首先要注意所用到的USART是否用到了復(fù)用功能千萬(wàn)別忘了打開(kāi)復(fù)用時(shí)鐘?。。。。。。。?!代碼如下:Hello! everyone,welcome to class!#includevoid delay_ms(u16 x){u8 t;while(x--){for(t=0;t
/*Includes------------------------------------------------------------------*/#include"stm32f10x.h"#include"stm32f10x_exti.h"#include"OV7740.h"#include"OV7740Reg.h"#include"sccb.h"#include"misc.h"#inc
一、實(shí)驗(yàn)?zāi)康?)了解獨(dú)立看門(mén)狗的;2)學(xué)會(huì)使用獨(dú)立看門(mén)狗;3)通過(guò)WK_UP來(lái)喂狗,然后通過(guò)DS0提示復(fù)位狀態(tài)。二、STM32獨(dú)立看門(mén)狗簡(jiǎn)介單片機(jī)系統(tǒng)在外界的干擾下會(huì)出現(xiàn)程序跑飛的現(xiàn)象導(dǎo)致出現(xiàn)死循環(huán), 看門(mén)狗電路就是為
1、CRC計(jì)算公式 所有的STM32芯片都內(nèi)置了一個(gè)硬件的CRC計(jì)算模塊,可應(yīng)用到通信程序中,這個(gè)CRC計(jì)算模塊使用常見(jiàn)的、在以太網(wǎng)中使用的計(jì)算多項(xiàng)式:X32 + X26 + X23 + X22 + X16 + X12 + X11 + X10 +X8 + X7 + X5 +
/定時(shí)器1的配置 輸出兩路PWM信號(hào) PA8 PA11,計(jì)數(shù)時(shí)鐘為400KHZ 計(jì)數(shù)溢出大小為40000 /void Tim1Init(void){GPIO_InitTypeDef GPIO_InitStruct;TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct;TIM_OCInitTypeDef TIM_
最近因項(xiàng)目需求要實(shí)現(xiàn)STM32的在線升級(jí)即IAP功能,先將這幾天的學(xué)習(xí)體會(huì)和IAP的具體實(shí)現(xiàn)總結(jié)出來(lái),分享給大家,希望對(duì)同樣實(shí)現(xiàn)IAP的童鞋有所幫助,文中最后會(huì)上傳名為STM32_Update.zip的壓縮文件里面包含了STM32_App、
玩STM32,J-LINK仿真器固然很好,不夠J-Link價(jià)格昂貴,還好STM32內(nèi)部自帶Bootloader,可以串口下載程序。本人覺(jué)得串口下載方式簡(jiǎn)潔,廉價(jià),就一個(gè)USB-TTL轉(zhuǎn)換器即可完成。 一.首先在能正常工作的最小系統(tǒng)板,開(kāi)發(fā)板上
說(shuō)的直白點(diǎn)就是以下區(qū)別,在選擇啟動(dòng)文件的時(shí)候有選擇性區(qū)別!startup_stm32f10x_cl.s互聯(lián)型的STM32F105xx,STM32F107xxstartup_stm32f10x_hd.s 大容量的STM32F101xx,STM32F102xx,STM32F103xxstartup_stm32f10x_hd
[cpp] view plaincopyprint?#include #include "usbreg.h" #include "usbcore.h" #include "usbuser.h" #include "usbcfg.h" #include "usb.h" #include "usb_hw.h" #include "usbdesc.h" #include "hid.h" #includ
stm32可選的時(shí)鐘源在STM32中,可以用內(nèi)部時(shí)鐘,也可以用外部時(shí)鐘,在要求進(jìn)度高的應(yīng)用場(chǎng)合最好用外部晶體震蕩器,內(nèi)部時(shí)鐘存在一定的精度誤差。準(zhǔn)確的來(lái)說(shuō)有4個(gè)時(shí)鐘源可以選分別是HSI、LSI、HSE、LSE(即內(nèi)部高速,內(nèi)
基于戰(zhàn)艦開(kāi)發(fā)板 修改的可以對(duì)頻率和占空比同時(shí)調(diào)節(jié)的一個(gè)簡(jiǎn)單程序。voidTIM3_PWM_Init(u16arr,u16psc){GPIO_InitTypeDefGPIO_InitStructure;TIM_TimeBaseInitTypeDefTIM_TimeBaseStructure;TIM_OCInitTypeDefTIM_OCI
在main()中ch1_open();delay_ms(1000);ch2_open();delay_ms(1000);ch3_open();delay_ms(1000);ch4_open();delay_ms(1000);在timer.c中添加了//開(kāi)啟通道一,同時(shí)關(guān)閉通道二三四void ch1_open(void){TIM3->CCER|=(1
STM32中定時(shí)器3為例。重點(diǎn)是Full remap和Partial remap的理解。1.管腳功能圖。2.完全復(fù)用和部分復(fù)用說(shuō)明。3.相關(guān)配置說(shuō)明,時(shí)鐘說(shuō)明AFIO和管腳復(fù)用FullRemap。
關(guān)于STM32中 printf 與 scanf 的重定向問(wèn)題在此我僅對(duì)不使用 "USE MircoLIB" 的情況做整理(針對(duì)Keil RVMDK開(kāi)發(fā)環(huán)境)。① :首先需要在 usart.h 中包含 “stdio.h” 頭文件② :在 usart.c 中,加入如下代碼塊,以此
?芯片擦除成功,但板子不能運(yùn)行 沒(méi)有出現(xiàn) Application running原因如圖所示左上方的Reset and Run 沒(méi)有勾選。操作路徑為: options for target ---> Utilities ---->Setting 即可關(guān)鍵步奏就正常了;小結(jié):當(dāng)出現(xiàn)一定
對(duì)于我這種以前只接觸過(guò)51和AVR單片機(jī)編程的小菜來(lái)說(shuō),現(xiàn)在開(kāi)始學(xué)習(xí)STM32的編程,對(duì)于函數(shù)的功能以及C語(yǔ)言的語(yǔ)法都還好理解,難的是它提供的那一套硬件抽象層(HAL)驅(qū)動(dòng)是怎么和其他的東東搭配在一起組成一個(gè)又
今天講解“STM32F103 BKP備份數(shù)據(jù)”,關(guān)于“BKP備份數(shù)據(jù)”這一塊的知識(shí)不難,但還是需要注意幾點(diǎn)。BKP顧名思義就是備份寄存器(見(jiàn)參考手冊(cè)),主要用于備份數(shù)據(jù)使用的。我的文章與網(wǎng)上其他文章不同之處在于:1.提供講解
在STM32要使用JTMS(PA13)、JTCK(PA14)作為普通I/O口的時(shí)候,要在初始化前添加如下代碼(順序不能顛倒):RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);以下兩句二選一:使用GPIO_Remap_SWJ_Disable就不能
1 /**2 * @brief 寫(xiě)一個(gè)字節(jié)到I2C設(shè)備中3 * @param 4 * @arg pBuffer:緩沖區(qū)指針5 * @arg WriteAddr:寫(xiě)地址6 * @retval 正常返回1,異常返回07 */8 uint8_t I2C_ByteWrite(u8 pBuffer, u8 WriteAddr)9
每個(gè)GPIO端口有兩個(gè)32位配置寄存器(GPIOx_CRL,GPIOx_CRH)分別控制每個(gè)端口的高八位和低八位,如果IO口是0-7號(hào)的話,則寫(xiě)CRL寄存器,如果IO口是8-15號(hào)的話,則寫(xiě)CRH寄存器,兩個(gè)32位數(shù)據(jù)寄存器(GPIOx_IDR,GPIOx_ODR