免费建视频网站有人做网赌网站吗
- 作者: 五速梦信息网
- 时间: 2026年04月20日 10:25
当前位置: 首页 > news >正文
免费建视频网站,有人做网赌网站吗,单位网站源码,用外链技术做视频网站4.1 GPIO简介 输入输出#xff08;I/O#xff09;是一个非常重要的概念。I/O泛指所有类型的输入输出端口#xff0c;包括单向的端口如逻辑门电路的输入输出管脚和双向的GPIO端口。而GPIO#xff08;General-Purpose Input/Output#xff09;则是一个常见的术语#xff0c…4.1 GPIO简介 输入输出I/O是一个非常重要的概念。I/O泛指所有类型的输入输出端口包括单向的端口如逻辑门电路的输入输出管脚和双向的GPIO端口。而GPIOGeneral-Purpose Input/Output则是一个常见的术语指的是通用输入输出接口。 下面有请DeepSeek发言 LPC1110系列Cortex-M0微控制器的GPIO口的结构特点 1端口可由软件配置为输入输出2引脚默认为输入所以点灯时需要改下方向3端口引脚的读写操作可屏蔽4每个单独引脚可被用作外部中断输入引脚5每个GPIO中断可配置为 高、低电平、下降、上升沿或双边沿触发6可对单独端口的中断级别进行配置 4.2 GPIO口的寄存器 所有GPIO寄存器都为32位 GPIO端口基址为 端口0 0x5000 0000端口1 0x5001 0000 端口2 0x5002 0000端口3 0x5003 0000 4.2.1 数据寄存器 GPIOnDATA 用于读取输入引脚的状态数据或者配置输出引脚的输出状态 对应端口位置后四位范围为 0000 ~ 3FFC 110PIOn_0 ~ PIOn_11的输入/输出数据3112保留 4.2.2 方向寄存器 GPIOnDIR 110PIOn_0 ~ PIOn_11的输入/输出方向 0为输入 1为输出 位数0-11与0-11引脚一一对应3112保留 4.2.3 中断触发寄存器 GPIOnIS 相较于基地址偏移量0x8004 即0x500n 8004 110PIOn_x 0为边沿触发1为电平触发3112保留 4.2.4 中断双边沿触发寄存器 GPIOnIBE 相较于基地址偏移量0x8008 即0x500n 8008 110 0为通过4.2.5中寄存器GPIOnIEV控制PIOn_x的中断 1为通过PIOn_x上双边沿触发中断 3112保留 4.2.5 中断事件寄存器 GPIOnIEV 相较于基地址偏移量0x800C 即0x500n 800C 110 0为上升沿或者高电平触发中断 1为下降沿或者低电平触发中断 具体边沿还是电平 看4.2.3中GPIOnIS的设置 3112保留 4.2.6 中断屏蔽寄存器 GPIOnIE 相较于基地址偏移量0x8010 即0x500n 8010 110 0为中断被屏蔽 1为中断不被屏蔽 3112保留 4.2.7 原始中断状态寄存器 GPIOnIRS 相较于基地址偏移量0x8014 即0x500n 8014 屏蔽之前的中断状态 110 0为无中断 1为满足中断要求 3112保留 4.2.8 屏蔽中断状态寄存器 GPIOnMIS 相较于基地址偏移量0x8018 即0x500n 8018 考虑了屏蔽操作之后是否有中断 110 0为无中断或者中断被屏蔽 1为满足中断要求 3112保留 4.2.9 中断清除寄存器 GPIOnIC 相较于基地址偏移量0x801C 即0x500n 801C 110 0无操作 1为清除PIOn_x上的边沿检测逻辑 3112保留 4.3 LPC上的GPIO按键 按键按下引脚低电平不按是高电平 4.4 按键控制LED闪烁频率 任务 1. BUTTONPIO3_5按键按下闪烁频率为1Hz再次按下恢复闪烁频率为0.5Hz
- WEAKUPPIO1_4按键按下闪烁频率为2Hz再次按下恢复闪烁频率为0.5Hz
- 适当考虑按键防抖功能。
思路 对于闪烁频率的修改首先考虑用什么控制LED闪烁结合上章可以用SysTick然后按键按下改变SysTick周期即可 对于按键防抖由于按键固有的物理结构按下后弹簧一上一下会影响中断需要用延时函数过滤抖动。 抖动时间大概10ms这样 我们可以用个延时函数过滤掉这个抖动过程延时20ms就足够了
代码
利用之前写过的函数即可复制个新工程然后main文件里代码如下
#include LPC11xx.h
#include LED.h//延时ms函数 // 太粗糙了而且要根据机器指令与时钟周期关系调整也就防抖延时用一下
__inline void delay_ms(uint32_t a) //约1ms延时函数
{ uint32_t i;while( a – ! 0){for(i 0; i5500; i);}
}int flag1 0, flag2 0; // 判断botton 和 wakeup 按键上一次状态 int main() {LED_Init(); // PIO1_4LPC_IOCON-PIO1_4 ~(0x1F); // 清除之前的配置LPC_IOCON-PIO1_4 | 0x00; // 配置为GPIO功能LPC_GPIO1-DIR ~(1UL 4);// 设置GPIO方向为输入LPC_GPIO1-IS ~(0x1 4); // 清除第 4 位设置为边沿触发LPC_GPIO1-IBE ~(0x1 4); // 清除第 4 位设置为单边沿触发LPC_GPIO1-IEV ~(0x1 4); // 清除第 4 位设置为低电平触发LPC_GPIO1 - IE | (0x14); // 使能端口中断LPC_IOCON-PIO1_4 | (1UL 5); // 使能滞后模式LPC_GPIO1-IC | (1UL 4); // 清除中断标志位NVIC_EnableIRQ(EINT1_IRQn); // 使能GPIO1中断// PIO3_5LPC_IOCON-PIO3_5 ~(0x1F); // 清除之前的配置LPC_IOCON-PIO3_5 | 0x00; // 配置为GPIO功能LPC_GPIO3-DIR ~(1UL 5);// 设置GPIO方向为输入LPC_GPIO3-IS ~(0x1 5); // 清除第 5 位设置为边沿触发LPC_GPIO3-IBE ~(0x1 5); // 清除第 5 位设置为单边沿触发LPC_GPIO3-IEV ~(0x1 5); // 清除第 5 位设置为低电平触发LPC_GPIO3 - IE | (0x15); // 使能端口中断LPC_IOCON-PIO3_5 | (1UL 5); // 使能滞后模式LPC_GPIO3-IC | (1UL 5); //清除中断标志NVIC_EnableIRQ(EINT3_IRQn);SysTick_Config(SystemCoreClock/100); // 0.01s进一次中断 1s翻转一次 0.5 Hzwhile(1){} }void SysTick_Handler() /// 系统节拍定时器中断函数 {static unsigned long ticks;if(ticks 99){ticks 0;LED_Toggle();} }// GPIO3_5的中断服务函数处理BUTTON按键按下事件 void PIOINT3_IRQHandler(void) {if((LPC_GPIO3-MIS (1UL 5)) (1UL 5))// 检查是否是PIO3_5的中断{ delay_ms(20); // 消抖while((LPC_GPIO3-DATA (1UL 5)) 0);delay_ms(20);if(flag1)SysTick_Config(SystemCoreClock/100); // 0.01s进一次中断 1s翻转一次 0.5 Hzelse SysTick_Config(SystemCoreClock/200); // 0.005s进一次中断 0.5s翻转一次 1 Hzflag1 !flag1;LPC_GPIO3-IC | (1UL 5); // 清除中断标志} } // GPIO1_4的中断服务函数处理WAKEUP按键按下事件 void PIOINT1_IRQHandler(void) {if((LPC_GPIO1-MIS (1UL 4)) (1UL 4)) // 检查是否是PIO1_4的中断{delay_ms(20);while((LPC_GPIO1-DATA (1UL 4)) 0);delay_ms(20);if(flag2)SysTick_Config(SystemCoreClock/100); // 0.01s进一次中断 1s翻转一次 0.5 Hzelse SysTick_Config(SystemCoreClock/400); // 0.0025s进一次中断 0.2s翻转一次 2 Hz flag2 !flag2;LPC_GPIO1-IC | (1UL 4); // 清除中断标志} }模块化一下新建Button.c Button.h文件便于之后移植工程 main.c #include LPC11xx.h #include LED.h #include Button.hint main() {LED_Init(); WAKEUP_Init();Button_Init();while(1){} }void SysTick_Handler() /// 系统节拍定时器中断函数 {static unsigned long ticks;if(ticks 99){ticks 0;LED_Toggle();} } Button.c #include Button.h int flag1 0, flag2 0; // 判断botton 和 wakeup 按键上一次状态//延时ms函数 // 太粗糙了而且要根据机器指令与时钟周期关系调整也就防抖延时用一下 __inline void delay_ms(uint32_t a) //约1ms延时函数 { uint32_t i;while( a – ! 0){for(i 0; i5500; i);}
}void WAKEUP_Init(void) {LPC_SYSCON - SYSAHBCLKCTRL | (1UL 6) | (1UL 16); // 使能GPIO时钟和IO时钟// PIO1_4LPC_IOCON-PIO1_4 ~(0x1F); // 清除之前的配置LPC_IOCON-PIO1_4 | 0x00; // 配置为GPIO功能LPC_GPIO1-DIR ~(1UL 4);// 设置GPIO方向为输入LPC_GPIO1-IS ~(0x1 4); // 清除第 4 位设置为边沿触发LPC_GPIO1-IBE ~(0x1 4); // 清除第 4 位设置为单边沿触发LPC_GPIO1-IEV ~(0x1 4); // 清除第 4 位设置为低电平触发LPC_GPIO1 - IE | (0x14); // 使能端口中断LPC_IOCON-PIO1_4 | (1UL 5); // 使能滞后模式LPC_GPIO1-IC | (1UL 4); // 清除中断标志位NVIC_EnableIRQ(EINT1_IRQn); // 使能GPIO1中断 }void Button_Init(void) {LPC_SYSCON - SYSAHBCLKCTRL | (1UL 6) | (1UL 16); // 使能GPIO时钟和IO时钟// PIO3_5LPC_IOCON-PIO3_5 ~(0x1F); // 清除之前的配置LPC_IOCON-PIO3_5 | 0x00; // 配置为GPIO功能LPC_GPIO3-DIR ~(1UL 5);// 设置GPIO方向为输入LPC_GPIO3-IS ~(0x1 5); // 清除第 5 位设置为边沿触发LPC_GPIO3-IBE ~(0x1 5); // 清除第 5 位设置为单边沿触发LPC_GPIO3-IEV ~(0x1 5); // 清除第 5 位设置为低电平触发LPC_GPIO3 - IE | (0x15); // 使能端口中断LPC_IOCON-PIO3_5 | (1UL 5); // 使能滞后模式LPC_GPIO3-IC | (1UL 5); //清除中断标志NVIC_EnableIRQ(EINT3_IRQn); }// GPIO3_5的中断服务函数处理BUTTON按键按下事件 void PIOINT3_IRQHandler(void) {if((LPC_GPIO3-MIS (1UL 5)) (1UL 5))// 检查是否是PIO3_5的中断{ delay_ms(20); // 消抖while((LPC_GPIO3-DATA (1UL 5)) 0);delay_ms(20);if(flag1)SysTick_Config(SystemCoreClock/100); // 0.01s进一次中断 1s翻转一次 0.5 Hzelse SysTick_Config(SystemCoreClock/200); // 0.005s进一次中断 0.5s翻转一次 1 Hzflag1 !flag1;LPC_GPIO3-IC | (1UL 5); // 清除中断标志} } // GPIO1_4的中断服务函数处理WAKEUP按键按下事件 void PIOINT1_IRQHandler(void) {if((LPC_GPIO1-MIS (1UL 4)) (1UL 4)) // 检查是否是PIO1_4的中断{delay_ms(20);while((LPC_GPIO1-DATA (1UL 4)) 0);delay_ms(20);if(flag2)SysTick_Config(SystemCoreClock/100); // 0.01s进一次中断 1s翻转一次 0.5 Hzelse SysTick_Config(SystemCoreClock/400); // 0.0025s进一次中断 0.2s翻转一次 2 Hz flag2 !flag2;LPC_GPIO1-IC | (1UL 4); // 清除中断标志} }Button.h #ifndef _BUTTONH #define _BUTTONH#include LPC11xx.hvoid WAKEUP_Init(void); void Button_Init(void);#endif
- 上一篇: 免费建设网站设计页面游族网络公司最新消息
- 下一篇: 免费建网站哪个平台好湖南企业网络推广服务
相关文章
-
免费建设网站设计页面游族网络公司最新消息
免费建设网站设计页面游族网络公司最新消息
- 技术栈
- 2026年04月20日
-
免费建设旅游网站哪些网站用vue.js做的
免费建设旅游网站哪些网站用vue.js做的
- 技术栈
- 2026年04月20日
-
免费建立自己的网站代理中国品牌加盟网官网
免费建立自己的网站代理中国品牌加盟网官网
- 技术栈
- 2026年04月20日
-
免费建网站哪个平台好湖南企业网络推广服务
免费建网站哪个平台好湖南企业网络推广服务
- 技术栈
- 2026年04月20日
-
免费建网站哪个网好科凡全屋定制
免费建网站哪个网好科凡全屋定制
- 技术栈
- 2026年04月20日
-
免费建网站那个软件好上传wordpress后
免费建网站那个软件好上传wordpress后
- 技术栈
- 2026年04月20日
