草庐IT

STM32F103C8T6(HAL库)驱动舵机

1、简介常见的舵机分为360°和180°两种,本次对180°舵机进行驱动,舵机驱动需要通过PWM信号进行驱动。本文通过定时器中的PWM信号设定使得SG90舵机进行不同角度的转动。2、PWM信号和舵机角度关系对于舵机的驱动,需要20ms的脉冲,高电平时间在0.5ms-2.5ms区间即可控制舵机在0-180°角度进行转动。常见角度对应关系如下所示:3、Cubemax初始化配置如下:3.1基础配置首先进行时钟树等基础配置。3.2PWM配置信号引脚选用PB1,对应定时器3通道4,如下图所示:接着在定时器对PWM进行配置,如下图所示:接着对PSC、arr参数进行设置,定时器计算过程点击:STM32定时器

DS18B20温度传感器(STM32F103C8T6)

一、前言        使用LCD1602实时显示DS18B20传感器捕抓的环境温度(学习笔记整理)。二、概述(一)传感器说明        DS18B20数字温度计提供9位温度读数。信息经过单线接口送入或送出DS18B20传感器,因此从中央处理器到DS18B20仅需要提供电源以及一根数据线,就可以工作。(二)DS18B20的ROM指令表ROM指令表指令约定代码功能读ROM33H读取DS18B20温度传感器ROM中的编码(即64位地址)符合ROM55H发送此命令之后,接着发出64位ROM编码,访问单总线上与该编码相对应的DS18B20使用之作出响应,为下一步对该DS18B20的读写作准备搜索R

DS18B20温度传感器(STM32F103C8T6)

一、前言        使用LCD1602实时显示DS18B20传感器捕抓的环境温度(学习笔记整理)。二、概述(一)传感器说明        DS18B20数字温度计提供9位温度读数。信息经过单线接口送入或送出DS18B20传感器,因此从中央处理器到DS18B20仅需要提供电源以及一根数据线,就可以工作。(二)DS18B20的ROM指令表ROM指令表指令约定代码功能读ROM33H读取DS18B20温度传感器ROM中的编码(即64位地址)符合ROM55H发送此命令之后,接着发出64位ROM编码,访问单总线上与该编码相对应的DS18B20使用之作出响应,为下一步对该DS18B20的读写作准备搜索R

stm32f103——中断——UART中断服务函数

在程序中,CPU对外界突发事件进行处理的方式又两种:1》轮询系统:(在main中,使用while循环,进行循环判断外界事物是否发生)      while(1){               }2》前后台系统:(此时main中的while中的程序是在处理其它事务,当中断来到时,就处理中断服务函数)      轮询系统+中断 中断的过程:在主程序执行的过程中,中断突然发生,此时主程序停止往下执行,并将CPU的当前状态保持在内核栈中(即:现场保护)。然后跳转到中断服务函数的入口,并执行中断服务函数,当中断服务函数执行完后,再将之前保存在内核栈中的状态全部进行出栈,将状态恢复到发生中断之前(即:现场

【STM32】串口通信UART代码实现——基于STM32F103C8T6

通过串口与上位机通信是经常用到的调试方法。STM32上外设USART引脚配置TX(默认PA9):复用推挽输出RX(默认PA10):浮空输入或上拉输入在写代码前需要检查硬件是否满足要求,使用串口通信时一般需要安装CH340驱动或者CP210x等,这取决于你的电平转换芯片是什么。串口设置的步骤一般为:1.使能串口时钟,使能GPIO时钟;RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA);需要同时打开GPIO和外设时钟。2.设置GPIO端口模式;GPIO_InitTypeDefGPIO_InitStructure;GP

中级商务英语(103)

branchn.树枝;(机构的)分部;分支;支线vi.分支;出现分歧记发音记忆:“不让吃”→不让小羊吃树枝→树枝例KFCisafamousinternationalchainrestaurantandnowithasover4,000branchesinChina.肯德基是一家知名的国际连锁餐厅,目前它在中国拥有的分店已经超过4000家。商overseasbranch海外分支机构/branchoffice分支机构,办事处搭establish/setupabranch建立分支机构/branchoutintosth.拓展到新的领域conquerv.战胜,征服;攻克记词根记忆:con(表强调)+qu

手把手教你写stm32f103智能风扇

目录:1.系统实现目标2.硬件选型和软件准备2.1.硬件选型2.2.软件准备3.硬件的连接电路4.各个模块的驱动程序4.1.红外传感器的驱动程序4.2.DHT11温湿度传感器的驱动程序4.3.OLED显示模块4.4.舵机的驱动4.5.电机的驱动5.不同的工作模式5.1.选择模式5.2.手动模式5.3.自动模式6.总结1.系统实现目标本系统可以分为两个模式来进行运行,分别为手动模式和自动模式,同时,在上电进入系统后,还会有一个模式选择的界面产生。模式选择:在此界面中,可以通过按键K1来控制模式选择,两个模式分别为手动模式和自动模式;通过按键K2可以进入模式。手动模式:在手动模式中,可以通过K1来

STM32系列——工程移植(从stm32f103c8t6工程到stm32f103zet6工程)

一、选择内核文件首先打开一个stm32f103c8t6的工程。在CORE文件夹下有两个文件,一个是内核文件core_cm3.c,一个是启动文件startup_stm32f10x_md.s,如果要移植到其他型号单片机上,这两个文件要检查一下是否需要改变。下面这张图片显示了不同型号单片机所采用的内核,比如要移植到stm32f4系列的单片机上,那么内核文件就要改变成cm4的内核。此次要移植的目标还是stm32f1系列的单片机,所以内核文件不需要改变。二、选择启动文件启动文件是需要改变的,下面是stm32f1系列下不同类型的单片机的启动文件选择的时候需要根据单片机的容量来选如何判断单片机的容量呢,可以

基于STM32F103C8T6的HC-06蓝牙通信

文章目录前言注意看!一、蓝牙通信流程二、怎么实现蓝牙通信1.了解蓝牙模块功能2.了解蓝牙通信本质3.进行AT命令调试4.调试完成,连接通信三、结尾前言注意看!如果朋友们遇到了如下问题,可以仔细借鉴本文章和另一篇专门讲解蓝牙通信问题的文章,一定能够解决你在蓝牙通信时遇到的诸多困难1.在调试蓝牙模块AT指令时无返回值2.身边无USB转TTL模块可以直接调试蓝牙模块(本人就是由于无模块花了了整整一天才调试成功)3.在调试蓝牙模块AT指令时存在诸多异常(1)上位机接收数据时乱码(2)卡死在数据接受中断当中,导致接受不了数据或者一直发送数据等异常情况。(3)拨动,或者拔掉数据线,会出现大量的数据发送情况

基于STM32F103C8T6的HC-06蓝牙通信

文章目录前言注意看!一、蓝牙通信流程二、怎么实现蓝牙通信1.了解蓝牙模块功能2.了解蓝牙通信本质3.进行AT命令调试4.调试完成,连接通信三、结尾前言注意看!如果朋友们遇到了如下问题,可以仔细借鉴本文章和另一篇专门讲解蓝牙通信问题的文章,一定能够解决你在蓝牙通信时遇到的诸多困难1.在调试蓝牙模块AT指令时无返回值2.身边无USB转TTL模块可以直接调试蓝牙模块(本人就是由于无模块花了了整整一天才调试成功)3.在调试蓝牙模块AT指令时存在诸多异常(1)上位机接收数据时乱码(2)卡死在数据接受中断当中,导致接受不了数据或者一直发送数据等异常情况。(3)拨动,或者拔掉数据线,会出现大量的数据发送情况