版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、轉(zhuǎn)載STM32學(xué)前教程2sw笨笨的STM32筆記之九:打斷它來為我辦事,EXIT(外部I/O中斷)應(yīng)用a)目的:跟串口輸入類似,不使用中斷進(jìn)行的IO輸入效率也很低,而且可以通過EXTI插入按鈕事件,本節(jié)聯(lián)系EXTI中斷。b)初始化函數(shù)定義:void EXTI_Configuration(void);/定義IO中斷初始化函數(shù)c)初始化函數(shù)調(diào)用:EXTI_Configuration();/IO中斷初始化函數(shù)調(diào)用簡單應(yīng)用:d)初始化函數(shù):void EXTI_Configuration(void)EXTI_InitTypeDef EXTI_InitStructure;/EXTI初始化結(jié)構(gòu)定義EXTI_
2、ClearITPendingBit(EXTI_LINE_KEY_BUTTON);/清除中斷標(biāo)志GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource3);/管腳選擇GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource4);GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource5);GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource6);EXTI_InitStructu
3、re.EXTI_Mode=EXTI_Mode_Interrupt;/事件選擇EXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_Falling;/觸發(fā)模式EXTI_InitStructure.EXTI_Line=EXTI_Line3|EXTI_Line4;/線路選擇EXTI_InitStructure.EXTI_LineCmd=ENABLE;/啟動中斷EXTI_Init(&EXTI_InitStructure);/初始化e)RCC初始化函數(shù)中開啟I/O時鐘RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE)
4、;GPIO初始化函數(shù)中定義輸入I/O管腳。/IO輸入,GPIOA的4腳輸入GPIO_InitStructure.GPIO_Pin=GPIO_Pin_4;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU;/上拉輸入GPIO_Init(GPIOA,&GPIO_InitStructure);/初始化f)在NVIC的初始化函數(shù)里面增加以下代碼打開相關(guān)中斷:NVIC_InitStructure.NVIC_IRQChannel=EXTI9_5_IRQChannel;/通道NVIC_InitStructure.NVIC_IRQChannelPreemptionPriori
5、ty=0;/占先級NVIC_InitStructure.NVIC_IRQChannelSubPriority=0;/響應(yīng)級NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;/啟動NVIC_Init(&NVIC_InitStructure);/初始化g)在stm 32f10x_it.c文件中找到void USART1_IRQHandler函數(shù),在其中添入執(zhí)行代碼。一般最少三個步驟:先使用if語句判斷是發(fā)生那個中斷,然后清除中斷標(biāo)志位,最后給字符串賦值,或做其他事情。if(EXTI_GetITStatus(EXTI_Line3)!=RESET)/判斷中斷發(fā)生
6、來源EXTI_ClearITPendingBit(EXTI_Line3);/清除中斷標(biāo)志USART_SendData(USART1,0x41);/發(fā)送字符aGPIO_WriteBit(GPIOB,GPIO_Pin_2,(BitAction)(1-GPIO_ReadOutputDataBit(GPIOB,GPIO_Pin_2);/LED發(fā)生明暗交替h)中斷注意事項:中斷發(fā)生后必須清除中斷位,否則會出現(xiàn)死循環(huán)不斷發(fā)生這個中斷。然后需要對中斷類型進(jìn)行判斷再執(zhí)行代碼。使用EXTI的I/O中斷,在完成RCC與GPIO硬件設(shè)置之后需要做三件事:初始化EXTI、NVIC開中斷、編寫中斷執(zhí)行代碼。sw笨笨的S
7、TM32筆記之十:工作工作,PWM輸出a)目的:基礎(chǔ)PWM輸出,以及中斷配合應(yīng)用。輸出選用PB1,配置為TIM3_CH4,是目標(biāo)板的LED6控制腳。b)對于簡單的PWM輸出應(yīng)用,暫時無需考慮TIM1的高級功能之區(qū)別。c)初始化函數(shù)定義:void TIM_Configuration(void);/定義TIM初始化函數(shù)d)初始化函數(shù)調(diào)用:TIM_Configuration();/TIM初始化函數(shù)調(diào)用e)初始化函數(shù),不同于前面模塊,TIM的初始化分為兩部分-基本初始化和通道初始化:void TIM_Configuration(void)/TIM初始化函數(shù)TIM_TimeBaseInitTypeDef
8、 TIM_TimeBaseStructure;/定時器初始化結(jié)構(gòu)TIM_OCInitTypeDef TIM_OCInitStructure;/通道輸出初始化結(jié)構(gòu)/TIM3初始化TIM_TimeBaseStructure.TIM_Period=0xFFFF;/周期0FFFF TIM_TimeBaseStructure.TIM_Prescaler=5;/時鐘分頻TIM_TimeBaseStructure.TIM_ClockDivision=0;/時鐘分割TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;/模式TIM_TimeBaseI
9、nit(TIM3,&TIM_TimeBaseStructure);/基本初始化TIM_ITConfig(TIM3,TIM_IT_CC4,ENABLE);/打開中斷,中斷需要這行代碼/TIM3通道初始化TIM_OCStructInit(&TIM_OCInitStructure);/默認(rèn)參數(shù)TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM1;/工作狀態(tài)TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable;/設(shè)定為輸出,需要PWM輸出才需要這行代碼TIM_OCInitStructure.TIM_
10、Pulse=0x2000;/占空長度TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_High;/高電平TIM_OC4Init(TIM3,&TIM_OCInitStructure);/通道初始化TIM_Cmd(TIM3,ENABLE);/啟動TIM3f)RCC初始化函數(shù)中加入TIM時鐘開啟:RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM3,ENABLE);g)GPIO里面將輸入和輸出管腳模式進(jìn)行設(shè)置。信號:AF_PP,50MHz。h)使用中斷的話在NVIC里添加如下代碼:/打開TIM2中斷NVIC_InitS
11、tructure.NVIC_IRQChannel=TIM2_IRQChannel;/通道NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3;/占先級NVIC_InitStructure.NVIC_IRQChannelSubPriority=1;/響應(yīng)級NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;/啟動NVIC_Init(&NVIC_InitStructure);/初始化中斷代碼:void TIM2_IRQHandler(void)if(TIM_GetITStatus(TIM2,TIM_IT_
12、CC4)!=RESET)/判斷中斷來源TIM_ClearITPendingBit(TIM2,TIM_IT_CC4);/清除中斷標(biāo)志GPIO_WriteBit(GPIOB,GPIO_Pin_11,(BitAction)(1-GPIO_ReadOutputDataBit(GPIOB,GPIO_Pin_11);/變換LED色彩IC4value=TIM_GetCapture4(TIM2);/獲取捕捉數(shù)值i)簡單應(yīng)用:/改變占空比TIM_SetCompare4(TIM3,變量);j)注意事項:管腳的IO輸出模式是根據(jù)應(yīng)用來定,比如如果用PWM輸出驅(qū)動LED則應(yīng)該將相應(yīng)管腳設(shè)為AF_PP,否則單片機沒有輸
13、出。sw笨笨的STM32筆記之十一:捕捉精彩瞬間,脈沖方波長度捕獲a)目的:基礎(chǔ)PWM輸入也叫捕獲,以及中斷配合應(yīng)用。使用前一章的輸出管腳PB1(19腳),直接使用跳線連接輸入的PA3(13腳),配置為TIM2_CH4,進(jìn)行實驗。b)對于簡單的PWM輸入應(yīng)用,暫時無需考慮TIM1的高級功能之區(qū)別,按照目前我的應(yīng)用目標(biāo)其實只需要采集高電平寬度,而不必知道周期,所以并不采用PWM輸入模式,而是普通脈寬捕獲模式。c)初始化函數(shù)定義:void TIM_Configuration(void);/定義TIM初始化函數(shù)d)初始化函數(shù)調(diào)用:TIM_Configuration();/TIM初始化函數(shù)調(diào)用e)初始
14、化函數(shù),不同于前面模塊,TIM的CAP初始化分為三部分-計時器基本初始化、通道初始化和時鐘啟動初始化:void TIM_Configuration(void)/TIM2的CAP初始化函數(shù)TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;/定時器初始化結(jié)構(gòu)TIM_ICInitTypeDef TIM_ICInitStructure;/通道輸入初始化結(jié)構(gòu)/TIM2輸出初始化TIM_TimeBaseStructure.TIM_Period=0xFFFF;/周期0FFFF TIM_TimeBaseStructure.TIM_Prescaler=5;/時鐘分頻TI
15、M_TimeBaseStructure.TIM_ClockDivision=0;/時鐘分割TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;/模式TIM_TimeBaseInit(TIM2,&TIM_TimeBaseStructure);/基本初始化/TIM2通道的捕捉初始化TIM_ICInitStructure.TIM_Channel=TIM_Channel_4;/通道選擇TIM_ICInitStructure.TIM_ICPolarity=TIM_ICPolarity_Falling;/下降沿TIM_ICInitStructu
16、re.TIM_ICSelection=TIM_ICSelection_DirectTI;/管腳與寄存器對應(yīng)關(guān)系TIM_ICInitStructure.TIM_ICPrescaler=TIM_ICPSC_DIV1;/分頻器TIM_ICInitStructure.TIM_ICFilter=0x4;/濾波設(shè)置,經(jīng)歷幾個周期跳變認(rèn)定波形穩(wěn)定0x00xF TIM_ICInit(TIM2,&TIM_ICInitStructure);/初始化TIM_SelectInputTrigger(TIM2,TIM_TS_TI2FP2);/選擇時鐘觸發(fā)源TIM_SelectSlaveMode(TIM2,TIM_Slav
17、eMode_Reset);/觸發(fā)方式TIM_SelectMasterSlaveMode(TIM2,TIM_MasterSlaveMode_Enable);/啟動定時器的被動觸發(fā)TIM_ITConfig(TIM2,TIM_IT_CC4,ENABLE);/打開中斷TIM_Cmd(TIM2,ENABLE);/啟動TIM2f)RCC初始化函數(shù)中加入TIM時鐘開啟:RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM3,ENABLE);g)GPIO里面將輸入和輸出管腳模式進(jìn)行設(shè)置。IN_FLOATING,50MHz。h)使用中斷的話在NVIC里添加如下代碼:/打開TIM中斷
18、(與前一章相同)NVIC_InitStructure.NVIC_IRQChannel=TIM2_IRQChannel;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3;NVIC_InitStructure.NVIC_IRQChannelSubPriority=2;NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;i)簡單應(yīng)用:變量=TIM_GetCapture4(TIM2);j)注意事項:i.由于我的需求只跟高電平寬度有關(guān),所以避免了使用PWM輸入模式,這樣可以每個管腳捕捉一路信號。如果使用PW
19、M模式,每一路需要占用兩個寄存器,所以一個定時器只能同時使用兩路PWM輸入。ii.由于捕捉需要觸發(fā)啟動定時器,所以PWM輸出與捕捉不容易在同一個TIM通道上實現(xiàn)。如果必須的話只能增加計數(shù)溢出的相關(guān)代碼。iii.有些程序省略了捕捉通道的初始化代碼,這是不對的iv.在基本計時器初始化代碼里面注意選擇適當(dāng)?shù)挠嫈?shù)器長度,最好讓波形長度不要長于一個計數(shù)周期,否則需要增加溢出代碼很麻煩。一個計數(shù)周期的長度計算跟如下幾個參數(shù)有關(guān):(1)RCC初始化代碼里面的RCC_PCLKxConfig,這是TIM的基礎(chǔ)時鐘源與系統(tǒng)時鐘的關(guān)系。(2)TIM初始化的TIM_Period,這是計數(shù)周期的值(3)TIM初始化的T
20、IM_Prescaler,這是計數(shù)周期的倍頻計數(shù)器,相當(dāng)于調(diào)節(jié)計數(shù)周期,可以使TIM_Period盡量大,提高計數(shù)精度。sw笨笨的STM32筆記之十二:時鐘不息工作不止,systic時鐘應(yīng)用a)目的:使用系統(tǒng)時鐘來進(jìn)行兩項實驗-周期執(zhí)行代碼與精確定時延遲。b)初始化函數(shù)定義:void SysTick_Configuration(void);c)初始化函數(shù)調(diào)用:SysTick_Configuration();d)初始化函數(shù):void SysTick_Configuration(void)SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8);/時
21、鐘除8 SysTick_SetReload(250000);/計數(shù)周期長度SysTick_CounterCmd(SysTick_Counter_Enable);/啟動計時器SysTick_ITConfig(ENABLE);/打開中斷e)在NVIC的初始化函數(shù)里面增加以下代碼打開相關(guān)中斷:NVIC_SystemHandlerPriorityConfig(SystemHandler_SysTick,1,0);/中斷等級設(shè)置,一般設(shè)置的高一些會少受其他影響f)在stm32f10x_it.c文件中找到void SysTickHandler函數(shù)void SysTickHandler(void)執(zhí)行代碼g
22、)簡單應(yīng)用:精確延遲函數(shù),因為systic中斷往往被用來執(zhí)行周期循環(huán)代碼,所以一些例程中使用其中斷的啟動和禁止來編寫的精確延時函數(shù)實際上不實用,我自己編寫了精確計時函數(shù)反而代碼更精簡,思路更簡單。思路是調(diào)用后,變量清零,然后使用時鐘來的曾變量,不斷比較變量與延遲的數(shù)值,相等則退出函數(shù)。代碼和步驟如下:i.定義通用變量:u16 Tic_Val=0;/變量用于精確計時ii.在stm32f10x_it.c文件中相應(yīng)定義:extern u16 Tic_Val;/在本文件引用MAIN.c定義的精確計時變量iii.定義函數(shù)名稱:void Tic_Delay(u16 Tic_Count);/精確延遲函數(shù)iv
23、.精確延時函數(shù):void Tic_Delay(u16 Tic_Count)/精確延時函數(shù)Tic_Val=0;/變量清零while(Tic_Val!=Tic_Count)printf();/計時v.在stm32f10x_it.c文件中void SysTickHandler函數(shù)里面添加Tic_Val+;/變量遞增vi.調(diào)用代碼:Tic_Delay(10);/精確延時vii.疑問:如果去掉計時行那個沒用的printf();函數(shù)將停止工作,這個現(xiàn)象很奇怪sw笨笨的STM32筆記之十三:惡搞,兩只看門狗a)目的:了解兩種看門狗(我叫它:系統(tǒng)運行故障探測器和獨立系統(tǒng)故障探測器,新手往往被這個并不形象的象形
24、名稱搞糊涂)之間的區(qū)別和基本用法。b)相同:都是用來探測系統(tǒng)故障,通過編寫代碼定時發(fā)送故障清零信號(高手們都管這個代碼叫做喂狗),告訴它系統(tǒng)運行正常。一旦系統(tǒng)故障,程序清零代碼(喂狗)無法執(zhí)行,其計數(shù)器就會計數(shù)不止,直到記到零并發(fā)生故障中斷(狗餓了開始叫喚),控制CPU重啟整個系統(tǒng)(不行啦,開始咬人了,快跑)。c)區(qū)別:獨立看門狗Iwdg-我的理解是獨立于系統(tǒng)之外,因為有獨立時鐘,所以不受系統(tǒng)影響的系統(tǒng)故障探測器。(這條狗是借來的,見誰偷懶它都咬!)主要用于監(jiān)視硬件錯誤。窗口看門狗wwdg-我的理解是系統(tǒng)內(nèi)部的故障探測器,時鐘與系統(tǒng)相同。如果系統(tǒng)時鐘不走了,這個狗也就失去作用了。(這條狗是老板
25、娘養(yǎng)的,老板不干活兒他不管!)主要用于監(jiān)視軟件錯誤。d)初始化函數(shù)定義:鑒于兩只狗作用差不多,使用過程也差不多初始化函數(shù)栓一起了,用的時候根據(jù)情況刪減。void WDG_Configuration(void);e)初始化函數(shù)調(diào)用:WDG_Configuration();f)初始化函數(shù)void WDG_Configuration()/看門狗初始化/軟件看門狗初始化WWDG_SetPrescaler(WWDG_Prescaler_8);/時鐘8分頻4ms/(PCLK1/4096)/8=244 Hz(4 ms)WWDG_SetWindowValue(65);/計數(shù)器數(shù)值WWDG_Enable(127
26、);/啟動計數(shù)器,設(shè)置喂狗時間/WWDG timeout=4 ms*64=262 ms WWDG_ClearFlag();/清除標(biāo)志位WWDG_EnableIT();/啟動中斷/獨立看門狗初始化IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);/啟動寄存器讀寫IWDG_SetPrescaler(IWDG_Prescaler_32);/40K時鐘32分頻IWDG_SetReload(349);/計數(shù)器數(shù)值IWDG_ReloadCounter();/重啟計數(shù)器IWDG_Enable();/啟動看門狗g)RCC初始化:只有軟件看門狗需要時鐘初始化,獨立看門狗有
27、自己的時鐘不需要但是需要systic工作相關(guān)設(shè)置。RCC_APB1PeriphClockCmd(RCC_APB1Periph_WWDG,ENABLE);h)獨立看門狗使用systic的中斷來喂狗,所以添加systic的中斷打開代碼就行了。軟件看門狗需要在NVIC打開中斷添加如下代碼:NVIC_InitStructure.NVIC_IRQChannel=WWDG_IRQChannel;/通道NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;/占先中斷等級NVIC_InitStructure.NVIC_IRQChannelSubPrior
28、ity=0;/響應(yīng)中斷優(yōu)先級NVIC_Init(&NVIC_InitStructure);/打開中斷i)中斷程序,軟件看門狗在自己的中斷中喂狗,獨立看門狗需要使用systic的定時中斷來喂狗。以下兩個程序都在stm32f10x_it.c文件中。void WWDG_IRQHandler(void)WWDG_SetCounter(0x7F);/更新計數(shù)值WWDG_ClearFlag();/清除標(biāo)志位void SysTickHandler(void)IWDG_ReloadCounter();/重啟計數(shù)器(喂狗)j)注意事項:i.有狗平常沒事情可以不理,但是千萬別忘了喂它,否則死都不知道怎么死的!ii
29、.初始化程序的調(diào)用一定要在systic的初始化之后。iii.獨立看門狗需要systic中斷來喂,但是systic做別的用處不能只做這件事,所以我寫了如下幾句代碼,可以不影響systic的其他應(yīng)用,其他systic周期代碼也可參考:第一步:在stm32f10x_it.c中定義變量int Tic_IWDG;/喂狗循環(huán)程序的頻率判斷變量第二步:將SysTickHandler中喂狗代碼改為下面:Tic_IWDG+;/變量遞增if(Tic_IWDG=100)/每100個systic周期喂狗IWDG_ReloadCounter();/重啟計數(shù)器(喂狗)Tic_IWDG=0;/變量清零sw笨笨的STM32筆
30、記之十四:基本問題,來討論一下軟件架構(gòu)網(wǎng)上大家都在討論和學(xué)習(xí),但是對于架構(gòu)這個基本問題卻沒幾個人討論。個人認(rèn)為有個好的架構(gòu)是寫好代碼的基礎(chǔ),可以使后期的調(diào)式工作事半功倍!1、架構(gòu)組成:我的程序代碼分為四種結(jié)構(gòu)a)順序執(zhí)行代碼定義:按照順序逐行執(zhí)行的代碼優(yōu)點:是思路簡單,代碼可靠不易被干擾。缺點:占用資源用途:只用來各種變量、函數(shù)的定義,硬件的初始化程序位置:main.c的開始一直到main函數(shù)的while函數(shù)之前b)空閑執(zhí)行代碼定義:在CPU空閑的時候才執(zhí)行的代碼優(yōu)點:不占用資源缺點:執(zhí)行的實時性不能保證用途:非實時任務(wù),調(diào)試信息輸出,不重要的狀態(tài)指示位置:main.c的main函數(shù)的whil
31、e函數(shù)內(nèi)部c)中斷執(zhí)行代碼定義:由軟硬件事件打斷整個程序而執(zhí)行的代碼優(yōu)點:可以保證實時性,各種中斷可以安排優(yōu)先順序缺點:關(guān)系相對復(fù)雜,互相之間容易干擾用途:觸發(fā)性的代碼,比如接收數(shù)據(jù),響應(yīng)外部設(shè)備,按鈕的相應(yīng)位置:stm32f10x_it.c內(nèi)部d)循環(huán)執(zhí)行代碼定義:按照時間周期執(zhí)行的代碼優(yōu)點:定期自動執(zhí)行缺點:實時性不好用途:需要周期執(zhí)行的任務(wù),狀態(tài)檢查及相關(guān)信息輸出,數(shù)據(jù)記錄位置:stm32f10x_it.c的SysTickHandler內(nèi)部e)DMA自動代碼定義:不需要主程序干預(yù),外設(shè)自動執(zhí)行優(yōu)點:自動刷新數(shù)據(jù),不占用CPU資源缺點:不能控制用途:數(shù)據(jù)通信存儲,AD轉(zhuǎn)換位置:不需要2、架
32、構(gòu)執(zhí)行順序圖sw笨笨的STM32學(xué)習(xí)筆記之十五-IAR4的最后瘋狂,笨笨的開發(fā)模板下載準(zhǔn)備大換血了,包括開發(fā)環(huán)境升級和固件升級,那個需要一定過程,吧之前完成的模板跟大家共享一下。我的程序庫特點:a)默認(rèn)兼容ST-LINK-II,IAR EWARM 4.42A,F(xiàn)lash調(diào)試,使用串口1,GPIOA的3、4、5、6腳輸入,GPIOB的1、2、10、11腳輸出,其他有可能需要更改設(shè)置b)為操作方便減少了目錄的層次c)為學(xué)習(xí)方便使用網(wǎng)友漢化版2.0.2固件,主要是庫函數(shù)中c代碼的注釋。d)加入必用的flash(讀取優(yōu)化),nvic(RAM與Flash調(diào)試選擇),rcc(時鐘管理模板,開啟外設(shè)時鐘模板
33、),gpio(管腳定義模板)的初始化代碼,所有模板代碼用到的時候只要去掉前面的注釋/,根據(jù)需求填入相應(yīng)值就可以了。e)因為自己記性不好,所以main函數(shù)中的代碼做到每行注釋,便于自己以后使用。f)列出常見應(yīng)用代碼模板與ASCII常用列表。g)集成putchar字符輸出和Printf的重定義到串口的代碼,便于調(diào)試。h)集成NVIC中斷管理模板,EXTI外部I/O中斷模板i)針對自己情況集成PWM輸出模板和CAP脈寬捕捉模板,并全部注釋。j)集成系統(tǒng)循環(huán)時鐘的初始化函數(shù)模板k)集成自己編寫精確延時代碼,不會影響systic的周期代碼的執(zhí)行。l)集成兩種看門狗的使用代碼,小心使用M)集成hex生成設(shè)
34、置命令,位置在編譯目錄(STM32F103C8)的Exe下,集成ISP軟件便于脫離仿真器的串口調(diào)試STMISP.exe。由于注釋寫的太多,還加入自己編程以來的許多格式習(xí)慣,所以許多人會覺得混亂不堪,在此聲明,此程序庫僅僅為個人學(xué)習(xí)之用!sw笨笨的STM32學(xué)習(xí)筆記之十六-題外話,自己做塊工程板一、我的學(xué)習(xí)計劃將STM32單片機的硬件設(shè)計工作:第一步-用STM32F103CBT6的48腳芯片,為光電平臺的簡單控制為目標(biāo),實現(xiàn)基本外圍硬件、PWM、串口、I/O。將SPI、I2C留插針。第二步-為集成傳感器應(yīng)用為目標(biāo),在第一步硬件基礎(chǔ)上制作功能性的套版,兩板連接實現(xiàn)AD、SPI、I2C、RTC等等功能。二、硬件規(guī)劃選用STM32F103CBT6,面積77mm,128K flash,16K RAM,4個16bit PWM,12個12bit PWM或CAP,2個SPI,2個I2C,3個串口,1個CAN,1個USB,),12ADC。管腳分配目標(biāo)1如圖,之后的功能包括:4個AD,3個串口(1個與I2C復(fù)用),1個SPI,8個(兩組)PWM輸入輸出,1個USB,1個I/O,1個MCO。三、管腳分配:下載(32.83 KB)2009-4-26 16:14四
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 儀調(diào)校室制度規(guī)范要求
- 腫瘤科護(hù)理工作制度規(guī)范
- 關(guān)于車間環(huán)保規(guī)范制度
- 如何規(guī)范企業(yè)用工制度
- 規(guī)范納稅人日常工作制度
- 縣級應(yīng)急廣播制度規(guī)范
- 醫(yī)療機構(gòu)夜查制度規(guī)范
- 鋁合金粉末處理制度規(guī)范
- 醫(yī)生值班守班制度規(guī)范
- 內(nèi)部控制制度基本規(guī)范
- 2026年及未來5年市場數(shù)據(jù)中國汽車車身電子控制行業(yè)全景評估及投資規(guī)劃建議報告
- 征信修復(fù)協(xié)議書
- 黑龍江省哈爾濱市五區(qū)2025-2026學(xué)年八年級(五四學(xué)制)上學(xué)期期中語文試題(含答案)
- 2026年寧夏賀蘭工業(yè)園區(qū)管委會工作人員社會化公開招聘備考題庫及參考答案詳解1套
- 黃芪中藥課件
- 幼兒園老師面試高分技巧
- 運營總監(jiān)2025年年底工作總結(jié)及2026年度工作計劃
- 2026年管線鋼市場調(diào)研報告
- 2025年江蘇省公務(wù)員面試模擬題及答案
- 2025中國家庭品牌消費趨勢報告-OTC藥品篇-
- 機器人學(xué):機構(gòu)、運動學(xué)及動力學(xué) 課件全套 第1-8章 緒論-機器人綜合設(shè)計
評論
0/150
提交評論