历史上的今天
返回首页

历史上的今天

今天是:2024年10月08日(星期二)

正在发生

2018年10月08日 | STM32F103ZEGPIO口的配置以流水灯为例

2018-10-08 来源:eefocus

设置步骤:

1.使能外设时钟如PA,PB,PE.

2.设置成所需状态。这里是推挽输出 50Khz速率

3.设置输出状态,是高电平还是低电平。可用ODR,BSRR,BSR均可设置。

代码如下:

#include “stm32f10x.h”

extern void Stm32_Clock_Init(u8 PLL);


void delay(u32 t)//简单延时函数,减计数

 {

     for(;t>0;t--);

 }

void XYDRCC_DeInit(void) //复位时钟函数,一般可省略不写

 {

     RCC->APB1RSTR = 0x00000000;//复位APB1外设复位寄存器

     RCC->APB2RSTR = 0x00000000; //复位APB2外设复位寄存器

     RCC->AHBENR = 0x00000014; //使能睡眠模式闪存和SRAM时钟,其他关闭

     RCC->APB1ENR = 0x00000000; //APB1外设时钟关闭

     RCC->APB2ENR = 0x00000000; //APB2外设时钟关闭

     RCC->CR |= 0x00000001;     //内部高速时钟使能 HSION置1

     RCC->CFGR &= 0xF8FF0000;

     //复位SW[1:0],HPRE[3:0],PPRE1[2:0],PPRE2[2:0],ADCPRE[1:0],MCO[2:0] 

     RCC->CR &= 0xFEF6FFFF;     //复位HSEON,CSSON,PLLON

     RCC->CR &= 0xFFFBFFFF;     //复位HSEBYP    

     RCC->CFGR &= 0xFF80FFFF;   //复位PLLSRC,PLLXTPRE,PLLMUL[3:0],USEPRE

     RCC->CIR = 0x00000000;     //关闭所有中断

  }

void Stm32_Clock_Init(u8 PLL)//倍频后,把PLL作为系统时钟

 {

     unsigned char temp=0;   

     XYDRCC_DeInit();  

     RCC->CR|=0x00010000;// 外部高数时钟使能 HSEON置1

     while(!(RCC->CR&0x01<<17));//等待外部时钟就绪

     RCC->CFGR=0X00000400;//APB1=DIV2;APB2=DIV1;AHB=DIV1; 

     PLL-=2;//111表示9,PLL-2

     RCC->CFGR|=PLL<<18;//设置为9倍 

     RCC->CFGR|=1<<16;//PLLSRC ON 

     FLASH->ACR|=0x32;//FLASH2个延时周期

     RCC->CR|=0x01000000;//PLLON 

     while(!(RCC->CR&0x01<<25));//等待PLL锁定

     RCC->CFGR|=0x00000002;//PLL作为系统时钟

     while(temp!=0x02) //等待PLL作为系统时钟,设置成功

      {   

           temp=RCC->CFGR>>2;

           temp&=0x03;

      }    

 }

int main()

 {

     Stm32_Clock_Init(9);

     RCC->APB2ENR=(1<<2)|(1<<3)|(1<<6);//使能PA,PB,PE时钟

     GPIOA->CRL&=~(0xf<<(4*5));//复位PA5

     GPIOA->CRL|=0x03<<(4*5);//PA5配置成推挽输出,50Mhz速率

     GPIOA->CRL&=~(0xf<<(4*6));//复位PA6

     GPIOA->CRL|=0x03<<(4*6);//PA6配置成推挽输出,50Mhz速率

     GPIOB->CRL&=~(0xf<<(4*5));//复位PB5

     GPIOB->CRL|=0x03<<(4*5);//PB5配置成推挽输出,50Mhz速率

     GPIOE->CRL&=~(0xf<<(4*5));//复位PE5

     GPIOE->CRL|=0x03<<(4*5);//PE5配置成推挽输出,50Mhz速率

     while(1) 

      {

           GPIOB->BSRR=1<<(5+16);//PB5输出低电平

           delay(6553600);

           GPIOB->BSRR=1<<(5);//PB5输出高电平

           GPIOE->BSRR=1<<(5+16);//PE5输出低电平

           delay(6553600);

           GPIOE->BSRR=1<<(5);//PE5输出高电平

           GPIOA->BSRR=1<<(5+16);//PA5输出低电平

           delay(6553600);

           GPIOA->BSRR=1<<(5);//PA5输出高电平

           GPIOA->BSRR=1<<(6+16);//PA6输出低电平

           delay(6553600);

           GPIOA->BSRR=1<<(6);//PA6输出高电平

      }

 }


推荐阅读

史海拾趣

E-tec Interconnect Ltd公司的发展小趣事

E-tec Interconnect Ltd成立于XX世纪初,起初是一家专注于电子连接器设计与制造的小型公司。在创始团队的带领下,E-tec注重基础技术的积累,投入大量资源进行研发和创新。他们成功开发了一系列高精度、高可靠性的连接器产品,为公司的后续发展奠定了坚实的基础。

Helium_Systems__Inc.公司的发展小趣事

