就是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
不错不错