安庆大理运城常德铜陵江西
投稿投诉
江西南阳
嘉兴昆明
铜陵滨州
广东西昌
常德梅州
兰州阳江
运城金华
广西萍乡
大理重庆
诸暨泉州
安庆南充
武汉辽宁

Stm32芯片启动和时钟系统

9月17日 醉殇别投稿
  1。芯片启动
  首先stm32会根据启动方式(参考手册2。4节)从启动位置加载启动代码到内存中,之后开始执行启动代码,一般启动代码使用官方提供的即可xxx。s
  启动代码的工作:
  初始化堆栈空间,定义异常向量表调用SystemInit系统初始化初始化时钟,调整异常向量表执行main主函数
  芯片要开始工作,必须初始化时钟和内存,stm32的内存使用片内SRAM,可以直接使用,时钟需要初始化,ARM芯片需要定义异常向量表,执行C语言代码必须初始化堆栈。
  stm32f407推荐的主时钟频率168MHz
  2。产生原始频率的硬件
  (1)晶振
  (2)RC(LC)振荡电路
  原始频率不会很高,使用前必须升频,升频使用PLL(升频)电路
  CPU时钟系统的大体结构
  3。stm32f407的原始时钟
  HSIRC高速内部振荡时钟16MHSEOSC高速外部晶振426M(8M)以上两个时钟源可以直接作为系统主时钟,也可以通过PLL升频后作为主时钟LSIRC低速内部振荡时钟32K看门狗LSEOSC低速外部晶振32。768KRTC
  stm32f407的时钟树
  PLL的输出时钟PLL输入时钟XPLLNPLLMPLLP
  168M8MX33682
  4。将keil5的工程的系统时钟配置为168MHz
  (1)修改systemstm32f4xx。c的254行
  definePLLM8
  (2)修改stm32f4xx。h的127行
  该文件是只读属性文件,要去文件系统中找到该文件,去掉只读属性defineHSEVALUE((uint32t)8000000)!ValueoftheExternaloscillatorinHz
  练习:
  将系统主频配置为168M
  修改PLL,调节系统主频
  definePLLN336168MdefinePLLN432216M超频definePLLN16884M降频
  系统总线时钟频率:
  SYSCLK时钟168MHzHCLKAHB总线168MHzAPB1时钟42MHzAPB2时钟84MHz
  按键驱动
  1。看原理图
  从原理图可知:
  按键松开引脚高电平
  按键按下引脚低电平
  按键对应的引脚:
  S1PA0
  S2PE2
  S3PE3
  S4PE4
  如何读取输入引脚的电平
  (1)读取输入数据寄存器(IDR)对应位的值1输入高电平0输入低电平
  (2)位段操作PAin(0)0输入低电平PAin(0)1输入高电平
  (3)库函数uint8tGPIOReadInputDataBit(GPIOTypeDefGPIOx,uint16tGPIOPin);传入哪一组哪个脚,返回该引脚的电平
  练习:
  完成其他三个按键的检测程序,分别使用寄存器位段库函数判断
  实现一下功能:
  按下S2,D2亮按下S3,D3亮按下S4,D4亮
  key。c
  includestm32f4xx。h
  includekey。h
  voidkeyinit(void)
  {
  GPIOInitTypeDefGPIOInitS
  1。开启GPIOA的时钟
  RCCAHB1PeriphClockCmd(RCCAHB1PeriphGPIOARCCAHB1PeriphGPIOE,ENABLE);
  2。GPIO初始化PA0
  GPIOInitStruct。GPIOModeGPIOModeIN;输入模式
  GPIOInitStruct。GPIOPuPdGPIOPuPdNOPULL;无上下拉
  GPIOInitStruct。GPIOPinGPIOPin0;PA0
  GPIOInit(GPIOA,GPIOInitStruct);
  GPIOInitStruct。GPIOPinGPIOPin2GPIOPin3GPIOPin4;PE2PE3PE4
  GPIOInit(GPIOE,GPIOInitStruct);
  main。c
  includestm32f4xx。h
  includeled。h
  includesys。h
  includekey。h
  intmain()
  {
  intkeyflag0;
  初始化
  ledinit();
  keyinit();
  while(1){
  if(S10){
  延时消抖10ms
  delay(100);
  if(S10){
  真实按键事件
  if(keyflag0){按下没有松开
  D1D1;取反
  keyflag1;
  }
  }
  }
  else{
  延时消抖10ms
  delay(100);
  if(S1){
  keyflag0;
  }
  }
  }
  }
  lcd。c
  includestm32f4xx。h
  includeled。h
  voiddelay(unsignedintms)
  {
  inti,j;
  for(i0;i)
  for(j0;j5000;j);
  }
  voidledinit(void)
  {
  GPIOInitTypeDefGPIOInitS
  1。开启GPIOEGPIOF的时钟
  RCCAHB1PeriphClockCmd(RCCAHB1PeriphGPIOERCCAHB1PeriphGPIOF,ENABLE);
  2。GPIO初始化PF9PF10PE13PE14
  GPIOInitStruct。GPIOModeGPIOModeOUT;输出模式
  GPIOInitStruct。GPIOOTypeGPIOOTypePP;推挽输出
  GPIOInitStruct。GPIOSpeedGPIOSpeed50MHz;高速
  GPIOInitStruct。GPIOPuPdGPIOPuPdNOPULL;无上下拉
  GPIOInitStruct。GPIOPinGPIOPin9GPIOPin10;PF9PF10
  GPIOInit(GPIOF,GPIOInitStruct);
  GPIOInitStruct。GPIOPinGPIOPin13GPIOPin14;PE13PE14
  GPIOInit(GPIOE,GPIOInitStruct);
  3。LED默认关闭
  GPIOSetBits(GPIOF,GPIOPin9GPIOPin10);
  GPIOSetBits(GPIOE,GPIOPin13GPIOPin14);
  }
  lcd。h
  ifndefLEDH
  defineLEDH
  defineD1PFout(9)
  defineD2PFout(10)
  defineD3PEout(13)
  defineD4PEout(14)
  voiddelay(unsignedintms);
  voidledinit(void);
  endif
  key。h
  ifndefKEYH
  defineKEYH
  defineS1PAin(0)
  defineS2PEin(2)
  defineS3PEin(3)
  defineS4PEin(4)
  voidkeyinit(void);
  endif
  sys。h该文件由系统定义
  ifndefSYSH
  defineSYSH
  includestm32f4xx。h
  IO口操作宏定义
  defineBITBAND(addr,bitnum)((addr0xF0000000)0x2000000((addr0xFFFFF)5)(bitnum2))
  defineMEMADDR(addr)((volatileunsignedlong)(addr))
  defineBITADDR(addr,bitnum)MEMADDR(BITBAND(addr,bitnum))
  IO口地址映射
  defineGPIOAODRAddr(GPIOABASE20)0x40020014
  defineGPIOBODRAddr(GPIOBBASE20)0x40020414
  defineGPIOCODRAddr(GPIOCBASE20)0x40020814
  defineGPIODODRAddr(GPIODBASE20)0x40020C14
  defineGPIOEODRAddr(GPIOEBASE20)0x40021014
  defineGPIOFODRAddr(GPIOFBASE20)0x40021414200x14
  defineGPIOGODRAddr(GPIOGBASE20)0x40021814
  defineGPIOHODRAddr(GPIOHBASE20)0x40021C14
  defineGPIOIODRAddr(GPIOIBASE20)0x40022014
  defineGPIOAIDRAddr(GPIOABASE16)0x40020010160x10
  defineGPIOBIDRAddr(GPIOBBASE16)0x40020410
  defineGPIOCIDRAddr(GPIOCBASE16)0x40020810
  defineGPIODIDRAddr(GPIODBASE16)0x40020C10
  defineGPIOEIDRAddr(GPIOEBASE16)0x40021010
  defineGPIOFIDRAddr(GPIOFBASE16)0x40021410
  defineGPIOGIDRAddr(GPIOGBASE16)0x40021810
  defineGPIOHIDRAddr(GPIOHBASE16)0x40021C10
  defineGPIOIIDRAddr(GPIOIBASE16)0x40022010
  IO口操作,只对单一的IO口!
  确保n的值小于16!
  definePAout(n)BITADDR(GPIOAODRAddr,n)输出
  definePAin(n)BITADDR(GPIOAIDRAddr,n)输入
  definePBout(n)BITADDR(GPIOBODRAddr,n)输出
  definePBin(n)BITADDR(GPIOBIDRAddr,n)输入
  definePCout(n)BITADDR(GPIOCODRAddr,n)输出
  definePCin(n)BITADDR(GPIOCIDRAddr,n)输入
  definePDout(n)BITADDR(GPIODODRAddr,n)输出
  definePDin(n)BITADDR(GPIODIDRAddr,n)输入
  definePEout(n)BITADDR(GPIOEODRAddr,n)输出
  definePEin(n)BITADDR(GPIOEIDRAddr,n)输入
  definePFout(n)BITADDR(GPIOFODRAddr,n)输出
  definePFin(n)BITADDR(GPIOFIDRAddr,n)输入
  definePGout(n)BITADDR(GPIOGODRAddr,n)输出
  definePGin(n)BITADDR(GPIOGIDRAddr,n)输入
  definePHout(n)BITADDR(GPIOHODRAddr,n)输出
  definePHin(n)BITADDR(GPIOHIDRAddr,n)输入
  definePIout(n)BITADDR(GPIOIODRAddr,n)输出
  definePIin(n)BITADDR(GPIOIIDRAddr,n)输入
  endif
  3。按键消抖延时消抖
  以上按键程序不管是否有按键事件发生,都会占用CPU来进行判断,这种方式叫做轮询,效率比较低,CPU提供了效率更高的方式中断。
投诉 评论 转载

全球首发200W超充,10分钟充满,iQOO10Pro正式发经过了长达一个星期的预热,在7月19日晚上,我们见证了iQOO新一代电竞旗舰iQOO10系列诞生,那么机皇iQOO10Pro给我们带来了什么惊喜呢?在这个手机行业百花齐放的时代……郭艾伦被哈达迪两次打头部,愤怒抗议技术台!裁判杨宏峰不严重CBA常规赛又出现了相当争议的判罚,这次轮到了郭艾伦受害,知名的裁判杨洪峰再次卷入到了是非当中。这是辽宁对阵四川队的比赛,当时郭艾伦在比赛的第3节带球突破的过程当中,他带……十药烧灰,止各种血热出血,血止而不留瘀在《十药神书》中记载了一个止血方,是治疗因热迫血行而导致的吐血、咳血、咯血、衄血、呕血等各种出血证的有效方剂,从题目中就可以看出来,这个方子就是十灰散。该方常用于治疗肺结核咳血……三星GalaxyZFold4和ZFlip4将开启手机的eSIeSIM这种嵌入式SIM卡对于三星的可折叠智能手机来说并不是新鲜事儿了,去年推出的GalaxyZFold3和GalaxyZFlip3均支持eSIM。而即将推出的下一代折叠屏手机……Stm32芯片启动和时钟系统1。芯片启动首先stm32会根据启动方式(参考手册2。4节)从启动位置加载启动代码到内存中,之后开始执行启动代码,一般启动代码使用官方提供的即可xxx。s启动代码的……(50例)脚踏实地之意久久为功之行真抓实干类过渡句1。鼓足当仁不让、勇争一流的干事志气,拿出逢山开路、遇水架桥的攻坚劲头。2。不讲实话,再漂亮的言辞也是哗众取宠;不干实事,再美好的蓝图也是画饼充饥。3。有海阔天空之……生活不是这样,就是那样,反正不是你想的那样别吝啬嘴角的微笑,别让烦恼挂上眉梢。别指望别人都懂你,因为萝卜青菜各有所爱。那些避而不谈的往往才是真相。任何真话都可以接受,怕就怕没有一句真话。有……建议大家逛屈臣氏,遇见这几款好物别错过,便宜又好用文:Nicolehi,我是Nicole,准备好一起变美了吗?每次路过屈臣氏,都会忍不住进去逛逛,里面从日化到零食真的是一应俱全,唯一美中不足的应该就是导购员了,经常……好酒的人,戒酒后肝能变好吗?出现4个症状,或是肝呼吁你戒酒根据数据统计显示,2021年上半年白酒的销售额达到了3340。29亿,在酒类销售额当中居高不下的同时,也有很多人因为喝酒而失去生命,有一项研究调查报告显示,喝酒直接导致2800……经常喝山楂干泡的水,对身体有什么影响?从营养学角度告诉你答案山楂很多人应该都吃过,但是用山楂干泡水喝的人应该不多。不过,现在很多中老年人爱喝花果茶,而有一种花果茶,就是用干花和干果一起泡水喝,其中的干果,多包含苹果干、陈皮、山楂干等,因……差距太大了!RedmiK50Pro和小米12,谁更值得买有很多的朋友私信询问,预算只有3000元,今年发布的RedmiK50Pro和之前发布的小米12该怎么选?还有没有其它更好的选择,今天咱就把这两款小米手机拿出来,掰开了揉碎了,好……4000元档位高性能轻薄笔记本推荐,颜值与性价比俱佳随着电脑性能的不断提升,现在的轻薄笔记本足以应对日常的办公、学习,玩一些常见游戏也不在话下,加上自带高颜值属性,如今的轻薄本越来越受消费者青睐。面对数以百计的笔记本型号,很多人……
传闻三上真司与白金和卡普空合作重制神之手好消息澳门最快月底恢复陆客电子签注和旅行团千万级网红猴哥大婚,婚礼阵仗堪称豪华,妻子何钰欣疑似已怀孕队报预测法国队世界杯名单本泽马姆巴佩领衔博格巴伤愈就入选北京国子监看孕囊胎心唐筛能知道胎儿性别?哪个是真的?哪个不靠谱?初秋的搭配灵感江疏影初秋时尚穿搭,不无聊的时髦知性风中国男乒大捷,轰11031夺得2连胜,4将强势晋级鸿包惠动态鸿包惠归来!鸿包惠与鸿丰达联合港交所主板上市首次亮相!全面展示大兴机遇大兴速度大兴未来战略新形象得了肺结节,这三件傻事不要做中国财富报道光伏再现千亿大单金钱树可以放在卧室吗金钱树养在卧室有影响吗分开也许是新的开始新年的作文300字5篇青春生命的路口天秤座男生配天蝎星座女人不合(天秤座和双鱼座配吗)瞧我妹妹作文羊毛坐垫如何鉴别羊毛坐垫怎样鉴别防守豆腐渣,国安被弱旅轮番羞辱,谢峰遭遇信任危机红色经典小故事500字:赵一曼为国捐躯我发明的未来汽车三年级作文550字防噪音耳塞使用期限流行半扎丸子烫慵懒清新文艺女生必选

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找七猫云易事利