在STM32F103C8T6使用mbed OS 2操作系统编程方法

在某宝网站上用10元的价格就可以买到一个SMT32F103C8T6板。下来看一下这个板子的尊荣:
在这里插入图片描述

对这个板子是不是很熟悉?有了这个板子,MCU的爱好者可以充分发挥自己的想象力,但工程技术人员在开发时需要了解板子的配置等信息,比如在KEIL开发环境下要关注板子硬件的基本配置,要做时钟配置,串口配置,DMA配置等等,使用mbed OS 2的工程技术人员不用为MCU的硬件配置花费大部分的精力,可以全心关注应用。。这个板子有STM32F103C8T6微处理器。该处理器有与NUCLEO-F013RB兼容的平台。

处理器的特点:

  • STM32F103C8T6 LQF48 封装MCU
  • ARM®32-bit Cortex®-M3 CPU
  • 72 MHz max CPU frequency
  • VDD from 2.0 V to 3.6 V
  • 64 KB Flash
  • 20 KB SRAM
  • GPIO (32) with external interrupt capability
  • 12-bit ADC (2) with 10 channels
  • RTC
  • Timers (4)
  • I2C (2)
  • USART (3)
  • SPI (2)
  • USB 2.0 full-speed
  • CAN

注意,从应用的角度看这个板子的内存有限,使用mbed OS 2还略显可以,若使用mbed OS 5可能会在存储器收到限制。

板子特点

  • 小管脚布线
  • 电源供电灵活
  • 用户指示灯,LED1
  • 按钮复位:RESET
  • 编程和调试口
  • Micro-B USB 连接器

板子引脚图

在这里插入图片描述

最大抗难受电压值由Thor Sten提供,标记在接线管脚的旁边,以避免错接损坏器件。要了解详细管脚定义可以参见数据手册。

重要提示:

标记有蓝色/白色或者是绿色/白色(即PC_13, PB_9, A0, D14…)可以在代码中使用。其它的标签是作为信息提供的(可变功能,电源管脚)可以作为其他管脚使用:

LED1=PC_13 SERIAL_TX=PA_2 I2C_SCL=PB_8 SPI_MOSI=PA_7   PWM_OUT=PB3
           SERIAL-RX=PA_3 I2C_SDA=PB_9 SPI_MISO=PA_6
                                       SPI_SCK =PA_5
                                       SPI_CS  =PB_6

注意在板子上打印中省略了P字母和_字母,即A1代表的PA_1)。Arduino(绿色/白色)及其他名字的定义也在板子上没有指示出来。

还要注意在板子上的LED连接到了PC_13管教,是通过一个电子与3.3V电源连接的,要打开或关闭LED灯,需要分别输出0和1。

接线图

在这里插入图片描述

线路板接线图

在这里插入图片描述在这里插入图片描述
在网页上不能上载lbr或者是zip文件,所以eagle library的文件没有在这里直接标出,右击图形,点击save link as… 将png 或lbr文件保存到自己的硬盘。

实用mbed在线编辑器来创建STM32F103C8C8T6 board

像建立NUCLEO-F103RB board(在在线编辑器上选择NUCLEO-F103RB 作为目标板)或者是点击这里的链接倒入演示程序到在线编辑器。

#include "mbed.h"

Serial			pc(PA_2, PA_3);	// TX, RX
DigitalOut		myled(PC_13);

int main()
{
    
    
		while(true)
		{
    
    
			// The on-board LED is connected via a resistor to 3.3V
			// (not to GND
			// So the LED is active on 0

			myled = 0;				// turn the LED on
			wait_ms(200);		// wait 200 millisecond
			myled = 1;				// turn the LED off
			pc.printf("Blink\r\n");
			wait_ms(1000);		// wait 1000 millisecond
		}
	}

从上面的程序可以看出,在这个程序中没有了开始的串口配置,时钟配置和总线配置等,直接使用mbed OS 2库函数来编写应用程序。为系统开发省略了大量的时间。

注意:

始终记住,编译器只检查128kB作为flash的极限,而STM32F103C8T6只安装了64kB,尽管在买这个板子的时候会标记为128kB,但实际只是销售64kB版本的板子。当编译完成后,可以检查编译后的详细情况。注意看是否超过了flash 64kB的尺寸。

在这里插入图片描述

为STM32F103C8T6板子编程

NUCLEO ST-LINK/V2-1 拖放

可以利用NUCLEO 虚拟盘作为STM32F103C8T6板子(拖放编程)。要实现的话,需要一个NUCLEO板子(任何具有ST-LINK/V2-1的板子都可以实现)。

  • 去除CN2上的短接线,如图8所示:
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

  • 连接NCCLEO板子的CN4到STM32F103C8T6板,用飞线连接如下:
NUCLEO board STM32F103C8T6 STM32F103C8T6
CN4 connector debug connector board
SWCLK <=> DCLK
GND <=> GND
SWDIO <=> DIO
NRST <=>RESET
  • 为板子STM32F103C8T6板子提供3.3V和5V电源。可以用USB电缆提供(VDD_TARGET的管脚不能提供电源)。
  • 用PC的USB电缆连接NUCLEO板子。
  • 为STM32F103C8T6编程,点击Compiler编译并将编译的结果存放在NUCELO虚拟磁盘。要查看实用ST-LINK/V2-1来编辑和调试STM32应用,参见用户手册的章节6.2.4

ST_Link V2 USB dongle及STM32 ST-LINK实用程序

如果希望使用ST-Link V2 USB加密狗(aka ST-Link V2编程单元)来为上面的板子进行同样的连接及编程。如果没有安装ST-Link/V2驱动器的话,需要将ST-Link V2的加密狗连接到PC。点击编辑按钮并将程序存储到自己就地盘,然后运行STM32 ST-LINK uitility。当程序运行以后,打开二进制文件。点击Program verify按钮。

在这里插入图片描述

总结

文件翻译完了,手头上没有NUCELO板子,只有一个STM32F103C8T6的板子和一个ST-LINK V2,实验结果会报告大家!

板子进行了试验,完全可以下载和执行程序。还没有试验串口通讯,要添加一个设备再试验一下。有结果通报大家!

这里是实验结果

程序可以编译,下载后按F5可以运行某宝的STM32F103C8T6板子,但还是有问题,当第二次掉电上电后按复位键也不能使控制器启动起来,多次上电有时候能启动,但------,哎,never easy,这就是MCU。很伤心,不知道是哪里出了问题。有知道的高手请指点一下。如果这个板子行就进入实战状态了!

采用我的调试器CH340与程序的串口连接,通讯正常!

猜你喜欢

转载自blog.csdn.net/weixin_44481398/article/details/90737445