type
status
date
slug
summary
tags
category
icon
password
🙂
 
 

STM32F103C8T6 引脚图

 
notion image
 
 

💬c & h

 

软件I²C

 
bsp_myI2C.c
bsp_myI2C.h
 

👀环境配置

 

串口重定向打印输出

 

Keil5

 
使用usart1,在CubeMX生成的usart1.c文件末尾,添加如下代码:
 
usart.h文件中,在用户代码的Prototypes的部分添加如下代码:
 
在魔法棒的位置添加文件路径,引入这两个文件
 
这样,直接在main.c中任意位置使用printf即可实现串口重定向!
 
 

CMake + VSCode

 
retarget.c
 
retarget.h
 
新建一个Users目录,放在项目的Drivers目录下,将上面的c & h文件放入Drivers/Users文件夹中
 
在项目目录的cmake → stm32cubemx → CMakeLists.txt中添加刚刚的文件路径:
 
 
浮点数输出
在项目目录的 cmake → gcc-arm-none-eabi.cmake 文件的末尾中添加并保存:
 
 
 
用法:
  • 在 main.c 中包含 retarget.h 头文件;
  • 在主函数中初始化函数;
  • 在任意位置使用printf!
 
示例main.c
 
 

🙌例程

 

MPU6050 软件I2C读取传感器数据

 
🔗相关链接
 
 
物料
  1. STM32F103C8T6开发板
 
设计功能
  • 读取6轴传感器数据,3轴加速度,3轴陀螺仪角度
  • 将读取结果发送到串口可视化输出
 
CubeMX GPIO 设置总览
引脚
模式
上拉/下拉
速率
用途
PB4
GPIO_Output
No Pull
High
SCL
PB5
GPIO_Output
No Pull
High
SDA
 
CubeMX 其他设置
  1. RCC时钟源 HSE设置为外部晶振
  1. Clock时钟(HCLK)速度设置为72MHz
  1. Connectivity设置串口USART1,Mode设置为Asynchronous
 
头文件
MPU6050_soft.c
MPU6050_soft.h
 
主程序
main.c
 
 
 

继电器定时控制

 
物料:
  1. 继电器×1
  1. STM32F103C8T6开发板
  1. 按钮×1
  1. LED×2(板载)
  1. 导线若干
 
设计功能
  • 多档切换定时功能,定时开启/关闭继电器
  • 按键交互反馈
 
CubeMX GPIO 设置总览
引脚
模式
上拉/下拉
速率
用途
PA1
GPIO_Output
No Pull
Low
LED1(低电平点亮)
PA7
GPIO_Output
No Pull
Low
继电器控制输出
PB2
GPIO_Input
Pull-up
N/A
按钮输入
PB8
GPIO_Output
No Pull
Low
LED2(低电平点亮)
 
main.c
 
图片示例
notion image
 
 
 

STM32 脉宽调制 (PWM):控制直流风扇的速度

 
 
Code:
 
 
 
 
BLDC Expansion Board一些Linux疑难杂症
Loading...