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

小型教育网站的开发与建设福永网站建设公司

小型教育网站的开发与建设,福永网站建设公司,揭阳网页制作公司,网站改版灵感库前言 本文章旨在记录博主STM32的学习经验#xff0c;我自身也在不断的学习当中#xff0c;如果文章有写的不对的地方#xff0c;欢迎各位大佬批评指正。 准备工作 今天这篇文章介绍的是触摸开关这一外围硬件。 ST-link调试器STM32最小系统板单路TTP223B触摸传感器模块LE…前言 本文章旨在记录博主STM32的学习经验我自身也在不断的学习当中如果文章有写的不对的地方欢迎各位大佬批评指正。 准备工作 今天这篇文章介绍的是触摸开关这一外围硬件。 ST-link调试器STM32最小系统板单路TTP223B触摸传感器模块LED灯珠 开始 1.理清思路 通过查找网络资料我们了解到该传感器特点如图所示 博主也是第一次尝试自己查阅资料来写一个模块的驱动代码在此之前是跟着B站UP主江协科技学习如何编写驱动代码的。 第一次独立编写驱动代码我是怎么做的呢我首先想到既然都是开关那么是不是可以修改先前学习的按钮驱动代码在其基础上来实现驱动触摸开关呢答案是可以 这里贴上按钮驱动代码 Key.c来供大家参考注意这里是按钮驱动不是我们本次介绍的触摸驱动 #include stm32f10x.h // Device header #include Delay.hvoid Key_Init(void) {//初始化按钮端口RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);GPIO_InitTypeDef GPIOInitStructure;GPIOInitStructure.GPIO_Mode GPIO_Mode_IPU;GPIOInitStructure.GPIO_Pin GPIO_Pin_1;GPIOInitStructure.GPIO_Speed GPIO_Speed_50MHz;GPIO_Init(GPIOB, GPIOInitStructure);}uint8_t Key_GetNum(void) {uint8_t KeyNum 0;//判断1号端口按钮按下情况if (GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_1) 0){Delay_ms(20);//规避按下按钮的抖动while(GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_1) 0); //一直按住按钮则卡住Delay_ms(20);//规避松开按钮的抖动KeyNum 1;}return KeyNum; } 2.编写代码 有了以上思路我们开始编写触摸模块的驱动代码 连接电路 这里我将触摸传感器的SIG口接到了STM32最小系统板的PB1接口上。LED灯珠接到PA1接口上采用高电平触发接法。 连接完电路通电后效果如图所示传感器的VCC还有GND引脚别接反了亮绿灯代表没接错 编写驱动 和按键驱动一样我们首先在Hardware目录新建触摸模块的c和h文件取名Touch 在新建的Touch.c文件当中新建一个Touch_Init函数代码如下 首先初始化RCC时钟然后选择上拉输入模式接着巴拉巴拉(相信你们都会了我这里就不多说) #include stm32f10x.h // Device header #include Delay.hvoid Touch_Init(void) {//初始化按钮端口RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);GPIO_InitTypeDef GPIOInitStructure;GPIOInitStructure.GPIO_Mode GPIO_Mode_IPU;GPIOInitStructure.GPIO_Pin GPIO_Pin_1;GPIOInitStructure.GPIO_Speed GPIO_Speed_50MHz;GPIO_Init(GPIOB, GPIOInitStructure); }有了触摸模块的初始化函数后我们还需要一个函数用于获取按钮状态即按钮是否被触摸这里我们新建函数 Touch_GetNum 注意这个函数是有返回数值的这里返回类型为uint8_t还有就是和按键一样我们为了避免外界因素对我们产生的影响还是要进行一个消抖动的过程代码如下 uint8_t Touch_GetNum(void) {uint8_t TouchNum 0;//判断1号端口按钮按下情况if (GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_1) 1){Delay_ms(20);//消去抖动while(GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_1) 1); //一直按住按钮则卡住Delay_ms(20);//消去抖动TouchNum 1;}return TouchNum; }完成这两个函数后我们的触摸模块驱动基本已经完成了完整代码如下 #include stm32f10x.h // Device header #include Delay.hvoid Touch_Init(void) {//初始化按钮端口RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);GPIO_InitTypeDef GPIOInitStructure;GPIOInitStructure.GPIO_Mode GPIO_Mode_IPU;GPIOInitStructure.GPIO_Pin GPIO_Pin_1;GPIOInitStructure.GPIO_Speed GPIO_Speed_50MHz;GPIO_Init(GPIOB, GPIOInitStructure); }uint8_t Touch_GetNum(void) {uint8_t TouchNum 0;//判断1号端口按钮按下情况if (GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_1) 1){Delay_ms(20);//消去抖动while(GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_1) 1); //一直按住按钮则卡住Delay_ms(20);//消去抖动TouchNum 1;}return TouchNum; } 写完Touch.c后别忘了在头文件touch.h当中添加这两个函数代码如下 #ifndef __TOUCH_H #define __TOUCH_Hvoid Touch_Init(void); uint8_t Touch_GetNum(void);#endif到这里我们驱动代码已经编写完成了接下来就是到main.c当中完善一下逻辑代码了 这里直接贴上完整代码 #include stm32f10x.h // Device header #include LED.h #include Touch.huint8_t TouchNum;int main(void) { LED_Init(); //LED灯珠初始化Touch_Init(); //触摸模块初始化while (1){TouchNum Touch_GetNum();if(TouchNum 1){LED1_Turn();}} } 还有LED灯珠驱动这里也一并贴上(同样的也是放在Hardware文件夹内) LED.c #include stm32f10x.h // Device headervoid LED_Init(void) {//初始化LED端口RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);GPIO_InitTypeDef GPIOInitStructure;GPIOInitStructure.GPIO_Mode GPIO_Mode_Out_PP;GPIOInitStructure.GPIO_Pin GPIO_Pin_1;GPIOInitStructure.GPIO_Speed GPIO_Speed_50MHz;GPIO_Init(GPIOA, GPIOInitStructure); }void LED1_ON(void) {//开启LEDGPIO_ResetBits(GPIOA, GPIO_Pin_1); }void LED1_OFF(void) {//关闭LEDGPIO_SetBits(GPIOA, GPIO_Pin_1); }void LED1_Turn(void) {if(GPIO_ReadOutputDataBit(GPIOA, GPIO_Pin_1) 0){GPIO_SetBits(GPIOA, GPIO_Pin_1);}else{GPIO_ResetBits(GPIOA, GPIO_Pin_1);} } LED.h #ifndef __LED_H #define __LED_Hvoid LED_Init(void); void LED1_ON(void); void LED1_OFF(void); void LED1_Turn(void);#endif 以上代码全部写好后我们就可以编译并下载到系统板上查看效果了 结尾 感谢你能阅读到这里相信你已经掌握了触摸模块的驱动编写了吧在这里我希望各位大佬跟我一起共进步后续我也会多分享一些我自己的学习经验以及像这篇文章一样的模块分享最后还是感谢你的阅读我们下篇文章再见吧
http://www.hkea.cn/news/14344529/

