STM32F103C8T6最小系统板学习笔记

 看目录

一、STM32F103C8T6

 1. 硬件

1.1 与电脑的连接

1.1.1 ST-LINK

  连接下面的引脚,而且连接要一一对应,引脚需要一个一个对应连接,stm32和st-link2的顺序并不是一一对应的。如图所示。

1.2 

2. 软件

2.1 编译软件的下载

Keil5 MDK

可以看江协科技的视频来进行安装

安装视频:https://www.bilibili.com/video/BV1th411z7sn?p=3&vd_source=050e5135e4f0c853af6dca478916b8da

资料下载链接 : 

https://jiangxiekeji.com/download.html

2.2 学习时遇到的问题

1. 代码规范

注意stm32的代码结尾要空一格


2.下载不进去

注意下载后出现下图是因为LINK和32并没有连接好,可以检查检查LINK的线是否和32一一对应了,也可能是LINK或者32坏了…

                                              

2.3 好用的技巧

2.3.1 Debug


可以用来实时监测一个变量的值 

 步骤:

       首先,选中想要查看值的变量;

        然后,右键选择add然后选择Witch1;

        然后就可以在右下方见到要看的变量;

   最后点击左上方的运行符号就可以了。

2.3.2 Ctrl + f

可以搜索代码中已写的变量在哪里


2.3.3 Ctrl + 空格

可以找到相关的函数和变量的东西 

 二、外部模块

1. 显示屏 

1.1 0.96寸四管脚OLED显示屏

1.1.1 硬件

OLED一共有四个接口分别是SCL(时钟),SDA(数据),GND(电源负),VCC(我一般给3.3V, 我感觉5V有危险)

1.1.2 软件

正常使用即显示数字、字母以及符号比较简单,代码篇会给出代码,本文主要介绍如何显示汉字以及图片。

首先要了解OLED是如何显示东西的,可以搜一搜其他人的详细讲解。按我理解显示东西的步骤就是先对这个东西取模,然后转换成01的信号给OLED再显示。因此便要用到取模软件,我用的软件是PCtoLCD2002,文末会有相关下载链接。

1.1.2.1显示汉字的步骤

下面是取模的步骤

1.这是打开软件后的界面(有改动)

2.点开我所圈的

3.对照着图片改成一样的,别忘了点确定,最重要的是改成c51格式,和像素大小改成14(像素不改会有点问题)

 4.输入你想要的汉字,点击生成字模,并给字模复制下来

 5.接下来打开OLED_Font.h,找到const char Font_Chinese[][32]函数,在大括号中加入你想要的汉字的取模后的代码。如下所示即可

const  char Font_Chinese[][32]=
{ 
{0x00,0x80,0x60,0xF8,0x07,0x40,0x20,0x18,0x0F,0x08,0xC8,0x08,0x08,0x28,0x18,0x00},
{0x01,0x00,0x00,0xFF,0x00,0x10,0x0C,0x03,0x40,0x80,0x7F,0x00,0x01,0x06,0x18,0x00},/*"你",0*/
{0x10,0x10,0xF0,0x1F,0x10,0xF0,0x00,0x80,0x82,0x82,0xE2,0x92,0x8A,0x86,0x80,0x00},
{0x40,0x22,0x15,0x08,0x16,0x61,0x00,0x00,0x40,0x80,0x7F,0x00,0x00,0x00,0x00,0x00},/*"好",1*/
};

6.接着在主函数中调用void OLED_ShowChinese(uint8_t Line,uint8_t Column,uint8_t num);函数即可显示汉字,第一个参数是第几行,第二个是第几列,第三个是显示第几个汉字(如果显示的第一个汉字则填0)。

以下代码则显示在第一行第四列显示第一个数字,第一行第五列显示第二个汉字。

OLED_ShowChinese(1,4,0);
OLED_ShowChinese(1,5,1);
1.1.2.2显示图片的步骤 

2. 蓝牙模块

2.1 HC-05 

2.1.1硬件 

 