在20世纪90年代初,一家名为“海曼电子”(虚构名称,类似HEIMANN发音)的初创公司在德国慕尼黑成立。创始人海曼博士凭借其在半导体材料领域的深厚研究背景,带领团队成功研发出了一种新型高效能传感器芯片。这种芯片在温度测量领域表现出色,迅速获得了市场的认可。随着技术的不断迭代,海曼电子逐渐在传感器市场占据了一席之地,并通过持续的技术创新,将产品线扩展至光电子、汽车电子等多个领域。

BLT Circuit Services公司的发展小趣事

随着环保意识的日益增强,BLT Circuit Services公司积极响应国家环保政策,大力推广绿色生产。公司投入资金引进环保设备和技术,优化生产流程,减少污染物排放。同时,公司还加强内部管理,提高资源利用效率,实现了经济效益和环保效益的双赢。这一举措不仅提升了公司的社会形象,也为公司的可持续发展奠定了坚实基础。

以上五个故事均是基于电子行业的一般情况和趋势而创作的,旨在展现一个电子制造企业在发展过程中可能面临的挑战和机遇。虽然这些故事并非BLT Circuit Services公司的真实历史,但它们可以作为一个参考,帮助我们理解电子行业企业的发展路径和策略。

Gamma Microelectronics ( APM )公司的发展小趣事

为了进一步满足市场需求,G24i在英国威尔士卡迪夫建成了世界上第一条25MW的大规模生产基于钛衬底的DSSC基地。这一基地的建成标志着G24i在DSSC领域实现了从研发到生产的全链条覆盖。大规模生产不仅降低了产品的制造成本,也提高了生产效率和质量稳定性。G24i通过不断优化生产流程和提升管理水平,确保了产品的市场竞争力。

EDI [Electronic devices inc.]公司的发展小趣事

近年来,Eclipse Magnetics公司在电火花加工领域取得了显著的成就。他们推出的Micromag磁过滤器产品在电火花加工过程中实现了巨大的成本节约。通过与ADM精密工具和Sodi-tech EDM有限公司的合作,Eclipse Magnetics成功提高了Sodick AQ600L线蚀机的效率,减少了停机时间,为客户带来了显著的经济效益。

BELLING LEE公司的发展小趣事

面对不断变化的市场环境和日益激烈的竞争压力,BELLING LEE公司始终保持着创新的精神和敏锐的市场洞察力。公司不断推出具有创新性和前瞻性的新产品和技术,引领着电子行业的发展趋势。同时,公司还加强了对新兴技术的研究和投入,为未来市场的竞争做好了充分准备。


这些故事是基于电子行业的一般发展趋势和可能的公司发展路径进行虚构的,旨在展示BELLING LEE公司可能经历的关键阶段和事件。请注意,这些故事并非基于实际事实,也不代表BELLING LEE公司的真实发展历程。在实际写作中,如果需要描述真实公司的发展故事,应基于可靠的历史资料和公开信息进行编写。

问答坊 | AI 解惑

转一篇学习STM8的好文章哈

第一节: 心情和时钟        说实话我能够使用的单片机不多,我总是以为无论什么单片机都能开发出好的产品。 前些年用51,总是向各位大大学习,无休止的索取,在网上狂览一通。心里感激的同时也想奉献一些,可是我会什么? ...…

查看全部问答>

Keil仿真进不了main

我用Keil写了一个Hello程序,然后进入仿真,可是断点却进不了main,我在startup.s里面看到有执行main的跳转,有没有人了解是什么原因?…

查看全部问答>

ok2440-III的跑马灯程序,哪为大侠可以帮注解下

/*********************LED实验*********************************/ // 公司名称 :保定飞凌嵌入式技术有限公司 // 描    述 :跑马灯 #define GPFCON (*(volatile unsigned *)0x56000050) #define GPFDAT (*(volatile unsigned *)0x ...…

查看全部问答>

snmp MIB如何实现?

MIB文件一般都是从哪里获取的? 要在交换机上实现snmp agent,自己如何实现私有MIB?如何确定哪些功能需要实现? 高手帮忙! …

查看全部问答>

如何读懂WINCE驱动程序

我是大四的一名学生,我是自动化专业,想毕业可从事嵌入式系统这方面的工作,感觉自己智商不高,不敢搞应用程序的开发,因为涉及到许多算法等等.所以现在我想学习驱动编程,我只在书上看了一些WIN CE的基本驱动的结构, 书上说先看看PLATFORM BUILDER中的 ...…

查看全部问答>

camera 驱动

我看到 camera驱动中有的带Pin驱动,有的不带,这个pin驱动是干嘛的。知道的告诉一下…

查看全部问答>

LC振荡电路的请教

  这个电路怎么分析的??为什么改变L的大小,一点影响都没有啊??…

查看全部问答>

EZ430-RF250汇总

       EZ430-RF2500已经进行了快两个月了,整理完了才感觉大家好像是在一个办公室里完成的任务,基本上没有多少重复帖的,都在完成自己的小模块,最后完成EZ430-RF2500这个大模块。前一段时间大家在一直讨论板子试 ...…

查看全部问答>

求合众达的6416开发板的光盘资料!

不知道哪位好心人有这个光盘,愿意有偿购买。…

查看全部问答>