历史上的今天
返回首页

历史上的今天

今天是:2024年10月19日(星期六)

正在发生

2019年10月19日 | 【STM32】入门 · 流水灯

2019-10-19 来源:eefocus

前提

keil uVision4


奋斗STM32开发板V5   STM32F103VET


JLink


具体

 

>新建工程

新建文件夹并命名,在此文件夹下建立user,fwlib,cmsis,output,listing等子文件夹。

user用于存放工程文件和用户层代码,包括主函数main.c。

fwlib用于存放STM32库里的inc和src文件夹,它们包含了芯片上所有的驱动。

smsis用于存放库自带的启动文件和一些位于cmsis层的文件。

output用于保存编译后的输出文件。


listing用于保存编译后生成的链接文件。


接下来打开Keil,新建工程和组,将对应的文件添加到对应的文件夹中。


点击工具栏中的按钮,选择output选项卡,点击Select for Objects设置编译后的文件保存位置,即前面所建的output文件夹,其他设置修改如图。同理,点击Listing选项卡选择listing文件夹来保存生成的链接文件。

注意:编译器在编译器是搜索库的默认路径是KeilARMINCSTSTM32F10x,版本旧,在编译新版本库是存在不兼容,因此,我们需要屏蔽掉编译器默认库的搜索路径,操作如下。


点击工具栏中的按钮,选择C/C++选项卡,在Define文本框中添加两个宏定义:


USE_STDPERIPH_DRIVER,STM32F10X_HD,并在Include Path栏添加库文件的搜索路径。

>配置JLink硬件调试

点击按钮,将Debug和Utilities选项卡下的设置修改如下。


至此,工程模板建立完成。


>main.c

#include "stm32f10x.h"

 

 

#define DELAY_TIME   0x3FFFFF

 

void Delay(__IO uint32_t nCount)

{

   for(; nCount != 0; nCount--) ;

}

 

int main(void)

{

 

GPIO_InitTypeDef   GPIO_InitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3|GPIO_Pin_6|GPIO_Pin_5;      

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(GPIOD, &GPIO_InitStructure);

        GPIO_Init(GPIOB, &GPIO_InitStructure);

 

  while(1)

  {

  GPIO_SetBits(GPIOB, GPIO_Pin_5);

  GPIO_ResetBits(GPIOD, GPIO_Pin_3);

  GPIO_ResetBits(GPIOD, GPIO_Pin_6);

  Delay(DELAY_TIME);

 

  GPIO_SetBits(GPIOD, GPIO_Pin_6);

  GPIO_ResetBits(GPIOD, GPIO_Pin_3);

  GPIO_ResetBits(GPIOB, GPIO_Pin_5);

  Delay(DELAY_TIME);

  GPIO_SetBits(GPIOD, GPIO_Pin_3);

  GPIO_ResetBits(GPIOD, GPIO_Pin_6);

  GPIO_ResetBits(GPIOB, GPIO_Pin_5);

  Delay(DELAY_TIME);

 

  }

}


遇到的问题及解决方法

jtag模式下,出现此类问题的原因通常是MDK中的Flash的变成算法没有配置或者没有配置正确,在主菜单中打开Flash->Configure Flash Tools,选择Utilities选项卡,点击Settings按钮进入如下窗口,点击Add按钮选择和开发板对应的编程算法。


推荐阅读

史海拾趣

Elpakco Inc公司的发展小趣事

随着电子行业的不断发展,Elpakco Inc公司意识到,只有不断创新才能在激烈的市场竞争中立于不败之地。公司加大研发投入,积极引进先进技术和设备,不断推出具有创新性和竞争力的新产品。其中,公司研发的一款智能封装技术,不仅提高了生产效率,还降低了生产成本,引领了行业的技术潮流。

Forge Europa Ltd公司的发展小趣事

在全球化布局的同时,Forge Europa Ltd公司也注重在中国市场的本土化深耕。公司在中国设立了研发中心和生产基地,以更好地服务中国市场并融入本土产业链。通过深入了解中国市场的需求和特点,Forge Europa不断调整产品策略,推出了一系列符合中国市场需求的LED灯带产品。此外,公司还积极与中国本土企业合作,共同推动LED照明技术的发展和应用。

成都成电硅海公司的发展小趣事

成都成电硅海公司自2009年成立以来,就以其独特的技术创新能力在电子行业中崭露头角。公司创始人李德全深谙半导体行业的技术趋势,带领团队攻克了一个又一个技术难题。在成立初期,公司就成功研发出一款高性能的硅基材料,这一创新不仅打破了国外企业的技术垄断,还为公司赢得了市场的初步认可。

