tag 标签: stm32

相关帖子
相关博文
  • 2024-8-7 16:09
    0 个评论
    2024年9月3日-13日,万象奥科将携手STM32走进11座城市,共启2024全国巡回研讨会! 今年的巡回研讨会以“STM32,不止于芯”为主题,向蝶粉分享近期上市的STM32新品,与大家探讨STM32在智能工业、无线连接边缘A1、安全、图形用户界面等领域如何赋能新质生产力! 图1 STM32全国巡回研讨会 作为STM32在MPU领域的重要合作伙伴,万象奥科将携STM32MP135、STM32MP157等系列核心板、开发板、解决方案等demo参与研讨会,与工程师们共同见证科技创造美好生活。 图2 万象奥科业务分布 为预热活动,万象奥科将免费送出3套NUCLEO boards、50块多功能USB串口调试器,细则如下: 1、 转发本文章到朋友圈,集齐88个以上点赞,获得NUCLEO boards(限前3名); 2、 转发本文章到朋友圈,集齐18个以上点赞,获得多功能USB串口调试器(限前50名); 3、 集赞成功后截图,关注“万象奥科”微信公众号,将截图及收货信息发送到公众号; 4、 完成时间以公众号后台收到图片时间为准; 5、 截止时间2024年8月30日; 图3 活动奖品 点我报名,了解研讨会详情! ​
  • 热度 5
    2024-4-6 09:06
    467 次阅读|
    0 个评论
    stm32 tim1 刹车是不是高低电平都可以触发,软件是不是可以设置 STM32 TIM1 刹车引脚 可以设置成高电平或低电平触发 ,并且 软件可以进行相应的设置 。 STM32的高级定时器TIM1具备多种功能,其中包括用于电机控制的刹车功能。对于刹车引脚的电平触发方式,STM32提供了灵活性,允许用户根据外设需要来配置。例如,OCXREF电平默认是高电平有效,但是通过寄存器设置,可以配置OCX和OCXN的有效电平为高或低。这意味着无论外部设备是需要高电平还是低电平来触发刹车功能,STM32都可以通过编程来适配。 在软件设置方面,STM32的定时器允许通过编程来启用或禁用刹车功能,并定义刹车时的行为。具体到TIM1,可以利用相关寄存器设定BKIN管脚作为刹车输入的有效电平。程序中可以将TIM1_BKIN引脚设置为高电平有效,这样当该引脚被置为低电平时,PWM输出将停止,达到刹车的效果。 综上所述,STM32的TIM1刹车功能既可以应对高低电平触发的需求,也支持通过软件进行详细的设置,以适应不同的应用场景和硬件要求。
  • 热度 2
    2024-1-11 17:24
    298 次阅读|
    0 个评论
    stm32 CubeMx 实现SD卡/sd nand FATFS读写测试。   材料:stm32F407ZGT6开发板、雷龙公司的SD_NAND 测试板(CSNP1GCR01-AOW)。(一开始是使用 Nandflash的操作起来不太方便而且 stm32cubemx自带的 fatfs还没有磨损平衡算法,很是难受。)   CSNP1GCR01-AOW的优势:   不用写驱动程序自带坏块管理的NAND Flash(贴片式TF卡),尺寸小巧,简单易用,兼容性强,稳定可靠,固件可定制,LGA-8封装,标准SDIO接口,兼容SPI/SD接口,兼容各大MCU平台,可替代普通TF卡/SD卡,尺寸6x8mm毫米,内置SLC晶圆擦写寿命10万次,通过1万次随机掉电测试耐高低温,支持工业级温度-40°~+85°,机贴手贴都非常方便,速度级别Class10(读取速度23.5MB/S写入速度12.3MB/S)标准的SD 2.0协议使得用户可以直接移植标准驱动代码,省去了驱动代码编程环节。支持TF卡启动的SOC都可以用SD NAND,提供STM32参考例程及原厂技术支持,主流容量:128MB/512MB/4GB/8GB,比TF卡稳定,比eMMC便宜,样品免费试用(可到官网找客服小姐姐领取样品哦)。雷龙官网   话不多说开始正文:   stm32cubeMX 版本:6.6.1   MDK5 版本5.35   开始配置STM32   1、 配置时钟:   系统时钟树配置(我这里直接拉满,实际使用根据功耗要求作相应的调整)   2、 配置调试接口   注意DEBUG这个一定要配置,如果是默认的那下载一次程序之后第二次就下载不进去了.   3、配置SDIO:   (我这里还是用了DMA 减少mcu的资源开销)   配置完成之后随便选一个IO口作为SD_NAND的插入检测引脚(没有检测脚的也选上不然在生成代码的时候会有警告,看着很不舒服,我这里选的是 PE4 引脚)   4、配置SDIO的DMA   5、添加文件系统  6、配置堆栈大小(稍微调大一点,不然在读写大一点的数据的时候可能会出错)   7、生成代码   8、生成代码后在 bsp_driver_sd.c这个文件中将这三行代码注释(这是检测SD卡是否接入的引脚 如果不注释在挂载sdnand的时候会提示 not_ready)   9、在main.c中 添加测试代码 */ /* USER CODE END Header */ /* Includes ------------------------------------------------------------------*/ #include "main.h" #include "dma.h" #include "fatfs.h" #include "sdio.h" #include "gpio.h" /* Private includes ----------------------------------------------------------*/ /* USER CODE BEGIN Includes */ /* USER CODE END Includes */ /* Private typedef -----------------------------------------------------------*/ /* USER CODE BEGIN PTD */ FATFS fs; /* FatFs 文件系统对象 */ FIL file; /* 文件对象 */ FRESULT f_res; /* 文件操作结果 */ UINT fnum; /* 文件成功读写数量 */ BYTE ReadBuffer = {0}; /* 读缓冲区 */ BYTE WriteBuffer */ void* work, /* Pointer to working buffer */ UINT len /* Size of working buffer */ )  f_mkfs 这个函数有五个参数,老版本的只有三个参数   所以在格式化的时候得这么来操作 f_res = f_mkfs("0:/",FM_FAT|FM_SFD,0,&ReadBuffer,sizeof(ReadBuffer));
  • 热度 4
    2023-12-21 13:24
    933 次阅读|
    2 个评论
    总体设计 设计来源 随着社会科技的迅猛发展,智能化安防系统在家居安全领域得到了广泛的应用。为了提升居民生活质量和家庭安全性,我决定开发一款基于STM32的智能防盗门系统。 在传统的门锁系统中,使用物理钥匙进行开锁存在一些不便之处,例如容易丢失、难以记忆等问题。而基于STM32的智能防盗门系统将采用密码锁和指纹识别等先进技术,为用户提供更加方便、安全的门禁控制方式。同时,通过集成无线通信模块,用户可以实现远程控制。 项目的设计来源于对智能家居安全领域的市场需求以及对传统门禁系统的不足的深入分析。我们选择了STM32作为主控芯片,以其卓越的性能和灵活性,为系统提供稳定可靠的硬件支持。为了实现多种认证方式,我们引入了RFID和指纹传感器,并通过精心设计的软件算法实现了高效的用户认证流程。 在项目开发中,我注重安全性、可维护性和用户友好性的平衡。通过对系统的全面设计,我将安全置于首位,并提供了友好的用户界面,方便用户轻松操作。 通过这一项目,我打造一种更加智能、安全、便捷的门禁系统,提升家庭安全感,为智能家居领域的发展贡献一份力量。 功能需求分析 1.夜间感应开灯:当检测在夜间的时候,当用户接近到智能防盗门时,防盗门的照明系统打开,方便用户进行开锁。 2.IC卡开门:无线频率辨识(RFID)技术,是一种在卡片与读卡装置之间无需直接接触的片只需在读卡器的读卡范围内晃动即可,即可达到开门的目的。 3.蓝牙开门:利用手机蓝牙配对连接进行开门 4.指纹解锁开门:利用生物技术将门锁与指纹解锁结合在一起达到开门的目的。 设计思路 传统的防盗门在便利性和安全性方面存在一定的短板,用户对门禁系统的需求逐渐提升。智能门锁因其高隐私性、大编码量、低随机开锁成功率以及密码灵活变化等优势,成为了满足用户更高需求的理想选择。为此,我们将移动互联网和无线通信技术融入智能门锁系统,不仅简化了操作流程,还推动了人机交互的发展。 借助STM32F103RCT6单片机卓越的实时性能、最大程度的集成整合、配置灵活以及强大的编程和控制能力,我们设计了一款以STM32F103RCT6为主控制器的智能防盗门系统。该系统整合了键盘模块、HC-06蓝牙模块、OLED屏模块和无线传输等外围电路,构建了一个全面的智能防盗门管理体系。 除了基本的门禁功能外,我们还在系统中增加了夜间感应开灯模块。这一功能旨在提升用户体验,当用户接近防盗门时,系统能够智能地开启照明,方便夜间操作。在白天或用户离开防盗门附近时,系统则能够智能地关闭照明,实现了节能环保的目标。 通过这一设计,我们旨在为用户提供一种更便捷、更安全、更智能的防盗门系统。整合了先进的技术和用户友好的功能,这一系统将满足现代生活对安全和便利的双重需求,为智能家居领域的发展注入新的活力。 前期准备 硬件准备 STM32F103RCT6 开发板 HC-06蓝牙模块 OLED显示屏 光照传感器 人体红外传感器 继电器 RC522无线射频模块 电子锁 AS608指纹模块 12V电源 功能实现 模块介绍 RC522近场通信模块:是一种短距离的高频无线通讯技术,允许电子设备之间进行非接触式点对点数据传输,在十厘米(3.9英寸)内交换数据 蓝牙模块:是一种集成蓝牙功能的 PCBA板,用于短距离无线通讯,按功能分为蓝牙数据模块和蓝牙语音模块。蓝牙模块是指集成蓝牙功能的芯片基本电路集合,用于无线网络通讯,大致可分为三大类型:数据传输模块、蓝牙音频模块、蓝牙音频+数据二合一模块等等,模块具有半成品的属性,是在芯片的基础上进行过加工,以使后续应用更为简单。像SKYLAB的BLE4.2/5.0蓝牙模块SKB369/BLE5.0蓝牙模块SKB501是属于数据传输模块,仅支持数据传输,不支持音频传输。 光学指纹模块:利bai用光的折射和反射原理,光从底部射向 三棱镜,并经棱镜射出, 射出的光线在手指表面指 纹凹凸不平的线纹上折射的角度及反射回去的光线明暗就会不一样。CMOS或者CCD的光学器件就会收集到不同明暗程度的图片信息,就完成指纹的采集。半导体指纹模块:无论是电容式或是电感式,其原理类似,在一块集成有成千上万半导体器件的“平板”上,手指贴在其上与其构成了电容(电感)的另一面,由于手指平面凸凹不平,凸点处和凹点处接触平板的实际距离大小就不一样,形成的电容/电感数值也就不一样,设备根据这个原理将采集到的不同的数值汇总,也就完成了指纹的采集。射频指纹模块:利用生物射频指纹识别技术,通过传感器本身发射出微量射频信号,穿透手指的表皮层去控测里层的纹路,来获得最佳的指纹图像。防伪指纹能力强,射频识别原理只对人的真皮皮肤有反应,从根本上杜绝了人造指纹的问题。 红外传感器:红外测距传感器是一种传感装置,是用红外线为介质的测量系统,测量范围广,响应时间短,主要应用于现代科技,国防和工农业领域。红外测距传感器具有一对红外信号发射与接收二极管, 利用的红外测距传感器LDM301发射出一束红外光,在照射到物体后形成一个反射的过程,反射到传感器后接收信号,然后利用CCD图像处理接收发射与接收的时间差的数据。经信号处理器处理后计算出物体的距离。这不仅可以使用于自然表面,也可用于加反射板。测量距离远,很高的频率响应,适合于恶劣的工业环境中。 OLED显示屏:OLED显示屏是利用有机电致发光二极管制成的显示屏。由于同时具备自发光,不需背光源、对比度高、厚度薄、视角广、反应速度快、可用于挠曲性面板、使用温度范围广、构造及制程较简单等优异之特性,被认为是下一代的平面显示器新兴应用技术。此设计采用IIC方式进行数据读取。 OLED(Organic Light-Emitting Diode,又称有机电激发光显示、有机发光半导体)是有机发光二极管的英文缩写。其是一种利用多层有机薄膜结构产生电致发光的器件,它很容易制作,只需要低的驱动电压,这些特征使得OLED在满足平面显示器的应用上显得非常突出。OLED显示屏比LCD更轻薄、亮度高、功耗低、响应快、清晰度高、柔性好、发光效率高。单色屏幕的像素是一个像素就是一个发光二极管。OLED是”自发光”,像素本身就是光源,所以对比度极高,显示效果很犀利,绝无朦朦胧胧、拖泥带水之感,深受爱好者追捧,可惜当前技术所限制,无法大尺寸化,价格比TFT液晶屏高得多。 功能开发 OLED_Init();//OLED初始化 OLED_ColorTurn(0);//0正常显示,1 反色显示 OLED_DisplayTurn(0);//0正常显示 1 屏幕翻转显示 yemian(); 人机交互显示 //初始页面函数 void yemian(void) { OLED_Clear(); //根据取模软件取模而成 OLED_ShowChinese(0,0,7,16);//智 OLED_ShowChinese(18,0,8,16);//能 OLED_ShowChinese(36,0,9,16);//房 OLED_ShowChinese(54,0,10,16);//盗 OLED_ShowChinese(72,0,11,16);//门 OLED_Refresh(); delay_ms(500); } //开门成功 void opean_OLED(void) { OLED_Clear(); OLED_ShowChinese(0,0,12,16);//开 OLED_ShowChinese(18,0,13,16);//锁 OLED_ShowChinese(36,0,15,16);//成 OLED_ShowChinese(54,0,16,16);//功 OLED_Refresh(); delay_ms(500); } //关门成功 void close_OLED(void) { OLED_Clear(); OLED_ShowChinese(0,0,12,16);//开 OLED_ShowChinese(18,0,13,16);//锁 OLED_ShowChinese(36,0,17,16);//失 OLED_ShowChinese(54,0,18,16);//败 OLED_Refresh(); delay_ms(500); } RC522无线射频卡解锁 思路 首先在RFID标签卡片上的块中存放数据,通过检测卡片中的数据,来判断是否有可以打开防盗门的权限。 写卡 首先,我们需要在IC卡中写入数据。 读卡 根据读取卡片中的数据是否是具备权限的,来检测是否开门 主要程序 status= PcdRequest(REQ_ALL,TagType);//寻卡 if(!status) { status = PcdAnticoll(SelectedSnr);//防冲撞 if(!status) { status=PcdSelect(SelectedSnr);//选定卡片 if(!status) { snr = 1; //扇区号1 status = PcdAuthState(KEYA, (snr*4+3), DefaultKey, SelectedSnr);// 校验1扇区密码,密码位于每一扇区第3块 { if(!status) { status = PcdRead((snr*4+0), bufRC522); // 读卡,读取1扇区0块数据到buf -buf if(!status) { for(i=0;i<16;i++) { sprintf((char *)dtbuf,"%02X ",bufRC522 ); printf((char *)dtbuf); } printf("\r\n"); bufRC522 =0x00; bufRC522 =shuju;//数据 status = PcdWrite((snr*4+0), bufRC522); // 写卡,将buf -buf 写入1扇区0块 if(!status) { } for(i=0;i<16;i++) { sprintf((char *)dtbuf,"%02X ",bufRC522 ); printf((char *)dtbuf); } printf("\r\n"); WaitCardOff(); } } } } } } APP解锁 蓝牙解锁原理 蓝牙解锁的原理就是串口传输数据,通过串口传输和手机的APP进行传输数据,蓝牙接收到的数据进行检测。 我在前面的一篇文章,系统的讲过串口传输,想了解的读者可以自行观看。 思路 首先,通过手机APP连接手机搜索到的蓝牙,连接成功后,在APP中点击开锁。智能防盗门接收到指令后,进行开锁。 重要程序 ///重定向c库函数printf到串口,重定向后可使用printf函数 int fputc(int ch, FILE *f) { /* 发送一个字节数据到串口 */ USART_SendData(DEBUG_USARTx, (uint8_t) ch); /* 等待发送完毕 */ while (USART_GetFlagStatus(DEBUG_USARTx, USART_FLAG_TXE) == RESET); return (ch); } ///重定向c库函数scanf到串口,重写向后可使用scanf、getchar等函数 int fgetc(FILE *f) { /* 等待串口输入数据 */ while (USART_GetFlagStatus(DEBUG_USARTx, USART_FLAG_RXNE) == RESET); return (int)USART_ReceiveData(DEBUG_USARTx); } 简单的使用 scanf("%c", &GetData); printf("GetData = %c\n", GetData); if(GetData=='A') suo=0;//开 else if(GetData=='B') suo=1;//关 夜间感应开灯 思路 通过光照传感器检测智能防盗门周围的光照强度来判断是白天还是夜间。根据人体红外传感器判断是否有人到达智能防盗门前准备进入,之后选择是否进行开关灯。 scanf("%c", &GetData); printf("GetData = %c\n", GetData); if(GetData=='A') suo=0;//开 else if(GetData=='B') suo=1;//关 重要程序 原理 利用光的折射和反射原理,光从底部射向三棱镜,并经棱镜射出,射出的光线在手指表面指纹凹凸不平的线纹上折射的角度及反射回去的光线明暗就会不一样。CMOS或者CCD的光学器件就会收集到不同明暗程度的图片信息,就完成指纹的采集。 思路 首先,用户需要先录入可以进入智能防盗门的人员的指纹。然后分别进行标号、命名进行存储。 之后,对想要进入智能防盗门的人员进行指纹识别,当识别到是具备允许进入的权限的人员的时候,进行开门,否则进行关门。 效果演示 总结 本文通过指纹解锁、RFID解锁、APP解锁和夜间感应开灯实现一个完整的智能防盗门项目
  • 热度 5
    2023-10-29 19:26
    612 次阅读|
    0 个评论
    • 实验环境 工程文件下载链接! 本次实验是通过Proteus+MDK一起模拟完成的。Proteus模拟实际电路,MDK编译代码。Proteus版本是8.9,MDK版本是5.36。需要注意的是,Proteus需要安装8.8以上版本,器件库里面要支持STM32F401VE。 • 实验目的 通过定时器3TIM3,计数,8位数码管,一个3*4的键盘来实现一个简单的可设置电子时钟。 •主控: STM32F401VE,Cotex-M4内核,主频最大84MHz,程序空间512KB,FLASH空间96KB。 •时钟: 没有用外部晶振,因为Proteus只支持一种时钟树,所以这里采用内部晶振,做实验够了。 •复位电路: 没有配置相关外设电路,因为Proteus默认是有电压的,默认是复位的,毕竟是仿真软件,主要是验证程序功能。 • IO说明: 我们利用PD0~PD7以及PC0~PC7控制数码管、PE0~PE6控制键盘输入。
相关资源