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

按键--AT_SURF案例

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
AT32-SUFR板载了两个独立按键,两个按键直接连接到mcu的IO口,当按键按下时IO电平为高电平,当没有按键按下时IO电平为低电平,MCU通过检测IO上的电平即可知道当前按键是否按下。& P( ~5 |& \* E+ s. ]! b/ N

1 t, ^0 ]7 `9 n9 F  c4 Y8 ?资源准备; R) L2 K) P3 `& k, j7 E- N2 ^' T  x& G
硬件环境:7 K- s3 [& r4 _) d; R
对应产品型号的AT-SURF-F437 Board
5 E* U( t: Y9 o/ `! ~9 i% p5 ^软件环境:
: ]( x+ V0 O* \AT32F435_437_Firmware_Library_V2.x.xprojectat_sufr_f437exampleskey5 k6 c9 t3 B* c8 P
. \0 p; Y( `$ O( D3 Q. Y* B. f3 r
硬件设计; @8 }3 F5 e! _, l. K  ~
本案例使用的硬件资源有两个独立按键,对应的引脚如下:
# ^! z  X: y: y表-硬件资源使用+ [+ \! R7 i/ x5 }+ g3 M1 W

2 }" b# L4 c* ^! f1 I. n9 Z& `8 M
6 ^$ w4 ]) d- o对应的电路原理如下:
0 g, O* _5 U# f' w. U/ u' i! U" s图-按键电路原理图( c) I0 R+ t4 j
5 C* `- i: L) A& h2 I; K

7 I5 b+ e; t( ~$ ]/ Y+ W软件设计
/ n9 n3 D! W$ W& y' c) c7 w" @, M1)        按键测试- w& `( p- J0 [. y' A
将两个按键用到的IO口配置成输入模式9 b! G& [  u% q$ N, O+ i, F
读取IO状态,判断是否有按键发生  A- [1 z5 l4 X0 R' i& b6 h
2)        代码介绍* @4 Y- K$ H6 r* G1 B; T
main函数代码描述
4 x2 S% z% |/ z! P
  • 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;
  • }
  • }
  • }
    0 ]* ^/ ]3 g2 C$ l2 w  m' y/ w

- @% \: `, x% Q3 ^
' j) {) g: b9 i9 ~! mvoid key_init(void)函数代码描述
0 H0 h, h$ ^& }) h" f
" h# I, P$ {" Q# Y9 C
  • /**
  • * @brief key init.
  • * @param none.
  • * @retval none.
  • */
  • void key_init(void)- ^1 |' }: q( A# _# j

) i5 d5 ^7 S8 y# ]2 i' F2 q( O- W1 J3 p- ^% Q; {* f& l) f0 m
key_type at32_key_press(void)函数代码描述8 n6 f( T- d0 u& Z% b# W+ t$ V0 J

1 e. \4 Z' L! M" _$ `' T
  • /**
  • * @brief returns which key have press down
  • * @param none
  • * @retval the key have press down
  • */
  • key_type at32_key_press(void)( l7 K5 Z8 ]9 e  ^: l" Z/ ~3 L

& M% B  @5 y. o8 B+ ~4 B% L& Z3 P# o  H* C4 Y( T- M% c% ~
下载验证
+ q$ \# R% x( w1 J' {+ k! k如果有按键按下,被按下的按键会通过LCD屏显示出来。0 I6 }! C2 Z8 N) P% r
图-实验效果" g8 K1 N! T5 j* T$ d
- t( P/ D  a' Y3 M4 C

7 {9 E- t% ~' |. X" K4 Z
( v4 P' x5 W2 D0 t  c* V. R. s
9 d; C- p0 d4 R  N/ [4 z$ d7 }) G, `3 M* D/ t! f4 ?3 }

该用户从未签到

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

该用户从未签到

3#
发表于 2022-10-26 13:58 | 只看该作者
dragongfly 发表于 2022-10-26 11:27
& H6 o7 d& i' h. vSURF借鉴了SIFT中简化近似的思想,把DoH中的高斯二阶微分模板进行了简化,使得模板对图像的滤波只需要进行 ...

2 h+ }% \7 |) GSURF算法较SIFT在运算速度上要快3倍左右。
0 A  a0 r: G+ o& M3 B
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-8-23 23:42 , Processed in 0.156250 second(s), 27 queries , Gzip On.

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

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

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