地位:对于任何一门编程语言的学习,print函数毫无疑问是一种最好的调试手段,调试者不仅能通过它获取程序变量的运行状态而且通过对其合理使用获取程序的运行流程,更能通过关键变量的输出帮你验证推理的正确与否,朴素的讲print函数就是人与程序交流的媒介,能否合理运用print函数处理问题是学好程序的关键在嵌入式的学习中Oled显示就充当人与程序与实验板子之间沟通的媒介,合理使用Oled调试程序将会给后续程序调试带来巨大便利,这就是为什么在点灯之后就立即学习Oled显示OLed1线路图:这是Oled连线原理图,主要看画圈部分即可,PA8以及PB4是Stm32l071kbu6芯片控制,所以只需要调这俩
Arduino:Arduino开发板本着让用户简单使用而且开源的设计理念,具有灵活便捷、入手门槛低、同时具有丰富接口、多功能、易扩展等优点,因此在电子设计领域应用较广。目前市场上Arduino开发板的种类非常多,如ArduinoUNO/UNOR3,Arduino101/IntelCurie,ArduinoMicro,ArduinoEthernet,IntelGalileo开发板等。该类开发板上手极快,操作简单,价格相对要便宜一点。独特优势:(1)开放性:Arduino是起步较早的开源硬件项目,它的硬件电路和软件开发环境是完全公开的。(2)易用性:简单易用,无需安装额外驱动,采用类C语言,主函数
文章目录一、功能简介二、软件设计三、实验现象联系作者一、功能简介本项目使用STM32F103C8T6单片机控制器,使用OLED显示模块、矩阵按键模块、LED和蜂鸣器、继电器模块等。主要功能:系统运行后,OLED显示系统初始界面,可通过矩阵按键S1和S5选择商品,OLED液晶显示商品价格,共有8种价格商品可供选择,且选择的商品对应LED会有指示。可通过S9和S13选择商品数量,当需要返回时可按下S16键,选择好商品和数量后可按下S12键,此时OLED显示累计商品总价,此时可通过键盘输入投币数,OLED显示投币值,若投币数值大于等于商品累计总价,则驱动继电器出货,且蜂鸣器报警提示,OLED显示找零
文章目录1简介1背景2设计概要3硬件选型3.1主控-STM323.2电机驱动3.3红外遥控设计3.4传感器部分3.4.1循迹模块3.4.2红外避障模块3.4.3超声波模块3.4.4WIFI视频模块4小车成品展示5泊车算法设计5.1侧方位泊车5.2倒车入库6测试效果7最后1简介Hi,大家好,学长今天向大家介绍一个单片机项目基于STM32的自动泊车系统大家可用于课程设计或毕业设计1背景目前我们所能见到的汽车企业大多数都控制在L2级半自动驾驶,其中包括半自动泊车系统:传感器技术的组成配合下收集精确的环境信息实现“泊车路径规划”、系统进行“车辆控制”等功能,在部分自动泊车(高级泊车辅助APA)系统的辅
本文主要通过介绍定时器基本结构去学习如何使用定时器进行定时。一、定时器基本介绍定时器可以对输入的时钟进行计数,并在计数值达到设定值时触发中断,从而达到计时功能。本文从通用定时器介绍。本文所使用芯片为STM32F103C8T6,拥有TIM1-TIM4四个定时器资源。1.1、基本定时器结构 图.2为基本定时器结构 红色框选部分为时基单元。【1】内部时钟(CK_INT)输入到PSC预分频器,预分频器会对输入时钟进行分频。如PSC=0时为1分频,即CK_CNT=CK_INT/1, PSC=1时,CK_CNT=CK_INT/2。【2】CNT计数器:对预分频后的时钟进行计数,计时时钟每来一个上升沿,计数器
文章目录SPI通信SPI简述一个关于时钟系“小”通信协议的问题7针OLED使用SPI协议显示OLED软件SPIOLED硬件SPIOLED硬件SPI优化版总结SPI通信购买了逻辑分析仪后,总想着把所有的通讯信号全都看一遍。之前一篇笔记讲的是串口通信,做了一些小实验,搞清楚了如何基于底层利用串口传一些“非标”的数据。关于通信协议的第二篇,我想来看看SPI通信。SPI简述SPI通信是Serialperipheralinterface的缩写,中文是串行外设接口,它可以使单片机与各种外围设备以串行的方式进行通信和交换信息,外围设备包括FlashRAM、网络控制器、LCD屏幕、AD转换器、甚至是其他的MC
FreeRTOS的移植一、准备1.下载源文件2.文件内容2.1include文件2.2portable文件二、STM32工程部署1.标准库1.1下载标准库1.2标准库简介内核文件库文件配置文件和中断函数文件2.keil设置2.1为什么要添加STM32F10X_HD,USE_STDPERIPH_DRIVER宏定义2.1.1USE_STDPERIPH_DRIVER2.1.1STM32F10X_HD三、移植FreeRTOS到工程1.复制文件2.在keil工程中添加FreeRTOS内容3.修改FreeRTOSConfig.h文件4.修改stm32f10x_it.c文件四、编写程序一、准备1.下载源文件
前言定时器是嵌入式开发中极其重要的一员,它可以分为软件定时器和硬件定时器。软件定时器很不精准,通过循环语句粗略的去计算延时的时间,对时序要求较高的场景是完全不适用的;硬件定时器在stm32中种类也是比较多的,基本定时器、通用定时器、高级定时器、低功耗定时器等,它们的基本特性相差无几,更多的是应用场景的不一样,例如高级定时器特性会更好一点(带可编程死区的互补输出、输出通道数更多等),意味着它的应用场景更高级,低功耗定时器功耗更低,可以在除待机模式以外的所有电源模式下保持运行,即使没有内部时钟源也可以运行。根据自己的需求去选择合适的定时器,这里仅对通用定时器进行讲解。1.通用定时器特性①16/32
文章目录实验环境一、PWM工作原理1.基本特性2.PWM两个基本参数3.PWM信号电压调节原理4.PWM输出工作原理二、HAL库配置1.TIM3、4通道引脚分布2.TIM配置3.时钟RCC配置4.项目配置三、项目代码修改四、STM32F103C8开发板接线五、程序运行结果六、总结实验环境软件:STM32CubeMXKEIL5mcuisp串口通信助手硬件:STM32F103C8Tx杜邦线,面包板,USB转TTL一、PWM工作原理1.基本特性脉冲宽度调制(PWM)是一种对模拟信号电平进行数字编码的方法。广泛应用于电机控制、灯光的亮度调节、功率控制等领域。2.PWM两个基本参数周期(Period):
一、软件&驱动安装1)Keil5安装MDK-ARM版本后,需要安装对应芯片器件库,否则新建工程无芯片可选项。 查看设备管理器 stlink是否驱动正常,如果是感叹号则需要装驱动 2、插入STLINK后,在keil安装目录下找到安装驱动程序,安装STLINK驱动。3、插入usb转串口模块后,安装驱动程序(资料文件夹内 工具软件内)。二、新建STM32工程1)开发方式有如下几种:1、基于寄存器的方式(和51开发相似):这是最底层最直接的方式,使用程序直接配置寄存器,达到所需功能,但STM32结构复杂,寄存器太多所以不建议用此种方式。2、基于标准库(库函数)的方式:使用官方提供的封装函数,通过调用函