91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 1.42MB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發布日期: 2024-01-27
  • 語言: 其他
  • 標簽: STM32??PID??

資源簡介

基于STM32單片機,通過超聲波模塊以及PID算法來實現對小球的控制,使得小球可以停留在所設定的高度,并具有一定的抗干擾能力。

資源截圖

代碼片段和文件信息

#include?“hcsr04.h“
#include?“sys.h“
#include?“delay.h“




void?Gpio_Init(void)
{
RCC->AHB1ENR=1<<0;????????????//使能PORTA時鐘

GPIOA->MODER?&=~(3<<(1*2));???//先清除PA1原來的設置
??? GPIOA->MODER?|=(1<<(1*2));????//設置為通用輸出模式

GPIOA->OTYPER?&=~(1<<1);??????//先清除PA1原來的設置?
??? GPIOA->OTYPER?|=(0<<1);???????//設置PA1為輸出推挽

GPIOA->OSPEEDR?&=~(3<<(1*2));?//先清除PA1原來的設置
GPIOA->OSPEEDR?|=2<<(1*2);????//設置PA1輸出速度為50M
?
GPIOA->PUPDR?&=~(3<<(1*2));???//先清除PA1原來的設置?
GPIOA->PUPDR?|=2<<(1*2);??????//設置PA1下拉
?
}



void?Trig_Init(void)
{
trig=1;
delay_us(20);
trig=0;

}



void?TIM5_CH1_Cap_Init(u32?arru16?psc)
{
RCC->APB1ENR|=1<<3;?????//TIM5?時鐘使能
RCC->AHB1ENR=1<<0;??????//使能PORTA時鐘
GPIO_Set(GPIOAPIN0GPIO_MODE_AFGPIO_OTYPE_PPGPIO_SPEED_100MGPIO_PUPD_PD);??//復用功能,下拉
GPIO_AF_Set(GPIOA02);?//PA0AF2


TIM5->ARR=arr;??????????//設定計數器自動重裝值
TIM5->PSC=psc;??????????//預分頻器
TIM5->CCMR1|=1<<0;??????//CC1S=01?選擇輸入端?IC1?映射到?TI1?上
TIM5->CCMR1|=0<<4;??????//IC1F=0000?配置輸入濾波器?不濾波
TIM5->CCMR1|=0<<3;?????//IC1PS=00?配置輸入分頻不分頻
TIM5->CCER|=0<<1;???????//CC1P=0??上升沿捕獲
TIM5->CCER|=1<<0;???????//CC1E=1?允許捕獲計數器的值到捕獲寄存器中
TIM5->EGR=1<<0;?????????//軟件控制產生更新事件使寫入?PSC?的值立即生效
//否則將會要等到定時器溢出才會生效!
TIM5->DIER|=1<<1;???????//允許捕獲?1?中斷
TIM5->DIER|=1<<0;???????//允許更新中斷?
TIM5->CR1|=0x01;????????//使能定時器?2
MY_NVIC_Init(10TIM5_IRQn3);//搶占?1,子優先級?0,組?3
}
//捕獲狀態
//[7]:0沒有成功的捕獲;1成功捕獲到一次.
//[6]:0還沒捕獲到低電平;1已經捕獲到低電平了.
//[5:0]:捕獲低電平后溢出的次數(對于?32?位定時器來說1us?計數器加?1溢出時間:4294?秒)
u8?TIM5CH1_CAPTURE_STA=0;?//輸入捕獲狀態?
u32?TIM5CH1_CAPTURE_VAL;??//輸入捕獲值(TIM2/TIM5?是?32?位)
//定時器?5?中斷服務程序?
void?TIM5_IRQHandler(void)
{
u16?tsr;
????????tsr=TIM5->SR;
????????if((TIM5CH1_CAPTURE_STA&0X80)==0)//還未成功捕獲?
????????{
????????????if(tsr&0X01)//溢出
????????????{?
????????????????if(TIM5CH1_CAPTURE_STA&0X40)????//已經捕獲到高電平了
????????????????{
????????????????????if(TIM5CH1_CAPTURE_STA&0X3F)//高電平太長了
????????????????????{
?????????????????????TIM5CH1_CAPTURE_STA|=0X80;//標記成功捕獲了一次
?????????????????????TIM5CH1_CAPTURE_VAL=0XFFFFFFFF;

?????????????????????}
?else
?TIM5CH1_CAPTURE_STA++;
??????????????????}?
??????????????}
??????????????if(tsr&0x02)?????????????????????//捕獲?1?發生捕獲事件
??????????????{?
??????????????????if(TIM5CH1_CAPTURE_STA&0X40)?//捕獲到一個下降沿
??????????????????{?
???TIM5CH1_CAPTURE_STA|=0X80;??//標記成功捕獲到一次高電平脈寬
???TIM5CH1_CAPTURE_VAL=TIM5->CCR1;//獲取當前的捕獲值.
???TIM5->CCER&=~(1<<1);??//CC1P=0?設置為上升沿捕獲
??????????????????}?????????????????
??else?//還未開始第一次捕獲上升沿
??????????????????{
???TIM5CH1_CAPTURE_STA=0;??//清空
???TIM5CH1_CAPTURE_VAL=0;
???TIM5CH1_CAPTURE_STA|=0X40;??//標記捕獲到了上升沿
???TIM5->CR1&=~(1<<0)?;?//使能定時器?2
???TIM5->CNT=0;??//計數器清空
???TIM5->CCER|=1<<1;?//CC1P=1?設置為下降沿捕獲
???TIM5->CR1|=0x01;?//使能定時器?2
??????????????????}?
???????????????}?
???????????}
????????????TIM5->SR=0;//清除中斷標志位
????????}





