当前位置: 首页 > news >正文

重庆免费微网站建设天津品牌网站制作

重庆免费微网站建设,天津品牌网站制作,中和seo公司,php mysql网站开发书HALSTM32通用定时器EXTI实现单击/双击/长按功能 ✨在使用USB功率计的时候#xff0c;发现上面的一个按键实现多画面功能切换#xff0c;于是探索了一下是如何实现的#xff0c;将其实现的基本思路以及综合网上收集的相关实现方法#xff0c;粗陋的整理了一下#xff0c;将… HALSTM32通用定时器EXTI实现单击/双击/长按功能 ✨在使用USB功率计的时候发现上面的一个按键实现多画面功能切换于是探索了一下是如何实现的将其实现的基本思路以及综合网上收集的相关实现方法粗陋的整理了一下将其基本功能实现了一下具体的功能没有做只是做了一个简单的框架。 功能实现并不能保证每次处理的按键结果都如预期效果主要的影响因数是单击和双击之间的间隔时间每个人的手感或者每次按下的时间差异并不能像计算器那么准确和标准。 HAL STM32CubeMX工程配置 基于STM32F103芯片。 主要配置一个外部中断按键引脚。 GPIO引脚按键外部使用电路参考 配置一个定时器 NVIC中断使能以及优先级配置。 其他串口和I2C配置用于显示和调试输出。(这里根据个人需求配置个人推荐还是使用软件I2C实现比较好硬件I2C如果程序比较复杂cpu处理各种中断容易导致硬件I2C出错导致显示画面异常的情况。) 其他时钟配置和工程生成就不展示了根据个人情况配置。 ⛳功能实现 完善按键中断回调内容 //重写回调函数 void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) {/*判断是中断引脚*/if(GPIO_Pin KEY_Pin){Trg;HAL_GPIO_TogglePin(GPIOE, GPIO_PIN_5);//状态翻转} }定时器中断回调函数 void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef* htim) {static uint32_t click 0;static char keyStatus 0;static char LongPress 0;if(htim -Instance TIM6){if(cnt_1ms 1000){cnt_1ms 0;HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_5);//状态翻转}if(Trg 0){keyStatus HAL_GPIO_ReadPin(KEY_GPIO_Port, KEY_Pin);//读取按键状态click;if((click _debounce_ms) (keyStatus 1) (LongPress 0)) //1000{if((Trg 1) || (Trg 2)) //单击{Trg 0;funIndex ;printf(_click_ms,%d\r\n, funIndex);click 0;//清零}if(Trg 2) //双击{Trg 0;funIndex 2;printf(_doubleClick %d\r\n, funIndex);click 0;//清零}}if((click _press_ms) (keyStatus 0) (LongPress 0)) //1000{printf(_longPressStart\r\n);LongPress 1;}if((LongPress 1) (keyStatus 1)){LongPress 0;Trg 0;funIndex 3;//松开才赋值click 0;printf(_longPressStop %d\r\n, funIndex);}}if(funIndex 8)funIndex 0;} } oled驱动显示内容可以根据个人使用的屏幕规格型号自行完善个人使用的是SH1106 1.3“寸的OLED屏幕作为显示。按键菜单显示内容参考网上的内容。 unsigned char funIndex 0;//9和0-1-1 void menu11(void); void menu12(void); void menu21(void); void menu22(void); void menu23(void); void menu31(void); void menu32(void); void menu33(void); void menu34(void); //定义按键操作数据 KEY_TABLE table[9] {{0, 0, 1, 0, 2, (*menu11)},{1, 0, 1, 1, 4, (*menu12)},{2, 2, 3, 0, 5, (*menu21)},{3, 2, 3, 0, 7, (*menu22)},{4, 4, 4, 1, 4, (*menu23)},{5, 5, 6, 2, 5, (*menu31)},{6, 5, 6, 2, 6, (*menu32)},{7, 7, 8, 3, 7, (*menu33)},{8, 7, 8, 3, 8, (*menu34)}, };void ShowMenu(int16_t x, int16_t y,char *text) {OLED_ShowString(x, y, text, 12);//x,y,字符串字体大小 }//一级菜单1 void menu11(void) {// OLED_Clear();OLED_ShowString(36, 6, menu1-1, 16); }//一级菜单2 void menu12(void) { // OLED_Clear();OLED_ShowString(36, 6, menu1-2, 16); }//二级菜单1 void menu21(void) { // OLED_Clear();OLED_ShowString(36, 6, menu2-1, 16); }//二级菜单2 void menu22(void) { // OLED_Clear();OLED_ShowString(36, 6, menu2-2, 16); }//二级菜单3 void menu23(void) { // OLED_Clear();OLED_ShowString(36, 6, menu2-3, 16);}//三级菜单1 void menu31(void) { // OLED_Clear();OLED_ShowString(36, 6, menu3-1, 16); }//三级菜单2 void menu32(void) { // OLED_Clear();OLED_ShowString(36, 6, menu3-2, 16); }//三级菜单3 void menu33(void) { // OLED_Clear();OLED_ShowString(36, 6, menu3-3, 16); }//三级菜单4 void menu34(void) { // OLED_Clear();OLED_ShowString(36, 6, menu3-4, 16);}main主函数 int main(void) {/* USER CODE BEGIN 1 *//* USER CODE END 1 *//* MCU Configuration--------------------------------------------------------*//* Reset of all peripherals, Initializes the Flash interface and the Systick. */HAL_Init();/* USER CODE BEGIN Init *//* USER CODE END Init *//* Configure the system clock */SystemClock_Config();/* USER CODE BEGIN SysInit *//* USER CODE END SysInit *//* Initialize all configured peripherals */MX_GPIO_Init();MX_I2C1_Init();MX_USART1_UART_Init();MX_I2C2_Init();MX_TIM6_Init();/* USER CODE BEGIN 2 */OLED_Init();HAL_TIM_Base_Start_IT(htim6);ShowMenu(2, 0, OneKey Mul-Menu);/* USER CODE END 2 *//* Infinite loop *//* USER CODE BEGIN WHILE */while(1){/* USER CODE END WHILE *//* USER CODE BEGIN 3 */current table[funIndex].operation;//根据需要获取对应需要执行的函数(*current)();//执行获取到的函数}/* USER CODE END 3 */ }工程源码 链接https://pan.baidu.com/s/1eR14Lpfjqm7nA0lvwbv5xg 提取码vs7f
http://www.yutouwan.com/news/485898/