相关文章:

  • 国外域名 网站备案建网站的工具有哪些
  • 去马来西亚做网站网站建设小游戏网站空间类型选择
  • 淄博网站建设兼职html5移动端网站建设
  • 怎么做子网站高级采矿平台建立在小行星带
  • 阿里云 网站空间各大引擎搜索入口
  • 做外贸首先要做网站做钢材的网站有哪些
  • 2狠狠做网站做网站那些好
  • 有个人做网站的吗wordpress live2d
  • 网站开发制作公司有哪些网站页面改版降权
  • 网站建设具体工作只用html5做网站
  • 自适应网站价格免费建网站抚顺
  • 网站模板免费推荐梅龙高速施工企业
  • 如何创建网站小程序益阳网站建设哪里好
  • 品牌网站建设源码profile wordpress
  • 商城网站建设步骤手机网站开发介绍
  • 建个企业网站备案需要多长时间网站基础建设和管理
  • 怎么给甲方做网站备案巴中网站建设公司
  • 海口智能建站价格制作app的免费软件
  • 甘肃三北防护林建设局网站河南省建设厅网站103
  • 怎么使用创客贴网站做图我想接app纯注册推广单
  • 做企业网站类型学校网页设计说明
  • 鹰潭建设网站公司网站排名稳定后后期如何优化
  • 网站需要服务器网络营销推广与策划总结
  • 住房和城乡建设局网站职能苏州市建设交通高等学校网站
  • 上海网站分站建设wordpress 子分类文章
  • 大沥南海网站建设怎么给网站做谷歌seo
  • 亳州建设网站公司包装设计接单网站
  • 百度官网认证价格网站做优化的必要性
  • 印刷厂网站模板网页设计模板html代码我的家乡
  • 大连网站排名优陕西省建设工程造价管理协会网站