当前位置: 首页 > news >正文

顺德网站制作案例咨询企业网站方案设计

顺德网站制作案例咨询,企业网站方案设计,网站制作需要多少钱品牌,张店网站制作哪家好SysTick SysTick是Cortex-M3内核中的一个外设#xff0c;内嵌在NVIC中#xff0c;叫系统定时器。 当处理器在调试期间被喊停时#xff0c;SysTick也将暂停运作。 一共有四个寄存器#xff0c;不过我们通常用前三个#xff0c;不需要校准。下图出自《STM32F10xxx Cortex…SysTick SysTick是Cortex-M3内核中的一个外设内嵌在NVIC中叫系统定时器。 当处理器在调试期间被喊停时SysTick也将暂停运作。 一共有四个寄存器不过我们通常用前三个不需要校准。下图出自《STM32F10xxx Cortex-M3编程手册》第237页。 CTRL寄存器 第一个CTRL寄存器可用的一共有四个位。 第0位是SysTick的使能为为1则使能。 第1位是SysTick的异常请求标志位为1则会触发异常也就是中断使能Cortex-M3处理器专门为SysTick开出了一个异常类型也就是说它也在中断向量表中。由于SysTick属于内核外设因此并没有抢占优先级和响应优先级的概念一般我们也不使用SysTick中断但是非要的话也是可以的我们需要去操作SHPR3这个寄存器并且这个寄存器只能通过字节访问。 从上图可知这个寄存器的第24位到第31位是给SysTick使用的不过在STM32F103中有效的仅是第28位到第31位这高4位有效因此拥有16位可编程优先级数值越小优先级越高。 更具体的SysTick中断还需自行查阅资料。 第2位是时钟源选择位为0则AHB/8即系统时钟SYSCLK经过AHB预分频器进行8分频72MHz/88MHz为1则是AHB进行1分频72MHz/172MHz。 第16位是计数的标志位如果上次处理器读取到计数器已经计到了0那么将此为置为1我们可以通过读取此位来得知一轮计数是否结束。 LOAD寄存器VAL寄存器 第二个LOAD寄存器是重装寄存器也就是说计数器记到0之后会给计数器重新赋值赋的值就是从这个寄存器取出的。 第三个VAL寄存器就是计数器了是向下递减的计数器。时钟源每触发一次则记一次减一次数到0则会发出异常请求如果有设置的话并且重装计数值。 我们可以知道重装寄存器和计数器都是24位的因此能记的最大次数就是2^2416777216最大数值为2^24-1167772150xFFFFFF要注意不能超出最大数值。 固件库函数实现延时效果 以SysTick开头的函数就两个不过因为SysTick是内嵌到NVIC的所以以NVIC_SysTick开头的函数还有两个不过我们用不着因此仅介绍两个函数就够实现延时效果了实际上一个就够了。 SysTick_Config 我们使用这个函数就可以对SysTick初始化并且赋上重装寄存器的值。 我们固件库函数的内容比较简单我们可以简单分析一下也有助于加深理解。 这个函数需要一个参数这个参数就是用来设置重装计数器的值的。 库函数的第一行就是用来检验这个参数是否合法的因为我们之前分析过了重装寄存器和计数器都是24位的因此可以赋的最大数值就是167772150xFFFFFF。 可以看到第一行检验参数使用的宏定义也是符合我们分析的其中宏定义中的宏定义SysTick_LOAD_RELOAD_Pos为0也就是没有任何效果我也不知道它存在的意义何在。 库函数的第二行就是将参数赋给重装寄存器。 第三行设置中断优先级的我们用不着可以不管它。 第四行是将计数器清零的。 第五行设置CTRL寄存器我们可以看出库函数默认将CTRL寄存器的三个位置1除了第16位都置1了也就是说库函数默认使用AHB1分频72MHz作为时钟源并且默认开启异常请求。 调用这个函数之后我们就成功的让SysTick系统定时器开始运行了时钟源每来一个脉冲计数器就向下递减一个数减到0之后再通过重装寄存器来给计数器赋值。 如果我们需要1us的延时函数那么调用下面这段代码即可实现SysTick每计数一轮就是1us。 SysTick_Config(SystemCoreClock/1000000); 其中SystemCoreClock是一个宏定义也就是AHB的大小。也就是说每秒时钟源都会有那么多次的脉冲计数器也会记那么多个数我们将这个数除10^6得到的数就是每us的脉冲次数这样就可以让SysTick记1us的时间了。 对于我们STM32F103来说写上72000000也是一样的不过不便于移植修改例如如果我们修改了处理器的主频那么就需要对这个数值进行修改但如果写的是宏定义的话则不需要修改虽然一般没事也不会修改主频。 不过目前为止我们还只是让SysTick启动了起来我们该如何知道SysTick计数完了一轮呢。 我们可以通过查询CTRL寄存器的第16位来知道是否计数一轮处理器一旦查询到了SysTick的计数器为0之后就会将CTRL的第16位置1因此我们开启SysTick之后只需要使用whlie循环查询CTRL的第十六位即可。 当我们延时了我们想要的时间之后还需要将SysTick关闭这时候只需要把CTRL寄存器的第0位使能位置0即可。 至此我们就可以完成us级的延时函数了具体可以参考下面的代码如果要实现ms和s级别的延时函数可以调用10^3次和10^6次us的延时函数。其中ms延时可以修改传给SysTick_Config的参数将原本的SystemCoreClock/1000000修改为SystemCoreClock/1000即可但是s延时就不能用类似的方法了因为超过了计数器可以记的最大值但可以通过调用10^3次ms延时来实现。 void delay_us(uint32_t us){//SysTick_Config(72000000/1000000); //不便移植SysTick_Config(SystemCoreClock/1000000); //固件库函数初始化设置重装值while(us--){while(!((SysTick-CTRL)(SysTick_CTRL_COUNTFLAG))); //不断查询计数标志位}SysTick-CTRL~SysTick_CTRL_ENABLE_Msk; //关闭SysTick } SysTick_CLKSourceConfig 第二个函数就是这个用来修改时钟源的函数了一般我们就使用库函数默认的AHB不过想要修改的话也是可以事后改掉的。 使用AHB1分频(72MHz)为时钟源就传入SysTick_CLKSource_HCLK。 使用AHB8分频(8MHz)为时钟源就传入SysTick_CLKSource_HCLK_Div8。 LED闪烁延时函数 #include stm32f10x.h // Device headervoid delay_us(uint32_t us){//SysTick_Config(72000000/1000000); //不便移植SysTick_Config(SystemCoreClock/1000000); //固件库函数初始化设置重装值while(us--){while(!((SysTick-CTRL)(SysTick_CTRL_COUNTFLAG))); //不断查询计数标志位}SysTick-CTRL~SysTick_CTRL_ENABLE_Msk; //关闭SysTick }void delay_ms(uint32_t ms){while(ms--) delay_us(1000); }void delay_s(uint32_t s){while(s--) delay_ms(1000); }int main(void){RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); //打开GPIO口的外设时钟GPIO_InitTypeDef itd; itd.GPIO_ModeGPIO_Mode_Out_PP; //设置为推挽输出模式itd.GPIO_PinGPIO_Pin_0; //指定0号引脚itd.GPIO_SpeedGPIO_Speed_2MHz; //输出频率为2MHzGPIO_Init(GPIOA,itd); //初始化while(1){ //LED闪烁GPIO_ResetBits(GPIOA,GPIO_Pin_0); //设置低电平delay_s(1); //延时一秒GPIO_SetBits(GPIOA,GPIO_Pin_0); //设置高电平delay_s(1);} }接线效果 参考 《STM32F103xx固件函数库用户手册》 《STM32F10xxx Cortex-M3编程手册》 《STM32库开发实战指南基于STM32F103》 《ARM Cortex-M3嵌入式原理及应用基于STM32F103微控制器》
http://www.zqtcl.cn/news/593948/

