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

按键--AT_SURF案例

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
AT32-SUFR板载了两个独立按键,两个按键直接连接到mcu的IO口,当按键按下时IO电平为高电平,当没有按键按下时IO电平为低电平,MCU通过检测IO上的电平即可知道当前按键是否按下。
5 L( ~/ }' w9 S4 d6 M7 A# Z6 i  G( v
资源准备, l( R* ?+ k3 C/ M) c
硬件环境:
7 b7 I1 j- H9 ^: c2 n对应产品型号的AT-SURF-F437 Board8 ]  J1 i( U& P7 w7 ?
软件环境:
  C0 ~: H1 }5 }6 O( ZAT32F435_437_Firmware_Library_V2.x.xprojectat_sufr_f437exampleskey- _) C9 g; K! ^/ p* P5 V5 T5 F
. u. s' `8 X& Q: ~, Y
硬件设计( f, Z5 @7 ^; I* ]6 Y+ D
本案例使用的硬件资源有两个独立按键,对应的引脚如下:
, U' P' ^% o! z7 v, H表-硬件资源使用3 j( _4 W# Q2 V) g" Z

6 c8 v0 _" j- b! `1 z
9 d' m9 J; p9 T& ~4 J  E对应的电路原理如下:
2 ]4 A) r' R, T+ E- }; e图-按键电路原理图
% w- ~( [$ @; G; Y , M; T/ v( I# z8 r: N( W

" m' C4 ?6 L& T) U软件设计; |4 L8 T; t# w( J0 [
1)        按键测试
5 m0 e& R( ?4 a; U! c: l! d将两个按键用到的IO口配置成输入模式
+ z, U% }: T/ Y% q) i, d/ @读取IO状态,判断是否有按键发生1 Y: T) G4 @; _0 a
2)        代码介绍
1 j8 e0 n0 j. C7 U- F* ^main函数代码描述( E  G, \6 R) c/ o
  • 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;
  • }
  • }
  • }- |4 A1 M: |1 C' z$ t" D" Q9 S  L. z
- P, s; ~8 `6 e: J& \

/ p7 B4 @" @0 n8 }" Dvoid key_init(void)函数代码描述$ U# z; D  M9 b, Z' M; d

- X% L) ?' a! z' V
  • /**
  • * @brief key init.
  • * @param none.
  • * @retval none.
  • */
  • void key_init(void)' F6 h- S) W, I) t) C8 y( ]

6 `" j( X' w: V/ i4 b" j" `' k, I4 E, d/ r2 L1 B
key_type at32_key_press(void)函数代码描述" B  B6 A9 s+ Z$ B+ ^$ b! V3 C- n, d

9 w' U: P! j7 m* W: x6 a) z
  • /**
  • * @brief returns which key have press down
  • * @param none
  • * @retval the key have press down
  • */
  • key_type at32_key_press(void)! q- @/ M& k1 W8 W3 _, R/ d) U
- R% _0 o+ T% }( z) y, q

. u- J" o, A) F下载验证, A2 A6 s4 R! D9 M$ A: R9 P9 O
如果有按键按下,被按下的按键会通过LCD屏显示出来。
/ R8 A; \5 Y9 Z/ U. f; T& t. E( X图-实验效果
: {% g; y/ \" y! v& g
9 K$ H* H3 r" ]+ r( p6 i3 K 3 K, T4 U8 g, c" x+ N+ ~

# N8 V: _8 r) u7 k2 c9 F- |7 o, |. E* ~% I7 m" E3 B
) y( y1 X' w, u0 C, L

该用户从未签到

2#
发表于 2022-10-26 11:27 | 只看该作者
SURF借鉴了SIFT中简化近似的思想,把DoH中的高斯二阶微分模板进行了简化,使得模板对图像的滤波只需要进行几个简单的加减法运算,并且,这种运算与滤波器的尺度无关。9 s' J% d% j$ c/ G3 {4 A* V
SURF算法中要用到积分图像的概念。

该用户从未签到

3#
发表于 2022-10-26 13:58 | 只看该作者
dragongfly 发表于 2022-10-26 11:27
$ @" s* Z9 b* E  J4 ASURF借鉴了SIFT中简化近似的思想,把DoH中的高斯二阶微分模板进行了简化,使得模板对图像的滤波只需要进行 ...
0 r' i- {( w; j9 J: a/ d
SURF算法较SIFT在运算速度上要快3倍左右。/ A( E! z* E4 G  Y4 `/ i
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-6-11 14:39 , Processed in 0.093750 second(s), 26 queries , Gzip On.

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

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

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