相关文章:

  • 福田皇岗社区做网站做网站花都区
  • 个人网站备案流程短视频营销方式
  • 网站同时做竞价和seo小程序 appid
  • wordpress站点大全池州市建设管理处网站
  • 网站的投资和建设项目莱芜营销型网站制作
  • 网站开发需要学习南昌地宝网招聘信息网最新招聘
  • 传媒网站建设方案做ui设计的软件
  • 东莞网站建设公司辉煌大厦东莞松山湖邮编
  • 网站路径问题wordpress 常用标签
  • 网站和软件是怎么做的建设银行网站查询
  • CQ网站建设网站建设与管理考试题
  • 十大最好的网站ppt效果网站
  • 怎么快速仿wordpress站wordpress 网页压缩
  • 涂料做哪个网站好做简单的html网站
  • 网页怎么制作超链接seo公司费用
  • 做兼职一般去哪个网站好h5设计制作是什么意思
  • 成都 企业 网站建设上海建设银行青浦分行网站
  • 关于学校网站建设的需求分析wordpress 还原主题
  • 企业网站网络推广怎么做网页设计自学网站
  • 什么是asp网站科技强国形势与政策论文
  • 事业单位网站建设saas平台设计
  • 明港网站建设网络推广专员岗位职责
  • 网站开发技术招聘wordpress设置多域名多站点
  • 自己有服务器如何架设网站市场营销研究生好考吗
  • 济南网站建设方案书范文学网站开发首先学哪些基础
  • 对做网站公司的疑问成功营销案例分享
  • 学校网站建设方案深圳网站建设公司开发制作网站
  • 天津市津南区教育网站建设招标wordpress音乐播放界面
  • 网站建设入门做网站普洱
  • 学校网站怎么做推广石家庄网站建设费用