历史上的今天
返回首页

历史上的今天

今天是:2025年06月24日(星期二)

正在发生

2019年06月24日 | STM32学习笔记--按键输入实验

2019-06-24 来源:eefocus

//按键初始化函数

//特别注意:在该函数之后,JTAG将无法使用(SWD也无法使用)

//如果想JTAG仿真,可以屏蔽该函数。

//PA0.13.15 设置成输入

void KEY_Init(void)

{

RCC->APB2ENR|=1<<2;     //使能PORTA时钟

GPIOA->CRL&=0XFFFFFFF0;//PA0设置成输入 

GPIOA->CRL|=0X00000008;   

GPIOA->CRH&=0X0F0FFFFF;//PA13,15设置成输入 

GPIOA->CRH|=0X80800000;   

GPIOA->ODR|=1<<13;  //PA13上拉,PA0默认下拉

GPIOA->ODR|=1<<15;  //PA15上拉

//按键处理函数

//返回按键值

//0,没有任何按键按下

//1,KEY0按下

//2,KEY1按下

//3,KEY2按下 WK_UP

//注意此函数有响应优先级,KEY0>KEY1>KEY2!!

u8 KEY_Scan(void)

{  

static u8 key_up=1;//按键按松开标志

JTAG_Set(JTAG_SWD_DISABLE);

if(key_up&&(KEY0==0||KEY1==0||KEY2==1))

{

delay_ms(10);//去抖动 

key_up=0;

if(KEY0==0)

{

JTAG_Set(SWD_ENABLE);

return 1;

}

else if(KEY1==0)

{

JTAG_Set(SWD_ENABLE);

return 2;

}

else if(KEY2==1)

{

JTAG_Set(SWD_ENABLE);

return 3;

}

}else if(KEY0==1&&KEY1==1&&KEY2==0)key_up=1;   

JTAG_Set(SWD_ENABLE);

return 0;// 无按键按下

}



最基本的代码正确性要保证,最低级的错误不要犯。基础的构造,比如:库函数的路径的添加,函数的初始化问题等等

推荐阅读

史海拾趣

FERYSTER公司的发展小趣事

在技术创新的同时,FERYSTER公司也非常注重市场拓展。公司管理层通过深入的市场调研,发现亚洲市场对于高性能电子产品有着巨大的需求。于是,他们制定了针对亚洲市场的营销策略,包括加强品牌宣传、与当地企业建立合作关系等。这些措施取得了显著成效,FERYSTER公司的产品在亚洲市场的销量迅速增长,为公司带来了丰厚的利润。

Hitachi (Renesas )公司的发展小趣事

在全球环保意识日益增强的背景下,FERYSTER公司积极响应环保号召,推动企业的绿色转型。公司采用环保材料替代传统材料,优化生产工艺减少能源消耗和废弃物排放。此外,公司还积极推广绿色电子产品,引导消费者关注环保问题。这些努力不仅提升了公司的社会形象,也为公司带来了更多的商业机会。

BAND-IT公司的发展小趣事

在电子行业的推动下,大型基础设施的建设也迎来了快速发展。韦拉札诺海峡大桥作为连接斯塔顿岛和布鲁克林的世界上最长的吊桥,其建设过程对紧固件的需求量大且要求严格。BAND-IT公司凭借其大型不锈钢卡箍产品,成功参与了这一重大工程的建设。这些卡箍不仅具有强大的承重能力,而且安装简便、安全可靠,为大桥的稳定性和安全性提供了有力保障。

Holy Stone公司的发展小趣事

Holy Stone企业股份有限公司创立于1981年,总部位于台北市。创立之初,公司凭借创办人深厚的电子技术背景,迅速在电子元件市场站稳脚跟。起初,Holy Stone主要作为专业的电子零件代理商,为客户提供专业的技术服务与解决方案。这一阶段,公司通过扎实的专业技术基础和敏锐的市场洞察力,逐步建立起稳定的客户基础,为后续的发展奠定了坚实的基础。

Catalyst公司的发展小趣事

为了进一步扩大市场份额,Catalyst公司积极实施国际化战略。公司通过与国外知名企业的合作与交流,引进先进的技术和管理经验,不断提升自身的竞争力。同时,Catalyst还积极参加国际电子展会和论坛,展示公司的最新产品和技术成果,吸引了众多国际客户的关注。通过国际化战略的拓展,Catalyst成功打开了海外市场的大门,为公司的长远发展奠定了坚实的基础。

Alpha & Omega Semiconductor(万国半导体)公司的发展小趣事

随着电子行业的快速发展,Catalyst公司不断追求技术创新和突破。在某次关键的技术研发中,公司成功攻克了一项行业难题,推出了一款具有划时代意义的新产品。这款产品不仅性能卓越,而且具有极高的性价比,迅速赢得了市场的广泛认可。Catalyst凭借这一技术突破,成功引领了市场潮流,进一步巩固了其在行业内的领先地位。

问答坊 | AI 解惑

GPS实时动态定位原理及应用

本文介绍了 GPS RTK的工作原理和RTK系统的组成,并阐述了流动站工作范围与RTK定位精度的关系,对RTK的初始化过程、RTK相对于静态定位增加的设备及应用、基准站与流动站信号传输过程作了详细的说明。   引言   随着我国经济的高速发展,为了 ...…

查看全部问答>

再问一下动态显示的电阻问题

我很笨,就会画一些直观的图来说明问题。下面的图是我的理解,电流从+5V处一直流入P0口,1处的限流电阻需要多大呢?2处有前辈说也用限流电阻我就不懂了,P2口和9012之间,不就是给一个导致9012导通的低电平信号么?如果还加电阻,为何用处,需要多 ...…

查看全部问答>

电动小车的循迹 循迹资料

本帖最后由 paulhyde 于 2014-9-15 08:58 编辑 电动小车的循迹 [ 本帖最后由 fqegeeer 于 2009-8-10 14:59 编辑 ]  …

查看全部问答>

王爽老师的《汇编语言》答案及详解

很多人抱怨这本书没有答案,本人贡献出此书的答案及详解。 自己对自己做一个评估吧 [ 本帖最后由 madokaaukawa 于 2009-10-16 00:14 编辑 ]…

查看全部问答>

诡异的12864 proteus仿真

废话先不多说,先上全部程序: 打点函数,用proteus仿真结果让我郁闷,都不知道错在哪。 #include #define DataPort P2                  //数据端口 sbit E       ...…

查看全部问答>

关于QueryPerformanceCounter的问题

我在wince5.0里来了一个中断就执行下面的语句:  QueryPerformanceCounter(&uCurrentTick); RETAILMSG(IR_DEBUG_MSG,(TEXT(\"The uCurrentTick Time is:%x\\r\\n\"),uCurrentTick.QuadPart)); 为什么每次输出的值都是一样的啊?请各位好汉指点 ...…

查看全部问答>

MAX1578 与MAX17005B分析比较

MAX1578 特点:   不具备适配器电源与电池电压自动切换功能。 但充电电路比较简单。   MAX17005B 特点:   使用 N 沟道 MOSFET 自动电源切换。   结论:还是使用MAX17005B 比较好。…

查看全部问答>

IO模拟串口,程序运行有些不稳定,希望高手指点一下

/***************************************************程序功能:IO口模拟串口  时钟是30K的,波特率9600工作起来有时候稳定,有时候全是乱码,麻烦各位高手了。---------------------------------------------------测试说明:在串口助手中 ...…

查看全部问答>

微弱信号间检测

       信号采集与处理电路在整体电路中占有及其重要的位置。在某些电路中处于系统的核心。信号采集过程中常出现弱磁、弱声、小位移、微流量、微压力、微振动等被测量。那么就需要有效的处理手段提取其信号。   ...…

查看全部问答>

随便聊聊

刚刚挑战了低级考试,获得60分,刚好及格,呵呵。。。…

查看全部问答>