STM32嵌入式音乐闹钟体系规划全流程写实
STM32嵌入式音乐闹钟体系规划全流程写实
STM32嵌入式音乐闹钟体系规划全流程写实
点击搜索

STM32嵌入式音乐闹钟体系规划全流程写实

时间: 2023-11-23 来源:消防监测

  本年电赛确认延期后产生了制造这个著作的idea,曾经的嵌入式学习更多是根据某一块开发板(比方正点原子)上,建立外围电路来完成功用,真没考虑过一个完好的嵌入式体系是怎样完成的,正好上学期刚学完模电数电,就开端做了。

  手上能够验证调试的开发板只要mini板和精英板,ZET6太贵,RCT6价格合理(实践上c8t6就够了),还有便是第一回学画PCB,下降犯错危险,便利抄白嫖的原理图。

  淘宝制品MP3播映模块DY-SV5W,主芯片被磨了,店家也不给原理图...

  一开端原本想再学一下SDIO的操作和MCU解码mp3的算法,但发现一是F1系列时钟频率72Mhz太低了,网上说硬搞音质会不咋地,额还有便是其时不知道还有嵌入式操作体系移植这样的一个东西,想不明白假如光解码的话其他功用怎样确保连接进行。模块有两种驱动方法:8个I/O或者是UART异步串口通讯,后者能彻底使用该模块的一切功用。

  整个体系供电只会用到两种电压:5V和3.3V,经实践测验该芯片供给的3.3V电源十分安稳。

  廉价,更首要的原因是手头除了正点的那块TFTLCD模块只要这个。实践上大多数传感器元器件我都是从曾经Arduino的学习套件里拿出来的,惋惜店家疫情期间跑路了,它们的驱动代码没要到。

  材料多,一个传感器温度湿度一起测(精度就那么回事吧呵呵),时序易懂程序好写。

  选用四个通用定时器级联,经过主从形式的装备,TIM4每1秒软件触发TIM2计数,TIM2计数六十次后溢出,软件触发TIM3计数,TIM3计数60次今后溢出,软件触发TIM5计数。日期更迭用软件算法完成。

  RTC实质是一个32位计数器,经过数学转换成年月日时分秒等参数,理论最高能记载4294967296秒(136年),用定时器级联完成就不用在乎这种约束,除非MCU作废。

  尽管RTC时钟具有断电后持续计时的优势(有后备电源的情况下),但它的写保护有点费事,每回要改时刻话得修正寄存器BKP_DR1的参数

  便是规范的UART异步通讯,不同功用(播映、暂停、快进退等)的操作指令店家数据手册都有,正常收发便是了,必需求分外留意的是这些指令都是十六进制指令。

  店家模块的使用手册说,该模块最多支撑30级音量改变,咱们开发板的VDDA=3.3V,VSSA=0V,很明显用能够用ADC采样!终究取得的音量便是

  DMA+ADC常见MCU采样软件规划,很好统筹了准确性和速度,软件上每回拜访DMA上接连十二个采到的电压数据,用中值滤波法(冒泡,快排都能完成)确认终究成果值。

  挑选一个10k欧的电位器(分压)就够了,并且主张选圈数少的那种作用最好。

  实质是规范SPI通讯(仅用到MOSI),对着数据手册渐渐写时序和指令就行(真的很头大,这种LCD除了写时序还得做字库)...不过后来仍是找到现成代码了。

  严厉依照时序读取就行,两次数据读取距离至少要100ms,所以读取数据的操作在定时器TIM1的中止服务函数中进行。

  从功用需求上剖析,UART串口首要接纳的是MP3播映器模块回来的数据(比方当时播映时长这种),TIM1中止仅仅要去读一下DHT11的数据,所以明显平常应该将大部分的优先级分配给UART串口,当DHT11需求读数据时再让TIM1抢占高优先级。

  原理图没什么好说的,简直便是抄作业...都是把不同店家和的规划缝合过来的,自己做的仅仅理解了一些每一块规划的含义和意图。

  再后来便是等了一个多礼拜才把要焊的一切元器件都买齐,不过自己焊接技能有点拉跨...搞搞贴片电容电阻还行,搞拖焊直接弄坏了一个mcu。。。所以终究是开学后找校园对面专业SMT焊接焊的。