相关文章:

  • 网站增加点击率 怎样做小店面设计装修网
  • 一 美食 视频网站模板下载安装外国优秀网站欣赏
  • 网站服务器部署重庆涪陵网站建设公司
  • php网站开发实践要做网站照片怎么处理
  • 网站短期就业培训班搜集关键词的网站
  • 社区网站开发淘宝网站打算找人做
  • 政务类网站网页管理平台
  • 淘宝联盟微信里做网站花卉市场网站建设基本步骤
  • 做网站广告语网站注册建设
  • 仓山福州网站建设哪个是网站建设里面的
  • 开网站流程开发公司起名
  • 免费建站优化网站基本设置
  • 网站建设需要上传数据库吗seo自己做网站吗
  • 网站制作ppt杭州网站的特点
  • 美丽寮步网站建设价钱杭州网站设计询问蓝韵网络
  • 毕节网站建设公司网站职业技术培训学校
  • 果洛wap网站建设比较好17岁在线观看免费高清完整版
  • 一级a做爰片在线看免播放器网站一个网站突然打不开
  • 聊城网站开发培训wordpress实时预览载入中
  • 网站设计文章国际转运网站建设
  • 南充市建设厅官方网站购物网站设计说明
  • 防疫网站网页设计wordpress不同侧边栏
  • 网站的建设多少钱长春市招标建设信息网
  • 网站加速代码百度浏览器app
  • 关于配色的网站企业宣传册文案范文
  • 免费推广网站教程湖南中核建设工程公司官方网站
  • 莱阳网站建设公司彩票类网站是如何做代理的
  • 食品公司网站建设广州做网站制作公司
  • 网站上传服务器教程搜索网站存在的关键字
  • 天河建设网站多少钱网络公司网站样本