
這幾天因為工作需要,移植了modbus RTU到STM32來,之前也聽說過modbus,但是沒有深入了解過,還以為會像usb 那樣復(fù)雜的,經(jīng)過這幾天的折騰,發(fā)現(xiàn)真的太簡單了。為了防止過段時間又忘記了怎么移植,在這里把移植過程記
STM32縮寫解釋1.1 縮寫Table 1. 本文檔所有縮寫定義縮寫 外設(shè)/單元ADC 模數(shù)轉(zhuǎn)換器BKP 備份寄存器CAN 控制器局域網(wǎng)模塊DMA 直接內(nèi)存存取控制器EXTI 外部中斷事件控制器FLASH 閃存存儲器GPIO 通用輸入輸出I2C 內(nèi)部集成
硬件平臺:STM32F429軟件平臺:Keil 5 采用HAL庫本人借鑒了正點原子的例程,在這里表示感謝。在編寫串口的過程中,遇到了HAL_UART_Receive_IT(&UART1_Handler,(u8*)aRxBuffer,1);1這個函數(shù),首先是在初始化uart_init
用stm32的高級定時器TIM1和TIM8產(chǎn)生PWM,需要注意:1.都有TIM1,但只有flash容量大于256K的大容量單片機才有TIM82.高級定時器相對于通用定時器,多了TIM_CtrlPWMOutputs(TIM8, ENABLE);TIM1產(chǎn)生四路PWM程序:staticv
無刷電機換向時,一般是三相要同時換向的,但是在軟里設(shè)置換向時肯定是一次只能設(shè)置一相,這就達不到三相同時換向。簡單的辦法就是啟用STM32的COM事件,你先逐個設(shè)置好每相的換向(注意:此時雖然設(shè)置了,但實際上并
/* 選擇BANK1-BORSRAM1 連接 TFT,地址范圍為0X60000000~0X63FFFFFF* FSMC_A16 接LCD的DC(寄存器/數(shù)據(jù)選擇)腳* 16 bit => FSMC[24:0]對應(yīng)HADDR[25:1]* 寄存器基地址 = 0X60000000* RAM基地址 = 0X60020000 = 0X60000
STM32讀具體GPIOx的某一位是1還是01 /**2 * @brief Reads the specified input port pin.3 * @param GPIOx: where x can be (A..G) to select the GPIO peripheral.4 * @param GPIO_Pin: specifies the port bit
USB設(shè)備可以定義一個復(fù)合設(shè)備,復(fù)合設(shè)備分兩種,一種是一個設(shè)備多個配置,還有一種是一個配置多個接口,在本例中采用一個配置多個接口的方式 首先修改設(shè)備描述符,標(biāo)準(zhǔn)設(shè)備描述符和報告描述符都不需要修改,只需要修改配置
/******************************************************************************************* 文件名稱 :tlc2543.c* 版權(quán) :* 模塊名稱 :TLC2543驅(qū)動程序* cpu : stm32f103rct6 主頻:72M* 作者 :* 創(chuàng)建日期
高級定時器與通用定時器比較類似,下面是一個TIM1 的PWM 程序,TIM1是STM32唯一的高級定時器。共有4個通道有死區(qū)有互補。先是配置IO腳:GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Pin = GPIO_Pin
一開始建立了工程,然后程序下載都很正常。不知道什么情況自己下載代碼之后,再重新下載代碼無法成功。我按照提示找了一下FlashStm32f30x8.flash這個文件,卻發(fā)現(xiàn)IAR的目錄下沒并沒有。又懷疑是IAR文件丟失。重新安裝
PVD (Programmable Votage Detector) ,即可編程電壓監(jiān)測器 。stm32庫函數(shù)手冊中沒有細講這個模塊,只是在 PWM一章中列出了兩個相關(guān)函數(shù)。但是這個功能在實際項目中會有較大的作用,當(dāng)電壓過低時,對系統(tǒng)的一些數(shù)據(jù)
項目中需要使用STM32和FPGA通信,使用的是地址線和數(shù)據(jù)線,在FPGA中根據(jù)STM32的讀寫模式A的時序完成寫入和讀取。之前的PCB設(shè)計中只使用了8跟數(shù)據(jù)線和8根地址線,調(diào)試過程中沒有發(fā)現(xiàn)什么問題,在現(xiàn)在的PCB中使用了8根
在直流減速電機控制中,最常用的方法就是通過PWM來控制直流電機的轉(zhuǎn)速。在控制小車走直線的過程中,需要兩者的轉(zhuǎn)速一置(如果要走得很直,還需要在短時間內(nèi)保證兩者的行程大致相當(dāng),這可以用PID算法來控制)。因此,
之前已經(jīng)簡單論述過,根據(jù)我個人菜鳥的了解與認識,對之前的知識進行整理回顧:DMA:我的理解就是一個通道,或者是一座橋梁。在靜態(tài)內(nèi)存到靜態(tài)內(nèi)存,或者外設(shè)到靜態(tài)內(nèi)存間的一個通訊的通道。建立這個通道的好處是:可以
實驗的STM32型號:STM32F103C8T6 48引腳涉及到的知識:RCC,GPIO,TIMER,PWM 設(shè)置*RCC需打開外部時鐘*GPIO查表得知 PA3 默認復(fù)用引腳 TIM2_CH4*TIMER使用默認的TIM2_CH4*PWM的控制使用了動態(tài)的占空比來達到呼吸效果
原來一直在用3.3 的固件庫,3.4 的出來好久了 也沒顧得上更新如今的3.5 的庫再也忍不住了,建好了個新的V3.5的工程模板 用的是最新的MDK4.20 .3.5 到3.3 對于一般用戶而言 基本沒有什么 界面的上變革 目前看來好像僅僅
這里必須闡明系統(tǒng)時鐘的簡歷對于系統(tǒng)運行的重要性。系統(tǒng)所有的運行都是建立在時鐘的正常運行上的,沒有穩(wěn)健的系統(tǒng)時鐘,就不可能有穩(wěn)定的系統(tǒng)。在系統(tǒng)中,復(fù)位后首要的任務(wù)是建立系統(tǒng)時鐘,以下是建立系統(tǒng)時鐘的基本
集成開發(fā)環(huán)境(IDE):Keil公司的RealView MDK(uVision V4.10)源文件編輯器:EditPlus(我在用的)/UltraEdit/SourceInsight/IDE自帶的編輯器串口工具:SecureCRT(一個專業(yè)的超級終端工具,支持很多接口(包括串口)和
這一節(jié)的程序所涉及到的硬件是比較簡單,主要是考察對stm32時鐘的應(yīng)用原理性質(zhì)的東西我就不多說了,參考書目為:《STM32庫開發(fā)實戰(zhàn)指南》 劉火良,楊森著《STM32開發(fā)指南(庫函數(shù)版本)》 正點原子著使用定時器來控制I