历史上的今天
今天是:2024年09月11日(星期三)
2019年09月11日 | STM32HAL库学习(二)CubeMx按键
2019-09-11 来源:eefocus
首先是找到电路图,按键是高电平按下还是低电平按下
GPIO八种模式
https://blog.csdn.net/hailin0716/article/details/24333951
上拉电阻的目的是为了保证在无信号输入时输入端的电平为高电平。而在信号输入为低电平是输入端的电平应该也为低电平。
按键是按下时是高电平时,那无信号输入时要保持低电平,下拉输入
枚举KEYState_TypeDef 定义按键的两种状态
typedef enum{
KEY0_UP,
KEY0_DOWN,
KEY1_UP,
KEY1_DOWN
}KEYState_typedef;
函数有个 KEYState_TypeDef 类型的返回值
KEYState_typedef KEY0_GetState(void)
{
if (HAL_GPIO_ReadPin(KEY0_GPIO_Port,KEY0_Pin)==KEY0_DOWN_LEVEL )
{
HAL_Delay(10);
if (HAL_GPIO_ReadPin (KEY0_GPIO_Port ,KEY0_Pin )==KEY0_DOWN_LEVEL )
{
while(HAL_GPIO_ReadPin (KEY0_GPIO_Port ,KEY0_Pin )== KEY0_DOWN_LEVEL );
return KEY0_DOWN;
}
}
return KEY0_UP;
}
读取,写入GPIO电平
HAL_GPIO_ReadPin();
HAL_GPIO_WritePin();
将自己的代码放入一个文件夹,在下一次复制修改CubeMx从新生成code时,不会被重置。
将各个外设的驱动单独写.c .h文件,自己写一个system程序,作为主程序,每次重置后就在main中放入my_system的头文件,init和主函数就行,在魔术棒中编译路径中加入自己的文件夹。
史海拾趣
|
买的单片机开发板的电路图是这样把PNP当作开关来用的 我怎么看着不对呢? [ 本帖最后由 daition340 于 2010-1-31 12:55 编辑 ]… 查看全部问答> |
|
紧急!!SIM300DZ 模块对AT指令返回错误信息 在线等 我开发的平台是S3c2410,我想在嵌入式linux下实现GPRS上网,使用pppd call GPRS方式,SIM300DZ模块使用的是3脚串口,模块开机后向其拨打电话可以接通,但是执行pppd call GPRS,执行到send(AT)EXpect(OK)时,串口返回的是“%lee”这是怎么回事 ...… 查看全部问答> |
|
如题,小弟很无奈,入行没多久,公司也没事可做, 小弟自知技术很不纯熟,请教各位过来人怎么自己增长, 咱这个技术接私活真是自不量力, 但是没有项目经验光看书感觉就是纸上谈兵, 所以真诚请教各位过来人,有什么途径可以自己增长开发的经验 ...… 查看全部问答> |
|
void delay(uint ms) { uchar k; while(ms--) //这句等介什么程序,没有见过这种写法 { for(k = 0; k < 500; k++); } }… 查看全部问答> |
|
TI公司MaxLife快速充电技术解析,不伤电池的快速充电技术,,, 虽然锂离子电池的充电速度比以前的镍镉电池或镍氢电池快多了,但我们还是嫌慢。越快越好。是的,市场上有售一些快速充电器,但它们会严重损害锂离子电 ...… 查看全部问答> |
|
本帖最后由 jorya_txj 于 2014-1-5 20:18 编辑 很多时候,用户发送具体消息的时候,也需要发送一个消息长度。比如在网卡中断中接收到了一包数据,发送消息给外面任务的时候,也需要告诉外面的任务消息的长度是多少。使用之前的queue模块做需要一 ...… 查看全部问答> |