?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-09-06?21:48??風洞\
?????目錄???????????0??2018-09-06?21:48??風洞\HARDWORKS\
?????目錄???????????0??2018-09-15?21:27??風洞\HARDWORKS\HCSR04\
?????文件????????3410??2018-09-15?21:27??風洞\HARDWORKS\HCSR04\HCSR04.c
?????文件?????????237??2018-09-05?10:18??風洞\HARDWORKS\HCSR04\HCSR04.h
?????目錄???????????0??2018-09-06?21:48??風洞\HARDWORKS\MOTOR\
?????文件?????????727??2018-09-05?11:21??風洞\HARDWORKS\MOTOR\MOTOR.c
?????文件?????????219??2018-09-03?21:44??風洞\HARDWORKS\MOTOR\MOTOR.h
?????目錄???????????0??2018-09-15?21:18??風洞\HARDWORKS\PID\
?????文件?????????898??2018-09-15?21:18??風洞\HARDWORKS\PID\PID.c
?????文件?????????150??2018-09-03?21:46??風洞\HARDWORKS\PID\PID.h
?????目錄???????????0??2018-09-15?21:27??風洞\HARDWORKS\TIMER\
?????文件????????1132??2018-09-15?21:27??風洞\HARDWORKS\TIMER\TIMER.c
?????文件?????????124??2018-09-03?21:39??風洞\HARDWORKS\TIMER\TIMER.h
?????目錄???????????0??2018-09-15?21:18??風洞\OBJ\
?????文件??????266714??2018-09-15?21:18??風洞\OBJ\delay.crf
?????文件?????????450??2018-09-15?21:18??風洞\OBJ\delay.d
?????文件??????286344??2018-09-15?21:18??風洞\OBJ\delay.o
?????文件??????267483??2018-09-15?21:18??風洞\OBJ\hcsr04.crf
?????文件?????????512??2018-09-15?21:18??風洞\OBJ\hcsr04.d
?????文件??????287940??2018-09-15?21:18??風洞\OBJ\hcsr04.o
?????文件??????266665??2018-09-15?21:18??風洞\OBJ\motor.crf
?????文件?????????497??2018-09-15?21:18??風洞\OBJ\motor.d
?????文件??????284256??2018-09-15?21:18??風洞\OBJ\motor.o
?????文件??????271036??2018-09-15?21:18??風洞\OBJ\pid.crf
?????文件?????????522??2018-09-15?21:18??風洞\OBJ\pid.d
?????文件??????285968??2018-09-15?21:18??風洞\OBJ\pid.o
?????文件??????????59??2018-09-15?21:18??風洞\OBJ\startup_stm32f40_41xxx.d
?????文件????????8000??2018-09-15?21:18??風洞\OBJ\startup_stm32f40_41xxx.o
?????文件??????268564??2018-09-15?21:18??風洞\OBJ\sys.crf
?????文件?????????387??2018-09-15?21:18??風洞\OBJ\sys.d
............此處省略47個文件信息

評論

共有 條評論