stm32学习笔记(如何新建一个工程)
第一步新建一个文件夹用来装stm32工程方便以后学习
我新建的文件夹为stm32porjocte,以后的工程都存在这个文件夹下方便管理
第二步进行kill文件的操作
1点击prpject创建一个新的工程
把工程放在文件夹里
下面选择器件型号
我们选择的是stm32f103c8t5,所以这里选择时tm32f103c8这个
然后点击ok后悔弹出keil一个新建工程的小助手,这个可以帮助我们新建工程
直接把他X掉
然后在电脑打开 D:\stm32学习\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm复制里面的的文件挺好添加到新建的stm32project里面然后命名为star
第一个点H是和51单片REGx52.h是一样的 。system主要是用来配置时钟的,把文件复制下来添加到star文件里
然后需要添加连个CM3(cortex-M3)文件就是内核的寄存器描述一起加入到新建star文件夹下到这我们工程复制的那些必要文件就完成了
第三步将刚刚复制的文件添加到工程里去
先打开keil5然后点击
将他改名为star然后添加工程文件里
然后打开魔术棒按键
打开工程选项,在c/c++里
然后点击includepaths栏,然后点击右边三个点
然后在点三个点,把star的路劲添加进来
这样就把头函数添加进来了,
随后在尅了在target这里右键,点击添加组改个名字叫user
然后添加C文件ps 记得添加在user文件夹里否则会建在外面
然后在c文件里插入头文件选择stn32f10x.h文件,然后写一个while循环
int main (void)
(
whikle(1)
{
}
}
记住最后一行需要空行否则会报警
小知识;打开 小扳手将enconding改为utf8否则中文显示会出问题
接下来把STLIK和4根母对母杜邦线把3.3V swdio swclk gnd对应连接好
插上电脑后电源灯会常亮
连接在pc13接口是的灯默认一个是闪烁状态,这是芯片的一个测试程序
接下打开魔术棒
选择debug然后选择stlinkdebugger
然后点击settings
把resst and run沟上,之后我们下载程序会立马执行
然后点击load如果要求正常的话,这个程序就会下载到stm32里面
第三步配置经寄存器点灯
配置寄存器比较麻烦但是还是需要聊一
首先是Rcc的寄存器来使能gpioc的时钟,需要在apb2外设使能集翠成裘RCC-APB2ENR里面的配置
然后第二个寄存器我们需要配置一下PC13口的模式
寄存器还是不太方便
4库函数操作点灯
首先建立以后library的文件夹
然后打开函数库
将两个都复制在library里面
在添加一个library文件夹里添加前面复制的库函数
现在还不能直接使用我们还需要添加一个文件
将这 3个文件放到USER里
最后添加到user里面
然后打开
找到条件编译语句
将条件编译字符串复制到define顺手添加路径
这里面有两个参数第一个是选择外设第二个是选择新的状态
下面是写法的一句一句解析
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);//使能apb2的时钟
GPIO_InitTypeDef GPIO_InitStructure;//声明一个结构体,名字是GPIO_InitStructure,结构体原型由GPIO_InitTypeDef 确定,
stm32里面初始化GPIO用的。设置完了GPIO_InitStructure里面的内容后
在GPIO_Init (GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_InitStruct)里面调用,
比如初始化pa口,就是
GPIO_Init (GPIOA, &GPIO_InitStructure),括号里后面那个就是你问题里面声明的那个结构体
GPIO_InitStructure.GPIO_Mode =GPIO_Mode_Out_PP;
GPIO结构体:
typedef struct
{
uint16_t GPIO_Pin; //选择管脚,是你想用到的管脚
GPIOSpeed_TypeDef GPIO_Speed; //选择速度 可选2M 10M 50M
GPIOMode_TypeDef GPIO_Mode; //输入输出的8种模式,这要根据外电路和作用选择
}GPIO_InitTypeDef;
GPIO_SetBits(GPIOC,GPIO_Pin_13);//开灯
GPIO_ResetBits(GPIOC,GPIO_Pin_13)//关灯
stm32学习笔记(如何新建一个工程)相关推荐
- STM32学习笔记——MDK新建项目
STM32学习笔记 KIEL新建项目过程 文章目录 STM32学习笔记 前言 一.keil新建库函数版本项目 二.注意事项 1.文件分类 2.MDK配置 总结 前言 此处使用寄存器版,进行学习.后期看 ...
- CSR8675学习笔记:新建一个GATT server
为了让CSR867x的开发更容易,现与思度科技联合推出CSR867x学习板[淘宝链接:思度科技CSR开发板]. 技术交流QQ群号:743434463 开发板会员QQ群号:725398389(凭订单号入 ...
- stm32学习笔记----双串口同时打开时的printf()问题
stm32学习笔记----双串口同时打开时的printf()问题 最近因为要使用串口2外接PN532芯片实现通信,另一方面,要使用串口1来将一些提示信息输出到上位机,于是重定义了printf(),使其 ...
- STM32学习笔记(四)丨TIM定时器及其应用(定时中断、内外时钟源选择)
本篇文章包含的内容 一.TIM 定时器 1.1 TIM 定时器简介 1.2 TIM 定时器类型及其工作原理简介 1.2.1 基本定时器工作原理及其结构 1.2.2 通用定时器工作原理及其结构 1.2. ...
- MyBatis学习笔记2 ——第一个MyBatis程序
MyBatis学习笔记2 --第一个MyBatis程序 参考教程B站狂神https://www.bilibili.com/video/BV1NE411Q7Nx 环境搭建 建立一个mybatis数据库用 ...
- STM32学习笔记(六)丨TIM定时器及其应用(输入捕获丨测量PWM波形的频率和占空比)
本篇文章包含的内容 一.输入捕获 1.1 输入捕获简介 1.2 输入捕获通道的工作原理 1.3 输入捕获的主从触发模式 1.4 输入捕获和PWMI结构 二.频率的测量方法 2.1 测频法 2.2 测周 ...
- STM32学习笔记(八)丨ADC模数转换器(ADC单、双通道转换)
本篇文章包含的内容 一.ADC 模数转换器 1.1 ADC简介 1.2 逐次逼近型ADC工作原理 1.3 STM32中的ADC基本结构 1.4 STM32中ADC的输入通道 1.5 STM32中的AD ...
- STM32学习笔记1-软件安装
收到自己买的STM32F103ZE为主芯片的开发板,标志着我正式进入实践阶段,之前看了不少ARM的资料,都是零零散散的,也没有什么系统的总结,总觉得找到真正的感觉,就下决心买开发板,至于为什么选择ST ...
- 《STM32学习笔记》2——开发环境的建立
接上文,文中的图片知识,大多数来自视频的截图(来自洋桃电子). 欢迎大家批评指正! STM32学习笔记-专栏 文章目录 一.接口定义 1 芯片引脚整体简介 2 各部分引脚介绍 二.开发板简介 三.IS ...
- STM32学习笔记(三)丨中断系统丨EXTI外部中断(对射式红外传感器计次、旋转编码器计次)
本篇文章包含的内容 一.中断系统 1.1 中断的定义 1.2 中断优先级 1.3 中断的嵌套 1.4 STM32中的中断系统 1.4.1 STM32的中断资源 1.4.2 嵌套中断向量控制器 NVIC ...
最新文章
- 【转】并行计算、分布式计算、集群计算和云计算
- batch normalization的原理和作用_springboot自动配置原理
- Hive安装MySql
- 物联网中使用的常见通信技术
- 函数宏定义 与函数自定义
- 算法在岗3年小结:学习成长篇
- 《基本无害的计量经济学》第二章:选择性偏误与随机实验
- android基础的博客,【复习】Android基础
- 【Linux】更改登陆时显示的账号名称
- 2021年3月7日 蚂蚁金服的OceanBase Java后端开发实习面经(一面)
- How to become a hacker 译文(如何成为一名黑客)
- JVM-内存与垃圾回收篇!女朋友看了都想当架构师的超详细保姆级笔记!呕心沥血之作!看完还不会你砍我!
- schedule_delayed_work()
- 深入浅出PaddlePaddle函数——paddle.ones_like
- STM32CubeIDE 利用LL库 SysTick简单实现hcsr04超声波测距
- 区块链游戏项目(战舰游戏)基于layer2区块链技术,使用以太坊的solidity语言, 含全栈完整源码
- selenium实战 登录后菜单作业分享(白月黑羽网站selenium自动化学习)
- WPS表格打印的时候有非常多的空白页应该怎么办?
- LeetCode 416 分割等和子集
- 雪后看疫情:一切能否变得更加清澈而透明?
热门文章
- TGI关联指数 + Python
- 【MyBatis】各种查询功能
- 滑模控制学习笔记(五)
- 那些年•我们读过的专业书籍
- 从永远到永远-Oracle的PL/SQL学习(存储过程学习)
- C++组件测试及应用 — 基于Tessy的测试技术漫谈
- promql中使用rate/irate等函数__name__丢失处理
- 【项目2:电机控制项目】 之 【6.硬件 - 检测系统电流】
- bootstrapValidator验证 表单验证通过但无法提交form的原因
- 118358-38-6,Fmoc-L-Ser(β-D-Glc(Ac)4)-OH,葡萄糖丝氨酸的纯度以及结构式介绍