![](https://img-blog.csdnimg.cn/20190918140012416.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
STM32
分享STM32的一些小知识
awhfc
小白一个
展开
-
STM32的volatile关键字
volatile告诉编译器不要优化,点击查看更多原创 2020-09-09 17:18:49 · 660 阅读 · 0 评论 -
STM32多串口+printf
网上很多多串口的教程,但是效果因人而异。我现在写一篇正点原子精英板直接可以复制使用的教程,其他开发板也可参考我这种修改例程的方法。复制模板正点原子的串口实验直接复制一份,修改里面的文件即可。修改usart.h例程的头文件是#ifndef __USART_H#define __USART_H#include "stdio.h" #include "sys.h" #define USART_REC_LEN 200 //定义最大接收字节数 200#define EN_USA原创 2020-09-08 16:26:17 · 4042 阅读 · 2 评论 -
STM32卡死的问题
STM32延时delay_ms()就卡死,delay_ms(5)都不行。刚开始以为是延时的问题,经调试发现用了延时之后数组i=1之后就会卡死,我是这样定义数组的。static float PWM_Value[][3]={0};//保存三个角度 PWM_Value[i][0]=(pitch+135)*10;//保存角度 TIM_SetCompare1(TIM3,PWM_Value[i][0]);//做出动作将数组定义改为static float PWM_Value[100][3]={0}原创 2020-09-08 09:38:07 · 2180 阅读 · 0 评论 -
使用MPU6050控制舵机
STM32 使用MPU6050控制舵机转动为做机械臂打基础这里使用的是正点原子精英板,借助例程略作修改。部分代码如下 int main(void) { float pitch,roll,yaw; //欧拉角 short aacx,aacy,aacz; //加速度传感器原始数据 short gyrox,gyroy,gyroz; //陀螺仪原始数据 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); delay_init();原创 2020-09-07 16:03:13 · 5727 阅读 · 2 评论 -
C8T6最小系统板的烧录
STM32F103C8T6 USB-TTL烧录和ST-LINK烧录使用USB-TTL 烧录写好的代码直接用flymcu下载即可 rx tx 接PA9和PA10使用ST-link烧录使用ST-LINK烧录时,有很多注意事项,第一步 选择对应芯片第二步 修改对应容量...原创 2020-09-06 16:15:35 · 6157 阅读 · 0 评论 -
STM32F103的timer3四路PWM
正点原子精英板PWM输出略改一下STM32103定时器3输出四路PWM通过串口控制四个舵机timer.c若是没用到中断之类的 只输出PWM 定时器这样初始话就够了#include "timer.h"void TIM3_PWM_Init(u16 arr,u16 psc)//arr:自动重装值 //psc:时钟预分频数{ GPIO_InitTypeDef GPIO_InitStructure; TIM_TimeBaseInitTypeDef TIM_TimeBaseStruc原创 2020-09-05 21:58:40 · 1421 阅读 · 0 评论 -
STM32F103ZET6舵机测试程序(库函数)
该程序是正点原子PWM输出使用微调而来的,舵机信号线接PB5。直接复制程序把PWM例程的timer.c和main,c替换了就行舵机角度依靠PWM输出周期20MS,其中高电平占0.5-2.5ms的时基脉冲控制的。高电平0.5ms对应0度,2.5ms对应180度。通过调整PWM的占空比调整角度。话不多说,直接上例程:main.c#include "delay.h"#include "sys.h"#include "timer.h" int main(void) { u16 pwm原创 2020-09-02 17:18:15 · 4297 阅读 · 5 评论 -
STM32区分接口和协议
STM32中 通信接口 和通信协议 需要区分通信接口RS232、 RS485、 通用串行总线(即USB) 都是通信接口,是一种实实在在的接口标准,不是协议。他们都是基于串口通信协议。通信协议如串口通信协议和并行通信协议嵌入式中串口通信用的很多,包括I2C,包括SPI等等。串口通信和串行通信1、串口通信和串行bai通信二者一个是一种概念,一个是一种实际的通信方式,一个主要是对SBUF的操作。2、串行通信是指一比特一比特的收发数据,相对于并行通信可一次性收发N比特而言。包括普通的串口通信,原创 2020-09-01 15:01:41 · 404 阅读 · 0 评论 -
正点STM32 远程修改时钟
如果我们代码片段设置了时钟 不可能每次修改时间都改代码.之前讲过通过ESP8266做中转站的方法 mqtt控制STM32ESP8266做中转站 我们可以利用串口或者WiFi输入指令来调用函数RTC时钟例程我的时钟代码直接用的正点原子STM32F103ZET6的例程 例程如下#include "sys.h"#include "delay.h"#include "usart.h"#include "rtc.h" _calendar_obj calendar;//时钟原创 2020-08-31 10:51:36 · 486 阅读 · 0 评论 -
STM32程序简单的ID加密
每一块芯片都有其独一无二的ID,并且ID存储在芯片内部。我们的代码可以通过读取芯片的ID和我们事先设定的ID值进行比较如果匹配上了才正常运行代码,从而起到加密效果,防止他人赋值程序。 STM32F103ZET6的id起始位是0x1FFFF7E8#include "id.h"// 把地址直接减去一个数是不要在程序中直接出现这个地址#define STM32_ID_D 352525 // 任意的一个数 volatile u32 STM32_ID_addr[3]={0x1FFFF7E8原创 2020-08-29 10:23:27 · 2970 阅读 · 6 评论 -
STM32F103ZET6串口调节亮度的小灯
基于正点原子精英版的PWM输出实验修改只需修改三个部分的代码即可,根据之前WIFI控制小灯的教程,可以把ESP8266的代码稍作修改,就可以实现WIFI调节亮度。led.h#ifndef __LED_H#define __LED_H #include "sys.h"#include "usart.h" #include "timer.h"#include "delay.h" #include "stdio.h"//////////////////////////////////////原创 2020-08-25 22:55:28 · 1857 阅读 · 1 评论