找回密码
 注册
关于网站域名变更的通知
查看: 258|回复: 2
打印 上一主题 下一主题

按键--AT_SURF案例

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-10-26 10:06 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
AT32-SUFR板载了两个独立按键,两个按键直接连接到mcu的IO口,当按键按下时IO电平为高电平,当没有按键按下时IO电平为低电平,MCU通过检测IO上的电平即可知道当前按键是否按下。
3 {0 G, @1 J; @1 i, Z! U: L$ t" ^  I
资源准备2 i( x1 F. X' l9 C
硬件环境:( Y; I. b. _8 r9 L. f$ l& ]
对应产品型号的AT-SURF-F437 Board
4 z8 I( l& }7 K( ]( l4 x软件环境:
+ y" L8 R# t3 f5 [' C+ k7 oAT32F435_437_Firmware_Library_V2.x.xprojectat_sufr_f437exampleskey' b3 h% [: m. [

6 v+ w1 a9 a3 p; E7 X5 J4 I硬件设计) A! i0 V' d4 H0 y. ^3 Z5 l' q
本案例使用的硬件资源有两个独立按键,对应的引脚如下:
' L4 h" {1 q# ]4 {* u1 T表-硬件资源使用! }. a( [. \; v" R' F% V$ o

1 O! b; M7 p! L1 K, u' k* F: J% N$ P0 S6 z/ e- q: L' [; L
对应的电路原理如下:0 ?8 _% k$ R  l5 w1 w9 _
图-按键电路原理图
8 v/ y  X# x6 n2 {
$ B. c; K1 E: M( ^) v; A: a9 Q1 `! _) k7 z
软件设计  C; h8 b0 z: c$ M; [
1)        按键测试
) J. l1 R& P1 @! Y) {/ k将两个按键用到的IO口配置成输入模式8 q7 D5 P9 w' P- {6 _
读取IO状态,判断是否有按键发生
- A1 v3 Z+ }1 m, A4 M2 m2 j4 i+ F2)        代码介绍
& M% p6 D$ {5 A, Fmain函数代码描述% H4 a4 q3 x7 @( W3 F; Q
  • int main(void)
  • {
  • /* 初始化系统时钟 */
  • system_clock_config();
  • /* 初始化中断优先级分组 */
  • nvic_priority_group_config(NVIC_PRIORITY_GROUP_4);
  • /* 初始化延时函数 */
  • delay_init();
  • /* 初始化LCD */
  • lcd_init(LCD_DISPLAY_VERtiCAL);
  • /* 初始化按键 */
  • key_init();
  • /* 显示信息 */
  • lcd_string_show(10, 20, 200, 24, 24, (uint8_t *)"Key Test");
  • lcd_string_show(10, 60, 280, 24, 24, (uint8_t *)"Press any key to begin");
  • while(1)
  • {
  • /* 按键检测 */
  • key_value = key_press();
  • switch(key_value)
  • {
  • /* 按键1按下 */
  • case KEY_1:
  • lcd_string_show(10, 100, 310, 24, 24, (uint8_t *)"key value: key 1");
  • break;
  • /* 按键2按下 */
  • case KEY_2:
  • lcd_string_show(10, 100, 310, 24, 24, (uint8_t *)" key value: key 2");
  • break;
  • default:
  • break;
  • }
  • }
  • }
    % W: ^; w0 `9 C& V+ O
; g5 |' P0 ]4 Z& H
$ I6 B; o# @8 O% \  ^" t7 M! u
void key_init(void)函数代码描述
. s. T1 F- k' L' v2 d  V6 f) o6 b) _3 t: F" W7 R- k0 }
  • /**
  • * @brief key init.
  • * @param none.
  • * @retval none.
  • */
  • void key_init(void)  q; Z. u" w/ s7 i5 V0 E# o8 X

, |3 `) t' E" |  k
: B5 l) s/ {% dkey_type at32_key_press(void)函数代码描述0 k2 E$ k& Z6 ^9 B* h" M
+ p' D  I9 S, h7 J; E
  • /**
  • * @brief returns which key have press down
  • * @param none
  • * @retval the key have press down
  • */
  • key_type at32_key_press(void)% z/ v$ H4 b; n+ f, P) C7 R
6 W' f2 N# h; I. |
! N5 v" g0 ~# r
下载验证% |2 ^5 J0 i3 k/ ?$ \
如果有按键按下,被按下的按键会通过LCD屏显示出来。
/ \2 V% ?  y- K! t图-实验效果7 \& t: s. `  w1 s8 o$ u# @" g
5 e) p+ |2 t4 ]5 ]! w

* Z9 ^/ K6 b! q( {( _
0 y" n& P, b1 o1 ~5 f  c: q4 l' Q9 b

8 L" V0 R* t/ s, N' u

该用户从未签到

2#
发表于 2022-10-26 11:27 | 只看该作者
SURF借鉴了SIFT中简化近似的思想,把DoH中的高斯二阶微分模板进行了简化,使得模板对图像的滤波只需要进行几个简单的加减法运算,并且,这种运算与滤波器的尺度无关。
- {9 M3 Y# w7 \2 P1 VSURF算法中要用到积分图像的概念。

该用户从未签到

3#
发表于 2022-10-26 13:58 | 只看该作者
dragongfly 发表于 2022-10-26 11:27
# e  F) z$ |7 l/ V2 x* PSURF借鉴了SIFT中简化近似的思想,把DoH中的高斯二阶微分模板进行了简化,使得模板对图像的滤波只需要进行 ...

. C- A  k6 s5 J% Q+ A- LSURF算法较SIFT在运算速度上要快3倍左右。
! k2 ~- q2 T5 X; _* O; S
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-7-11 20:19 , Processed in 0.140625 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表