台州网站注册 公司,同一ip网站,厦门关键词优化企业,新品发布会致辞稿个人学习笔记
文件路径#xff1a;程序源码\STM32Project-DAPDAPmini\1-1 接线图 3-1LED闪烁图片 新建项目 新建项目文件 选择F103C8芯片 关闭弹出窗口 拷贝资料
在项目内新建3个文件夹
Start、Library、User Start文件拷贝
从资料中拷贝文件
文件路径#xff1a;固…个人学习笔记
文件路径程序源码\STM32Project-DAPDAPmini\1-1 接线图 3-1LED闪烁图片 新建项目 新建项目文件 选择F103C8芯片 关闭弹出窗口 拷贝资料
在项目内新建3个文件夹
Start、Library、User Start文件拷贝
从资料中拷贝文件
文件路径固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm
全部复制到“Start”文件内 再复制stm32f10x.h、system_stm32f10x.c、system_stm32f10x.h三个文件到“Start”文件夹下
文件路径固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x 复制core_cm3.c、core_cm3.h到“Start”文件夹下
文件路径固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport Library文件拷贝
全部复制到Library文件夹内
文件路径固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver\src 全部复制到Library文件夹内
文件路径固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver\inc Library文件复制完毕 User文件拷贝
复制main.c、stm32f10x_conf.h、stm32f10x_it.c、stm32f10x_it.h三个文件到“User”文件夹内
文件路径固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template 项目配置
把默认组叉掉新建3个组Start、Library、User 选中Start添加.c、.h结尾的文件、startup_stm32f10x_md.s文件 把Library文件夹内的文件全部添加到组里 把User文件夹内的文件全部添加到User组里 添加文件夹到文件路径在Define输入USE_STDPERIPH_DRIVER Debug——Use选择
根据接口选择ST-Link Debuger或者CMSIS-DAP Debuger 点击Settings——Flash Download——勾选Reset and Run 编写代码测试
点main.c文件清空里面内容添加头文件 添加主函数main #include stm32f10x.h // Device headerint main(void)
{while(1){}
}编译测试
出现多个禁告 查到报错原因是版本号应选择5 修改后运行正常 点击下载测试也没有报错 批处理工具
keilkill.bat复制到项目文件中
作用把工程编译产生的中间文件删除 文件路径程序源码\STM32Project-DAPDAPmini\1-2 keilkill批处理 此时项目工程有20多MB其中占用空的是Listings、Objects两个文件夹其中都是工程的中间文件 双击“keilkill.bat”文件会将中间文件删除Listings、Objects两个文件夹被清空此时项目只有2MB 点亮LED
操作STM32的GPIO有3个步骤涉及RCC和GPIO两个外设
1、使用RCC开启GPIO时钟
2、使用GPIO_Init函数初始化GPIO
3、使用输出或者输入的函数控制GPIO口 在Library文件中stm32f10x_rcc.c、stm32f10x_gpio.c 开启时钟
复制RCC中的RCC_APB2Periph_GPIOA到main函数中
取RCC.h中的时钟控制函数RCC_APB2PeriphClockCmd到main函数中右键跳转到定义 报错是因为删除了中间文件重新点击build即可正常跳转 因为点亮PA0口LED
第一个参数选择RCC.c文件中间的“RCC_APB2Periph_GPIOA”
第二个参数ENABLE
时钟开启
#include stm32f10x.h // Device headerint main(void)
{RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);while(1){}
}取gpio.h中的GPIO_Init函数复制到main函数中右键跳转定义 第一个参数GPIOxx改为A
第二个参数是一个结构GPIO_InitTypeDef
GPIO_InitTypeDef GPIO_InitStruct;
GPIO_InitStruct.GPIO_Mode ;
GPIO_InitStruct.GPIO_Pin ;
GPIO_InitStruct.GPIO_Speed ; 先生成空结构体再右键跳转查看函数说明复制参数 选择“GPIOMode_TypeDef”ctrl F搜索 看到GPIO的8种工作模式
typedef enum
{ GPIO_Mode_AIN 0x0, // 模拟输入GPIO_Mode_IN_FLOATING 0x04, // 浮空输入GPIO_Mode_IPD 0x28, // 下拉输入GPIO_Mode_IPU 0x48, //上拉输入GPIO_Mode_Out_OD 0x14, // 开漏输出GPIO_Mode_Out_PP 0x10, // 推挽输出GPIO_Mode_AF_OD 0x1C, // 复用开漏GPIO_Mode_AF_PP 0x18 // 复用推挽
}GPIOMode_TypeDef; 无完待续 参考资料
[3-2] LED闪烁LED流水灯蜂鸣器_哔哩哔哩_bilibili