【STM32F303开发】+ 非CubeKeil环境搭建&简易点灯——by shadow丶
感觉上最能锻炼的能力的还是使用Keil!寄存器各种映射,如果要实现功能mbed固然不错,不过要是作为学习Keil寄存器也是不错的0.0本教程献给有兴趣有时间的朋友,帮你简单如个门
本人小白,教程过于简单0.0大牛勿喷!!!
想快速开发的坛友可以使用mbed:
【STM32F303开发】+ 失败的固件升级&点灯——by shadow丶
https://www.stmcu.org.cn/module/forum/forum.php?mod=viewthread&tid=602253&fromuid=2072898
下面开始把,首先安装keil
安装包在keil官网就可以下载到
keil官网:http://www.keil.com/
MDK5.15:http://www.keil.com/demo/eval/arm.htm#DOWNLOAD
懒人通道度盘:链接:https://pan.baidu.com/s/1gd4bEoz 密码:3wnu
PS:要是不好使及时向楼主反映/呃要不就勤快下去官网下0.0
破解:
PS:本人试过好使不过软件得以管理员身份运行0.0才可以通过验证
安装就不说了 网上教程一堆一堆的0.0
下面搭建环境走起
1.首先你需要下载STM32F303的固件库
单击下
要是第一次使用 先更新下0.0
下载相关0.0
2.开始我们环境的搭建
Project -> New uVision Project
选择芯片可以观察我门的板子上是RET6,我们选择RE
我们勾选CMSIS项目中的CORE 和 Device项目中的Startup
最少要勾选这两项,
这样一个空的工程就建立好了。
3.我门再新建一个Main的文件
4.做些设置
是否生成Hex文件(后来发现貌似拖拽hex文件不好使0.0反正bin是好使)
呃这里得注意下添加头文件路径这两路径都是有头文件的0.0
设置一下硬件仿真0.0
5.main中输入以下代码
最有在main文件中记得主函数最后要在括号外有个回车 不然会报错
一个空白工程已经建立完成下面我们简单的控制下io口
看看F303 的电路图
PS:每次都是低电平点灯0.0也不用注意什么上下拉0.0这个。。。
PS:还有坑爹的为啥就没有中文的f3手册呢0.0
https://www.stmcu.org.cn/module/forum/forum.php?mod=image&aid=345641&size=300x300&key=58d3e27706ae6fae&nocache=yes&type=fixnone
首先打开PA时钟的使能0.0
可以看见在17位。。。
PS:妹的和F1完全不一样。。。
我们写语句:RCC->AHBENR |= 1<<17;
PS:注意如果不用位操作有可能直接死机0.0楼主开始写的就是
RCC->AHBENR = 0x00020000;然后编译莫问题0.0一下子程序就不好使了
STlink 无法读取芯片!
解决办法:下个Bin文件就好了0.0
看看IO的寄存器把
GPIOA->MODER |= 1<<10;
GPIOA->OSPEEDR |= 1<<10;
GPIOA->PUPDR |= 1<<10;
好了总算到最后一个寄存器了0.0
这个和f1一样0.0
GPIOA->ODR |= 1<<5;
给个高电平0.0
PS:坑爹的英文文档,为啥以前就没好好学英语啊0.0要不然 不至于这么费劲
然后编译下载
出现这些说明我们的设置没有问题
效果就led常亮
#include <stm32f303xe.h>
int main() {
RCC->AHBENR |= 1<<17;
GPIOA->MODER |= 1<<10;
GPIOA->OSPEEDR |= 1<<10;
GPIOA->PUPDR |= 1<<10;
GPIOA->ODR |= 1<<5;
}
沙发自己座有问题补充用 多谢分享。。。。 感谢分享,看到了床单,这是直接在床上搞起了啊。
使能某个外设的时钟肯定不能直接对RCC寄存器这样赋值,RCC->AHBENR = 0x00020000;这会导致其他的外设的时钟被关闭。但是即使这样写了,也不会导致Stlink连不上吧。 看看什么效果, creep 发表于 2015-6-21 17:22
感谢分享,看到了床单,这是直接在床上搞起了啊。
使能某个外设的时钟肯定不能直接对RCC寄存器这样赋值,RC ...
呃算是把0.0 回家了就自由两天0.0嘿嘿 对单独RCC的赋值没事 然后再调用后面控制引脚的寄存器STlink直接就变黄灯了 总共就用这么及个寄存器0.0于是就跪了0.0从新刷个bin文件才好的
mark0668 发表于 2015-6-21 18:46
看看什么效果,
呃效果就是灯常亮啊没加延时 主要就是搭建下环境0.0
点灯是为了证明环境好使 creep 发表于 2015-6-21 17:22
感谢分享,看到了床单,这是直接在床上搞起了啊。
使能某个外设的时钟肯定不能直接对RCC寄存器这样赋值,RC ...
不过很奇怪keil的库 没有STM32f3的库吗? 还是必须cube建? shadow丶 发表于 2015-6-21 19:41
不过很奇怪keil的库 没有STM32f3的库吗? 还是必须cube建?
STM32F30x系列标准外设库
STM3F303HAL底层驱动 shadow丶 发表于 2015-6-21 19:37
呃算是把0.0 回家了就自由两天0.0嘿嘿 对单独RCC的赋值没事 然后再调用后面控制引脚的寄存器ST ...
只进行RCC->AHBENR = 0x00020000;操作肯定不会导致Stlink杯具的,不知道你是不是还进行了其他的操作,如果方便的话把错误的设置分享出来,也避免其他人掉坑里!