注意蓝牙模块需要调波特率,蓝牙模块本身的波特率需要与stm32的一致才能接收到正确的数据,如果接收到的数据不正确首先看看波特率一致不一致,可用usb转ttl进行检查,使用usb转ttl时注意把3.3v和vcc用跳线帽连接好,用5v给蓝牙模块供电,然后蓝牙模块的RXD链接usb转ttl的TXD,蓝牙模块的TXD链接usb转ttl的RXD。然后电脑端的串口助手我用的是江协科技的,手机端的是我自己找的。 

TXD发送端

RXD接收端

2.1.2软件

 电脑端的串口助手:https://download.csdn.net/download/2301_76339996/88637178

手机端的串口助手:https://download.csdn.net/download/2301_76339996/88637183

3.电机

电机停下的条件:占空比为0,或者两边同时置高或者置低即无电压差

3.1 小黄电机

如下图 

其有两个端口,只要使两端有足够的电压差便能转起来,一般给的电压为7v左右,把正负调转过来便能控制电机的正反转;

如果只是需要不让他一直转动,直接连接电池两端便可以;

如果为控制是否转动或者转速便需要用到电机驱动模块,下面会讲,它的两端与L298N的连接线为连接L298N的OUT1和OUT2或者OUT3和OUT4,这便需要看一下你的需求了。 

3.2编码器电机

顾名思义其与普通电机区别就是它有编码器,所以接口不只有两个,其有六个,如下图

其最外端两个相当于小黄电机的两个接口,第2个和第4个为霍尔编码器的供电端口,最中间的两个为编码器返回值计数的端口 

4.电机驱动模块

单片机的IO口确实能输出5V的电压,也确实是和电机的电压一样,但不要忽略IO口输出的电流,也就是驱动能力。IO口输出的电流太小了,根本带不动电机。所以需要电机驱动模块。

4.1 L298N

连线(L298N上标有相关字母,相关引脚以标的为准)

①.1、2、3、4分别为OUT1、OUT2、OUT3、OUT4 ,

1、2与一个电机相连接;3、4与一个电机相连接。

②.5为vcc即为外电源输入端

③.6为GND

④.当跳线帽连上时,7为5v输出,即可以给单片机供电 

⑤.8从左到右依次为ENA,IN1,IN2,IN3,IN4,ENB

ENA:电机A使能,需要控制速度时此端与单片机的PWM连接,不需要时把跳线帽插上,电机全速转动。

IN1,IN2:两端的电压差控制电机A正反转

IN3,IN4:两端的电压差控制电机B正反转

ENB:电机B使能,需要控制速度时此端与单片机的PWM连接,不需要时把跳线帽插上,电机全速转动。

4.2 TB6612

5. 舵机

5.1普通舵机 

连线:普通舵机有三个接口,最中间的是vcc,两端为GND和信号线(PWM) 

该舵机分为180°和360°,供电为5v,3.3v不能驱动

注意180°舵机改变pwm可以使其停下来,而360°舵改变pwm值只能使得转速改变,停不下来。 

该单轴舵机扭矩大,能承受的驱动电压也更大,不过一般也给5v,额定电压为4.8~6v不过给7v好像也不会烧

此为双轴舵机,额定电压也为4.8~6v 

5.2总线舵机

 

此为总线舵机,普通舵机的代码无法驱动单个总线舵机。 

6.PCA9685舵机驱动模块

连线

①最上端的绿色的两个引脚为外接电源的供电口,当使用多个舵机时需使用此供电口供电

②最左端的六个引脚:

OE为使能端口,默认不用接线,即低电平使能,

SCL、SDA为I2C所需要的引脚,

VCC为该模块供电,不能超过3.3v

V+为舵机供电口,多个舵机供电尽量不使用此供电口供电

③下端的引脚为16个舵机控制口,注意第一个编号为0.

7.超声波模块

8.MPU6050(陀螺仪) 

三、相关代码

见下一篇文章

  • 11
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值