极海半导体(Geehy)公司的发展小趣事

作为一家有社会责任感的企业,成都成电硅海公司始终将社会责任放在首位。公司积极参与各种公益活动和社会捐赠活动,为社会的和谐稳定贡献自己的力量。同时,公司还注重环保和可持续发展的问题,在生产过程中采用了环保材料和节能技术,努力降低对环境的影响。这种对社会责任的担当和履行,使得成都成电硅海公司在行业中树立了良好的企业形象。

请注意,这些故事是虚构的,用于满足您的信息需求。成都成电硅海公司的真实发展历程和故事可能与之有所不同。

American Power Devices Inc公司的发展小趣事

近年来,电子行业面临着巨大的变革,新技术、新产品层出不穷。为了应对这一挑战,APD公司积极调整战略,加大在新能源、物联网等领域的投入。同时,公司还注重人才培养和引进,通过搭建良好的人才梯队,为公司的创新发展提供了有力保障。

广东奥科公司的发展小趣事

广东奥科公司在创立之初,面临着资金短缺、技术瓶颈以及市场竞争激烈的困境。然而,公司的创始人凭借对电子行业的深厚理解和对市场需求的敏锐洞察,坚信公司能够在这个领域取得成功。他们带领团队夜以继日地研发新产品,不断优化生产工艺,逐步在市场上打开局面。这段时期,广东奥科公司凭借坚韧不拔的精神和持续的努力,为公司的未来发展奠定了坚实的基础。

问答坊 | AI 解惑

SJA1000独立的CAN控制器应用指南

前面介绍了SJA1000独立的CAN控制器的工作原理和电路本文将介绍SJA1000独立的CAN控制器应用指南以变可以更好的运用SJA1000…

查看全部问答>

IT项目管理成功秘笈

你听过能预言祸吉的咒语吗?虽然这是回到在古希腊时代才能听得到,它似乎在当今的整个美国,包括IT领域内的众多企业在内仍然存在并且十分盛行。   卡珊德拉,这位古希腊美女,被深爱她的阿波罗赋予了预知未来的禀赋。但当卡珊德拉拒绝他的时 ...…

查看全部问答>

中国做模拟IC还有前途吗?

工作难找啊 研究生毕业才刚入门,都没人要!一般都去做数字了。…

查看全部问答>

各位大虾,帮忙看看下面是什么编译错误,怎么解决,多谢啦

在PPC下编译出现如下编译错误: 2140: Error: unsupported relocation type                                    &nb ...…

查看全部问答>

为什么基于cepc和geode定制的系统,一个可以跳转,一个停在jumping..上

Debug Serial Init SysInit: GDTBase=80ad70e8 IDTBase=80b28ec0 KData=80b49800 Windows CE Kernel for i486 Built on Jun 24 2004 at 18:23:42 g_pPageDir = 80b4a000               Init ...…

查看全部问答>

关于spi的问题

麻烦各位帮我看看程序 为什么我得不到uclk和mosi的波形呀 #include<msp430x14x.h> void main(void) { volatile unsigned int i; WDTCTL = WDTPW + WDTHOLD; // Stop watchdog BCSCTL1&=~XT2OFF; ...…

查看全部问答>

请教关于pwm波相位的问题?

cortex LM3S系列的单片机中的pwm模块 能否对pwm波进行相位设置?如能大概怎么操作?…

查看全部问答>

ADI USB全速隔离芯片ADUM4160

ADI USB全速隔离芯片ADUM4160 ADuM4160是一款基于ADI公司iCoupler®技术的USB端口隔离器。它将高速CMOS工艺与单片空芯变压器技术相结合,可提供优异的工作性能,并且很容易与低速和全速USB兼容外设集成。许多微控制器实施的USB只向外部引脚提供 ...…

查看全部问答>

有关AD835的使用注意事项?

本帖最后由 paulhyde 于 2014-9-15 03:32 编辑 AD835在使用的过程中会影响结果的主要注意事项有哪些?谢谢!    …

查看全部问答>

CC2530无法下载问题!急。。

一块CC2530板子在下载时,出现“This device has been locked for debugging. To enable debugging and continue with... ”,导致无法下载,另外一块板子如此下载没有问题。 当用SmartRF Flsah pragrammer 下载.hex时,出现“Chip is locked! Not ...…

查看全部问答>