




全文預覽已結束
下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
#include STM32Libstm32f10x.h#include hal.h/* Function Name : GPIO_Configuration* 設置PD3,PD4,PD5,PD6為鍵盤輸入* 設置PB0,5,8,9; PC5,7; PD7 ;PA8 為輸出LED燈*/void GPIO_Configuration(void)GPIO_InitTypeDef GPIO_InitStructure;/*允許總線CLOCK,在使用GPIO之前必須允許相應端的時鐘.從STM32的設計角度上說,沒被允許的端將不接入時鐘,也就不會耗能,這是STM32節(jié)能的一種技巧,*/RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);/* PC8按鍵輸入*/GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;/上拉輸入GPIO_Init(GPIOC, &GPIO_InitStructure);/* PC9按鍵輸入*/GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;/上拉輸入GPIO_Init(GPIOC, &GPIO_InitStructure);hal.h#ifndef HAL_H#define HAL_H/硬件初始化extern void ChipHalInit(void);extern void ChipOutHalInit(void);/輸入宏定義#define GET_LEFT()(GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_8)#define GET_RIGHT()(GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_9)extern void USART1_Putc(u8 c);extern void USART_Configuration(void);extern void USART1_Puts(char * str);#endifTIM.c#include STM32Libstm32f10x.hvoid Tim1_Configuration(void)TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;TIM_OCInitTypeDef TIM_OCInitStructure;GPIO_InitTypeDef GPIO_InitStructure;/* PA8設置為功能腳(PWM) */GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOA, &GPIO_InitStructure);RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1,ENABLE);TIM_DeInit(TIM1);/*TIM1時鐘配置*/TIM_TimeBaseStructure.TIM_Prescaler = 72;/預分頻(時鐘分頻)72M/72=1000KTIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;/向上計數TIM_TimeBaseStructure.TIM_Period = 2000;/裝載值 1000k/2000=500hzTIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;TIM_TimeBaseStructure.TIM_RepetitionCounter = 0x0;TIM_TimeBaseInit(TIM1,&TIM_TimeBaseStructure);/* Channel 1 Configuration in PWM mode */TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; /PWM模式2TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; /正向通道有效TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Disable;/反向通道無效TIM_OCInitStructure.TIM_Pulse = 300; /占空時間TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low; /輸出極性TIM_OCInitStructure.TIM_OCNPolarity = TIM_OCNPolarity_High; /互補端的極性TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Set;TIM_OCInitStructure.TIM_OCNIdleState = TIM_OCIdleState_Reset;TIM_OC1Init(TIM1,&TIM_OCInitStructure); /通道1/* TIM1 counter enable */TIM_Cmd(TIM1,ENABLE);/* TIM1 Main Output Enable */TIM_CtrlPWMOutputs(TIM1,ENABLE);/設置捕獲寄存器1void SetT1Pwm1(u16 pulse)TIM1-CCR1=pulse;main.c/*實驗名稱:PWM*功能:是PA8產生PWM輸出,按鍵調節(jié)占空比*/#include STM32Libstm32f10x.h#include hal.h#define SIZE 0u8 table11=0123456789 ;char buffer10=0000000000;void Delay(u16 n);void d_2_char(u32 x)bufferSIZE+0=tablex%10000000000/100000;bufferSIZE+1=tablex%1000000000/100000;bufferSIZE+2=tablex%100000000/100000;bufferSIZE+3=tablex%10000000/10000;bufferSIZE+4=tablex%1000000/10000;bufferSIZE+5=tablex%100000/10000;bufferSIZE+6=tablex%10000/1000;bufferSIZE+7=tablex%1000/100;bufferSIZE+8=tablex%100/10;bufferSIZE+9=tablex%10;/延遲函數void Delay(u16 speed)u16 i;while(speed!=0)speed-;for(i=0;i400;i+);extern void SetT1Pwm1(u16 pulse);int main(void)u16 pulse=300;ChipHalInit();/片內硬件初始化ChipOutHalInit();/片外硬件初始化for(;)if(GET_LEFT()=0)while(GET_LEFT()=0);if(pulse=2000)pulse+=30;/SetT1Pwm1(pulse);elsepulse=300; d_2_char(pulse);USAR
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 個人房車出售合同范本
- 小型家裝合同范本
- 2025至2030年中國換檔桿上殼數據監(jiān)測研究報告
- 2025至2030年中國干洗軟棉數據監(jiān)測研究報告
- 眼外傷術后護理
- 紋身招學徒合同范本
- 合作辦學校合同范本
- 二零二五年度高空作業(yè)事故責任免除及應急處理合同
- 二零二五年度教育培訓機構學費收費合同
- 醫(yī)學影像技術對骨質疏松癥的預防與處理
- 理發(fā)店業(yè)務轉讓協議書范本
- 2024年江蘇省中學生生物學奧林匹克初賽理論試題
- 環(huán)境年度報告
- 生產流水線的規(guī)劃方案
- 小針刀療法教學課件
- 打造寫生基地方案
- 寫作:廣告詞-【中職專用】高二語文高效課堂(高教版2023·職業(yè)模塊)
- 爆發(fā)性心肌炎護理查房課件
- 銷售人員人才畫像
- 鑫宇鋅合金模具設計標準
- 整理我的小書桌(課件)小學勞動二年級通用版
評論
0/150
提交評論