STM32
登录
直播中
李鸿洋
11年用户
998经验值
擅长:可编程逻辑
私信
关注
[问答]
先手求助如何去新建一个stm32f103zet工程呢
开启该帖子的消息推送
芯片
STM32F10x
如何去新建一个
STM32
f103zet工程呢?如何对stm32f103zet工程进行
仿真
调试呢?
回帖
(1)
柴扉
2021-11-29 14:25:42
1、新建项目、选型stm32f10x的芯片。
下面是芯片的介绍
新建后如下
2、添加组,在组中添加相应的文件。
新建完项目后添加组,添加CODE,USER,STM32LIB。
在工程目录下创建相应的文件夹,在文件夹中添加相应的代码文件。
2.1 CODE组中加入core_cm3.c内核核心文件、startup启动文件。
startup启动文件是汇编文件,其中有一语句:IMPORT SystemInit。SystemInit()函数写在了system_stm32f10x.c文件中。
2.2 USER组中加入main.c主函数文件、stm32f10x.it.c中断文件,system_stm32f10x.c系统初始化文件。
main.c中要写一个int main(void){return 0;}的空函数
stm32f10x.it.c中断文件,其中定义了各种中断服务函数。
startup_stm32f10x_hd.s文件中,调用了一个叫SystemInit的函数,该函数其实在system_stm32f10x.c中定义,旨在初始化系统时钟、初始化外部SRAM、设置中断向量表地址。
2.3 STM32LIB组中加入需要使用到的库函数
注意:使用库函数得在C/C++中Define添加一语句。(暂不知缘由)
STM32F10X_HD,USE_STDPERIPH_DRIVER
2.4 包含头文件的路径
选择头文件所在的文件夹
3、build或rebuild构建项目,看是否有错误。
无error,warning 由main.c的函数代码的wile(1)造成的,可略。
4、使用软件仿真,观察现象。
4.1main.c输入代码,并且rebuild项目。
#include "stm32f10x.h"
int main(void)
{
GPIOA->CRL = 0x03;//0x00000033前面的零是可以省略的
GPIOA->CRH = 0x03;
while(1)
{
if((GPIOA->IDR&0x0100) == 0x0100)
GPIOA->ODR |= 0x0001;
else
GPIOA->ODR &= 0x0000;
}
}
4.2 修改debug设置。
在Debug那个选项卡里,我们选择Use Simulator,使用软件进行调试
修改Dialog.DLL,Parameter。
DARMSTM.DLL,-pSTM32F103ZE TARMSTM.DLL,-pSTM32F103ZE
4.3 进入调试。
i.启动调试
设置完毕后,我们可以在菜单栏找到这个放大镜的图标,点击启动调试.
ii.步进观察现象。
进入到调试界面。
可以看到程序已进入正常的调试模式运行,这个时候程序是不会自动的去运行的,需要我们点击下一步的按钮才会一步一步的去执行。
在外设中选择GPIOA.
弹出GPIOA的相关外设调试窗口。
点击步进,执行一条语句。
可以观察到CHL发生了改变。
继续按步进,根据自己的代码观察仿真结果。
工程代码连接:keil5stm32f10x软件仿真工程
iii.其他
我们点击菜单栏的watch图标,可以选择一个查看窗口,我们这里选择watch1就好了
在这里可以查看任意变量的值,你可以在下面输入你想查看的变量回车就好了方便我们追踪发现错误
在软件的最左边是寄存器的变量值,方便我们随时查看寄存器值是否正确在上面的菜单栏那一行
第一个是复位按钮,按下后程序会进行复位操作
第二个直接运行,就像我们平时一样,程序自动的由上自下的运行,一般我们都会加断点进行调试加断点直接双击当前行就可以了
第三个X是停止运行
后面的都是单步运行,具体的进入或跳出请看图示
1、新建项目、选型stm32f10x的芯片。
下面是芯片的介绍
新建后如下
2、添加组,在组中添加相应的文件。
新建完项目后添加组,添加CODE,USER,STM32LIB。
在工程目录下创建相应的文件夹,在文件夹中添加相应的代码文件。
2.1 CODE组中加入core_cm3.c内核核心文件、startup启动文件。
startup启动文件是汇编文件,其中有一语句:IMPORT SystemInit。SystemInit()函数写在了system_stm32f10x.c文件中。
2.2 USER组中加入main.c主函数文件、stm32f10x.it.c中断文件,system_stm32f10x.c系统初始化文件。
main.c中要写一个int main(void){return 0;}的空函数
stm32f10x.it.c中断文件,其中定义了各种中断服务函数。
startup_stm32f10x_hd.s文件中,调用了一个叫SystemInit的函数,该函数其实在system_stm32f10x.c中定义,旨在初始化系统时钟、初始化外部SRAM、设置中断向量表地址。
2.3 STM32LIB组中加入需要使用到的库函数
注意:使用库函数得在C/C++中Define添加一语句。(暂不知缘由)
STM32F10X_HD,USE_STDPERIPH_DRIVER
2.4 包含头文件的路径
选择头文件所在的文件夹
3、build或rebuild构建项目,看是否有错误。
无error,warning 由main.c的函数代码的wile(1)造成的,可略。
4、使用软件仿真,观察现象。
4.1main.c输入代码,并且rebuild项目。
#include "stm32f10x.h"
int main(void)
{
GPIOA->CRL = 0x03;//0x00000033前面的零是可以省略的
GPIOA->CRH = 0x03;
while(1)
{
if((GPIOA->IDR&0x0100) == 0x0100)
GPIOA->ODR |= 0x0001;
else
GPIOA->ODR &= 0x0000;
}
}
4.2 修改debug设置。
在Debug那个选项卡里,我们选择Use Simulator,使用软件进行调试
修改Dialog.DLL,Parameter。
DARMSTM.DLL,-pSTM32F103ZE TARMSTM.DLL,-pSTM32F103ZE
4.3 进入调试。
i.启动调试
设置完毕后,我们可以在菜单栏找到这个放大镜的图标,点击启动调试.
ii.步进观察现象。
进入到调试界面。
可以看到程序已进入正常的调试模式运行,这个时候程序是不会自动的去运行的,需要我们点击下一步的按钮才会一步一步的去执行。
在外设中选择GPIOA.
弹出GPIOA的相关外设调试窗口。
点击步进,执行一条语句。
可以观察到CHL发生了改变。
继续按步进,根据自己的代码观察仿真结果。
工程代码连接:keil5stm32f10x软件仿真工程
iii.其他
我们点击菜单栏的watch图标,可以选择一个查看窗口,我们这里选择watch1就好了
在这里可以查看任意变量的值,你可以在下面输入你想查看的变量回车就好了方便我们追踪发现错误
在软件的最左边是寄存器的变量值,方便我们随时查看寄存器值是否正确在上面的菜单栏那一行
第一个是复位按钮,按下后程序会进行复位操作
第二个直接运行,就像我们平时一样,程序自动的由上自下的运行,一般我们都会加断点进行调试加断点直接双击当前行就可以了
第三个X是停止运行
后面的都是单步运行,具体的进入或跳出请看图示
举报
更多回帖
rotate(-90deg);
回复
相关问答
芯片
STM32F10x
如何
去
实现基于
STM32F103ZET
的SG90舵机控制
呢
2021-11-19
1592
STM32F103ZET
与
STM32F103
VET区别
2014-05-15
6199
如何
去
实现
一
种基于
STM32F103ZET
6设计的简易示波器
呢
2021-11-15
2135
如何
去
搭建
STM32F103ZET
6的keil
工程
2021-09-29
1326
为什么LWIP移植-
STM32F103ZET
后temp
一
直为0XFF?
2019-08-21
1896
如何用
STM32F
407
去
新建
一
个
工程
模板
呢
2021-11-25
1869
为什么
STM32F103ZET
定时器TIM1无法输出6路PWM
呢
2021-12-14
3072
怎样
去
新建
一
种
STM32F103
C8T6
工程
呢
2021-12-01
1668
怎样用GD32
F103ZET
6替换
STM32F103ZET
6芯片
呢
2021-10-22
5156
怎样
去
新建
stm32
cube
工程
呢
2021-10-09
833
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分