历史上的今天
今天是:2024年08月31日(星期六)
2020年08月31日 | STM8学习笔记(二):GPIO的输入
2020-08-31 来源:elecfans
这两天有点忙,焊了四个按键,在LED灯的基础上,实现GPIO的输入
这次用的是ST公司的官方库
组要的还是要理解GPIO的几个寄存器的功能
同时,要好好的理解它官方库里面的函数定义和用法
/**************************************************************/
void GPIO_Configuration(void)
{
GPIO_Init(LEDS_PORT, (LED1_PIN | LED2_PIN | LED3_PIN | LED4_PIN |
LED5_PIN | LED6_PIN | LED7_PIN | LED8_PIN),
GPIO_MODE_OUT_PP_HIGH_FAST);
GPIO_Init(KEYS_PORT,(KEY1_PIN | KEY2_PIN | KEY3_PIN | KEY4_PIN),
GPIO_MODE_IN_PU_NO_IT);//配置PF7,PF6,PF5,PF4上拉输入
}
这个是GPIO的配置
/****************************************************************/
#define LEDS_PORT (GPIOD)
#define LED1_PIN (GPIO_PIN_7)
#define LED2_PIN (GPIO_PIN_6)
#define LED3_PIN (GPIO_PIN_5)
#define LED4_PIN (GPIO_PIN_4)
#define LED5_PIN (GPIO_PIN_3)
#define LED6_PIN (GPIO_PIN_2)
#define LED7_PIN (GPIO_PIN_1)
#define LED8_PIN (GPIO_PIN_0)
#define LED1_ON GPIO_WriteLow(LEDS_PORT,(LED1_PIN))
#define LED1_OFF GPIO_WriteHigh(LEDS_PORT,(LED1_PIN))
#define LED2_ON GPIO_WriteLow(LEDS_PORT,(LED2_PIN))
#define LED2_OFF GPIO_WriteHigh(LEDS_PORT,(LED2_PIN))
#define LED3_ON GPIO_WriteLow(LEDS_PORT,(LED3_PIN))
#define LED3_OFF GPIO_WriteHigh(LEDS_PORT,(LED3_PIN))
#define LED4_ON GPIO_WriteLow(LEDS_PORT,(LED4_PIN))
#define LED4_OFF GPIO_WriteHigh(LEDS_PORT,(LED4_PIN))
#define LED5_ON GPIO_WriteLow(LEDS_PORT,(LED5_PIN))
#define LED5_OFF GPIO_WriteHigh(LEDS_PORT,(LED5_PIN))
#define LED6_ON GPIO_WriteLow(LEDS_PORT,(LED6_PIN))
#define LED6_OFF GPIO_WriteHigh(LEDS_PORT,(LED6_PIN))
#define LED7_ON GPIO_WriteLow(LEDS_PORT,(LED7_PIN))
#define LED7_OFF GPIO_WriteHigh(LEDS_PORT,(LED7_PIN))
#define LED8_ON GPIO_WriteLow(LEDS_PORT,(LED8_PIN))
#define LED8_OFF GPIO_WriteHigh(LEDS_PORT,(LED8_PIN))
#define KEYS_PORT (GPIOF)
#define KEY1_PIN (GPIO_PIN_7)
#define KEY2_PIN (GPIO_PIN_6)
#define KEY3_PIN (GPIO_PIN_5)
#define KEY4_PIN (GPIO_PIN_4)
这个是IO的一些定义
史海拾趣
|
#include #define uchar unsigned char #define uint unsigned int char DATA_7SEG[10]={0xC0,0xF9,0xA4,0xB0,0x99, ...… 查看全部问答> |
|
我该在那里调用WSAStartup和WSAClearup呢,是每个线程在进入时调用一次WSAStartup、退出时调用一次WSAClearup呢,还是在主函数中调用一次WSAStartup和WSAClearup呢? 我现在有两个类,两个类都使用了网络,都开了一个线程,我现在的做法是在每个类 ...… 查看全部问答> |
|
我如果是模拟的I2C,速度打算为100Kbit/S,那么对应一个2进制位数据,延迟时间为10US,那么我在人为的拉高拉低SCL的时候是不是一定要保持频率为100K? 如果我输出了个比如80K,会不会出错,我还没有做实验,先听听大家的意见 谢谢… 查看全部问答> |
|
我加载位图的代码如下: BOOL CBingGuoDlg::InitGame() { CClientDC dc(this); SelDC = new CDC; BltDC = new CDC; bmpT ...… 查看全部问答> |
|
前几天看到坛子里有兄弟贴出了B70的平均油耗,着实超出我的意料,没想到2.0MT的平均油耗能控制在8个油,这可是我买车首要参照的系数,不然就真是买车容易养车难了;此外,空间必须足够大,谁让咱的房子已经是Q版了,车子可不能在抠抠嗖嗖的了。 ...… 查看全部问答> |
|
#include #define uint unsigned int #define uchar unsigned char #define keyin (P1IN & 0x0F) void delay(void); void main(void) { uchar temp= 0; uint PWM_T = 1000; //占空 ...… 查看全部问答> |
|
我现在手里有一个读卡器设备,作为USB Device。采用了CDC模式通信。现在我要用LM3S9B96作为USB Host,读取数据并通过网络上传到服务器。 以前没弄过USB Host相关的东西,请问这种情况下,我USB Host应该是工作在什么模式下?如果Device采用了CDC的 ...… 查看全部问答> |




