
基于STM32F030+FT1610FF1高精度超声波测距模块测距教程及参考程序等开源分享 资料下载见附件,电脑登入 微信公众号:游名开源 硬件说明: 2脚、3脚:需要接4.7到10K上拉电阻到3.3V或5V电源 特性: 极简的设计;0 r) K5 O4 y9 i% W5 w+ P 极轻的重量; 极高的测量灵敏度;% g* }+ N; `0 \7 Z, ^7 z 极低的消耗电流; 接口ESD保护;' t: c+ E* I' D6 r2 E9 ` 偏捷的安装及使用方式;6 W5 J7 E0 p( G! R6 } 有效测量距离3cm-1.5m(其它距离范围可定制);+ k( ~0 u8 |8 `% V 支持3到5V宽电压,默认采用IO通信方式(默认IO通讯),接口兼容IIC、UART通信、485通信; 3 {* S6 ?; N" ~2 D; L% w/ t! c* r4 J3 i7 }' l4 L; h1 X, L |
STM32F030C8T6+DRV8701+磁隔离大功率直流电机驱动器制作
STM32固件库分享,超全系列整理
STM32F0F1F4内部flash擦写时间和寿命
分享STM32F051中文参考手册(重制书签版)
STM32F0 IIC slave mode
三创电子(Tcreate)-STM32F030调试之I2C篇
基于STM32F0的FOC5.2库PMSM驱动:程序+原理图+BOM等全部开源分享
【MCU实战经验】+STM32F030的步进电机加减速
【管管推荐】STM32经验分享篇
三创电子(Tcreate)-STM32F030核心板代码
void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim)8 k6 L; i) M! d: G6 Y3 Z* O
{
if((TIM3CH2_CAPTURE_STA&0X80)==0)
{
if(TIM3CH2_CAPTURE_STA&0X40)
{ , i3 @ q4 B" f. u+ W- l+ {
TIM3CH2_CAPTURE_STA|=0X80; ( g! l& Q; I' d. N
TIM3CH2_CAPTURE_VAL=HAL_TIM_ReadCapturedValue(&htim3,TIM_CHANNEL_2);
long long temp=0;7 L, c6 N9 [( x: {% D/ i" i
float distance=0.0;
temp=TIM3CH2_CAPTURE_STA&0X3F;
temp*=0XFFFF;
temp+=TIM3CH2_CAPTURE_VAL;
temp=(temp*100)/58;
distance=(float)temp/100;
printf("Goal distence:%.2lf cm\r\n",distance);
__HAL_TIM_DISABLE(&htim3); ! S# L- j$ b) s @3 a' x3 K
}' X. s, W0 `$ }
else
{9 C) H5 d v" P
TIM3CH2_CAPTURE_STA=0;
TIM3CH2_CAPTURE_VAL=0;
TIM3CH2_CAPTURE_STA|=0X40;
__HAL_TIM_DISABLE(&htim3);
__HAL_TIM_SET_COUNTER(&htim3,0);
TIM_RESET_CAPTUREPOLARITY(&htim3,TIM_CHANNEL_2);
TIM_SET_CAPTUREPOLARITY(&htim3,TIM_CHANNEL_2, TIM_ICPOLARITY_FALLING); ! G/ Z. m" {2 N+ U9 n$ Q
}
}
}0 F/ Y [% H( n" R; }" y' ^
int main(void): O/ b0 w4 R. |5 V# X5 X
{
/ |+ @5 Q, {$ I1 ]2 `* A
HAL_Init();
SystemClock_Config();5 g9 @8 w" b7 [/ R" }1 X
MX_GPIO_Init();
MX_DMA_Init();+ T; P, l: t; @( Q3 u8 J; X
MX_USART2_UART_Init();
MX_TIM3_Init();8 d- z) b C" H! u$ O8 ^$ @& y
/* USER CODE BEGIN 2 */
__HAL_TIM_ENABLE_IT(&htim3,TIM_IT_UPDATE);+ q& {' X+ S Z" r2 z
HAL_TIM_IC_Start_IT(&htim3,TIM_CHANNEL_2);
while (1)$ p& L% e/ j0 i' w! j; Z
{
Measure_Start();
if(TIM3CH2_CAPTURE_STA&0X80)
{
__HAL_TIM_SET_COUNTER(&htim3,0);
TIM_RESET_CAPTUREPOLARITY(&htim3,TIM_CHANNEL_2); 0 N6 u9 R4 u8 R8 X
TIM_SET_CAPTUREPOLARITY(&htim3,TIM_CHANNEL_2,TIM_ICPOLARITY_RISING);
__HAL_TIM_ENABLE(&htim3);+ l/ q% o" h5 n. n k5 j! z1 y* c
TIM3CH2_CAPTURE_STA=0;
}1 q& P# c7 `/ U* p- I6 ]
HAL_GPIO_TogglePin(LD2_GPIO_Port,LD2_Pin);; U: o( P: ^* x7 j' _: c
HAL_Delay(1000);- F0 k+ e! x* F, \& e+ U2 c( h
}
}
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)2 B- c: B' V, N# n
{
( ]5 H7 f! O% I) o
if((TIM3CH2_CAPTURE_STA&0X80)==0)
{8 Z# x W; }% f: A+ a
if(TIM3CH2_CAPTURE_STA&0X40)
{
if((TIM3CH2_CAPTURE_STA&0X3F)==0X3F)" |' N% h7 _* u& _* @$ E8 W
{) u2 M+ Q3 c. |$ Z0 [; J$ v! J1 r
TIM3CH2_CAPTURE_STA|=0X80; ~+ K3 w% o. V# Q; g
TIM3CH2_CAPTURE_VAL=0XFFFF;7 b! u. Q" L9 k. [! q* Z
}* B; Y- K+ F9 `7 z* j9 Z$ p
else TIM3CH2_CAPTURE_STA++;8 J% J6 M* U- h" c' G
} ! N( b( f H6 J) J% J7 n) J y
} 4 ?' ~) K9 W9 s) P6 ]: F6 x
}& [9 I/ W# C5 n2 L
4 R4 Z! d* J( w1 I0 O2 ?. }
NUC_LEO-DG-------------- FT1610FF17 P! g, q1 k' _! J
PB3------------------------------T/SDA/TX
PB5------------------------------E/SCL/RX6 O' G- `+ n8 q0 v- G9 A
5V/3V----------------------------VCC
GND-----------------------------GND
! z' \6 ^( d( G0 Z/ u y- X( z+ y
然后再NVICSetings中选上TIM3 global interrupt,入下图:
/ A8 G7 x3 P6 H
) q$ u' g. Z2 m3 u$ C j+ @7 ]
全局变量:! `( l7 h3 M1 A* z
uint8_t TIM3CH2_CAPTURE_STA=0;
uint32_t TIM3CH2_CAPTURE_VAL;
int fputc(int ch,FILE *f)( t: C" w4 R9 q. b# G6 \
{0 t, B! K% q' H9 w" O1 J
while(0==(USART2->ISR&0x40));
USART2->TDR=ch;; I4 v, M$ m7 @' b- H1 w4 T
return ch;. K& V L9 h' R7 ~- F6 R* F
8 X" F n8 u) o$ k
}
void Measure_Start(void)2 E2 G' u z5 b, V8 v3 N
{
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_3, GPIO_PIN_SET);6 l, H3 E' @5 u) i5 j
HAL_Delay(1);3 A8 V$ d, A( l i! W8 u% x$ w. p0 P
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_3, GPIO_PIN_RESET);( @6 _7 V6 c$ a: F |0 n
}
. \: Q2 {0 h6 g u2 X