就是stm32f103精英开发板V2,从以下地址下载资料即可,不再赘述。
OneOS可以参考
https://os.iot.10086.cn/v2/doc/detailPage/documentHtml?proId=2000000000&proName=OneOS&idss=699&versionName=v3.0.1&versionId=3000000012

我这里使用MDK5.36,仿真器PWLINK2.
安装STM32F1的包,我这里已经安装

新建工程
Project->New uVision Project...
指定路径工程名保存

指定芯片

选择组件

标准外设库下全选

File->New
输入如下内容
int main(void)
{
while(1);
}
Ctrl +s保存为main.c

右键点击Source Group1 ->Add Existing Files to Group Source Group1...

添加刚才创建的main.c然后close

C:\Users\qinyu\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Source\ARM下的startup_stm32f10x_hd.s复制在工程目录,去除只读属性,同样的再添加进来

选择编译器为ARM编译器

点击编译没有问题

右键店家Target 1->Options...

配置存储范围


配置仿真器

确认识别到芯片

确认烧录算法已添加

点击如下图标下载进入仿真环境

下载完自动停在了main函数处

此时即可进行仿真了,以上就完成了开发环境的搭建。
原理图中可以看到LED0和LED1对应PE5和PB5

编写如下测试代码
注意要先使能模块时钟
#include "stm32f10x_conf.h"
void delay(int tout)
{
volatile int t = 10000;
for(int i=0; i<tout; i++)
{
t = 10000;
while(t--);
}
}
int main(void)
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE,ENABLE);
GPIO_InitTypeDef GPIO_InitStruct;
GPIO_StructInit(&GPIO_InitStruct);
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_5;
GPIO_InitStruct.GPIO_Speed =GPIO_Speed_50MHz;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOE, &GPIO_InitStruct);
GPIO_Init(GPIOB, &GPIO_InitStruct);
while(1)
{
GPIO_SetBits(GPIOB, GPIO_Pin_5);
GPIO_ResetBits(GPIOE, GPIO_Pin_5);
delay(100);
GPIO_SetBits(GPIOE, GPIO_Pin_5);
GPIO_ResetBits(GPIOB, GPIO_Pin_5);
delay(100);
}
}
下载运行可以看到LED0和LED1红色黄色交替闪烁。
如下短接,使用USB


下载安装CubeMx




使能USB

使能HSE

使能UAC设备

时钟配置


工程配置

生成


保存工程

编译


插入USB可以识别到设备

MDK
不错不错