/* ----------------------------------------------------------------------
* Copyright (C) 2010-2012 ARM Limited. All rights reserved.
*
* $Date: 17. January 2013
* $Revision: V1.4.0
*
* Project: CMSIS DSP Library
* Title: arm_linear_interp_data.c
*
* Description: Data file used for example. Generation method described
* below
*
* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* - Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
* - Neither the name of ARM LIMITED nor the names of its contributors
* may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
* -------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
* Table generated from following MATLAB Command
* x = -pi: 0.00005 : (2*pi - 0.00005);
* y = sin(x);
* where pi value is 3.141592653589793
* --------------------------------------------------------------------*/
float arm_linear_interep_table[188495] = {
-0.000000000000000122, -0.000049999999979173, -0.000099999999833667, -0.000149999999437717, -0.000199999998666767, -0.000249999997395817, -0.000299999995500311, -0.000349999992854362,
-0.000399999989333412, -0.000449999984812462, -0.000499999979166956, -0.000549999972271007, -0.000599999964000057, -0.000649999954229107, -0.000699999942833602, -0.000749999929687653,
-0.000799999914666704, -0.000849999897645755, -0.000899999878500250, -0.000949999857104302, -0.000999999833333354, -0.001049999807062851, -0.001099999778166904, -0.001149999746520957,
-0.001199999712000011, -0.001249999674479510, -0.001299999633833566, -0.001349999589937622, -0.001399999542666680, -0.001449999491896183, -0.001499999437500243, -0.001549999379354304,
-0.001599999317333367, -0.001649999251312876, -0.001699999181166942, -0.001749999106771011, -0.001799999028000082, -0.001849998944729599, -0.001899998856833675, -0.001949998764187754,
-0.001999998666666836, -0.002049998564146365, -0.002099998456500453, -0.002149998343604546, -0.002199998225334087, -0.002249998101563188, -0.002299997972167294, -0.002349997837021405,
-0.002399997696000966, -0.002449997548980088, -0.002499997395834216, -0.002549997236438351, -0.002599997070667937, -0.002649996898397086, -0.002699996719501243, -0.002749996533855408,
-0.002799996341335026, -0.002849996141814208, -0.002899995935168401, -0.002949995721272604, -0.002999995500002261, -0.003049995271231486, -0.003099995034835722, -0.003149994790690415,
-0.003199994538669677, -0.003249994278648952, -0.003299994010503243, -0.003349993734107991, -0.003399993449337312, -0.003449993156066649, -0.003499992854171003, -0.003549992543525819,
-0.003599992224005209, -0.003649991895484619, -0.003699991557839049, -0.003749991210943944, -0.003799990854673418, -0.003849990488902914, -0.003899990113507434, -0.003949989728362423,
-0.003999989333341993, -0.004049988928321590, -0.004099988513176658, -0.004149988087781312, -0.004199987652010995, -0.004249987205740709, -0.004299986748845899, -0.004349986281200678,
-0.004399985802680492, -0.004449985313160341, -0.004499984812515671, -0.004549984300620594, -0.004599983777350557, -0.004649983242580561, -0.004699982696186050, -0.004749982138041138,
-0.004799981568021272, -0.004849980986001451, -0.004899980391857122, -0.004949979785462398, -0.004999979166692725, -0.005049978535423547, -0.005099977891528979, -0.005149977234884466,
-0.005199976565365011, -0.005249975882846058, -0.005299975187201721, -0.005349974478307446, -0.005399973756038235, -0.005449973020269535, -0.005499972270875456, -0.005549971507731448,
-0.005599970730712511, -0.005649969939694091, -0.005699969134550302, -0.005749968315156590, -0.005799967481387958, -0.005849966633119851, -0.005899965770226383, -0.005949964892583000,
-0.005999964000064706, -0.006049963092546945, -0.006099962169903833, -0.006149961232010816, -0.006199960278743339, -0.006249959309975518, -0.006299958325582797, -0.006349957325440182,
-0.006399956309423117, -0.006449955277405718, -0.006499954229263430, -0.006549953164871257, -0.006599952084104644, -0.006649950986837708, -0.006699949872945895, -0.006749948742304206,
-0.006799947594788089, -0.006849946430271660, -0.006899945248630365, -0.006949944049739206, -0.006999942833473632, -0.007049941599707755, -0.007099940348317025, -0.007149939079176889,
-0.007199937792161461, -0.007249936487146187, -0.007299935164006074, -0.007349933822616566, -0.007399932462851779, -0.007449931084587162, -0.007499929687697716, -0.007549928272058891,
-0.007599926837544801, -0.007649925384030893, -0.007699923911392173, -0.007749922419504085, -0.007799920908240749, -0.007849919377477610, -0.007899917827089672, -0.007949916256952384,
-0.007999914666939863, -0.008049913056927554, -0.008099911426790906, -0.008149909776404035, -0.008199908105642390, -0.008249906414380975, -0.008299904702495238, -0.008349902969859295,
-0.008399901216348595, -0.008449899441838141, -0.008499897646203384, -0.008549895829318437, -0.008599893991058752, -0.008649892131299332, -0.008699890249915625, -0.008749888346781748,
-0.008799886421773151, -0.008849884474764837, -0.008899882505632256, -0.008949880514249525, -0.008999878500492093, -0.009049876464234965, -0.009099874405353590, -0.009149872323722084,
-0.009199870219215898, -0.009249868091710479, -0.009299865941079948, -0.009349863767199750, -0.009399861569944894, -0.009449859349190827, -0.009499857104811669, -0.009549854836682867,
-0.009599852544679429, -0.009649850228676803, -0.009699847888549109, -0.009749845524171793, -0.009799843135419864, -0.009849840722168771, -0.009899838284292632, -0.009949835821666898,
-0.009999833334166574, -0.010049830821667110, -0.010099828284042626, -0.010149825721168572, -0.010199823132920397, -0.010249820519172219, -0.010299817879799491, -0.010349815214677217,
-0.010399812523680850, -0.010449809806684508, -0.010499807063563642, -0.010549804294193258, -0.010599801498448806, -0.010649798676204407, -0.010699795827335511, -0.010749792951717126,
-0.010799790049224703, -0.010849787119732359, -0.010899784163115548, -0.010949781179249277, -0.010999778168008997, -0.011049775129268828, -0.011099772062904221, -0.011149768968790628,
-0.011199765846802169, -0.011249762696814294, -0.011299759518702013, -0.011349756312340777, -0.011399753077604706, -0.011449749814369253, -0.011499746522509425, -0.011549743201900674,
-0.011599739852417123, -0.011649736473934221, -0.011699733066326979, -0.011749729629470847, -0.011799726163239948, -0.011849722667509732, -0.011899719142155211, -0.011949715587051834,
-0.011999712002073
STM32F103C8通过定时器中断实现精确毫秒延时


2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)

STM32F103C8是意法半导体(STMicroelectronics)生产的基于ARM Cortex-M3内核的微控制器,广泛应用于嵌入式系统设计。在进行实时控制系统或需要精确时间间隔的应用中,实现精确的毫秒延时是至关重要的。本教程将详细讲解如何利用STM32F103C8的定时器中断功能来实现这一目标。 我们需要了解STM32的定时器结构。STM32F103C8内置了多个定时器,包括高级控制定时器(TIM1和TIM8)、通用定时器(TIM2、TIM3、TIM4、TIM5)以及基本定时器(TIM6和TIM7)。在本例中,我们可能会选择一个通用定时器,如TIM2,因为它具有丰富的功能,可以配置为向上计数、向下计数或中心对齐模式,并支持中断。 1. **配置定时器**: - 我们需要开启定时器的时钟,这可以通过修改RCC(Reset and Clock Control)寄存器实现。 - 然后,选择合适的定时器工作模式,通常选择向上计数模式。 - 设置预分频器,预分频器用于将系统时钟频率分频,以适应所需的定时精度。例如,如果系统时钟为72MHz,可以设置预分频器为71999,使得定时器的计数频率为1kHz,即每个周期为1ms。 2. **设置重载值**: - 重载值是定时器到达的上限值,当计数值达到这个值时,会产生更新事件。若要实现1ms延时,重载值应设置为预分频后的周期数(即1000)。 3. **启用中断**: - 配置中断源,即使能定时器更新事件(TIMx_Update_IRQn)的中断。 - 在NVIC(Nested Vectored Interrupt Controller)设置中断优先级。 4. **中断服务函数**: - 编写TIMx_Update_IRQHandler()中断服务函数,当定时器达到重载值时,该函数会被调用。 - 在中断服务函数中,可以增加计数器,每接收到一次中断,计数器加1。当计数器达到指定的毫秒数时,结束延时并清除中断标志。 5. **HAL库的使用**: - STM32 HAL库(Hardware Abstraction Layer)提供了更高级别的抽象,简化了硬件操作。使用HAL库配置定时器,可以调用`HAL_TIM_Base_Init()`初始化定时器,`HAL_TIM_Base_Start_IT()`启动定时器并使能中断。 - 中断发生时,HAL库会自动调用用户定义的回调函数`HAL_TIM_PeriodElapsedCallback()`,在这里执行实际的延时处理。 6. **延迟函数`delay_ms()`**: - 创建一个全局变量用于计数,每次中断时更新。 - 在`delay_ms()`函数中,设置计数器目标值,然后启动定时器。当计数器达到目标值时,表明延时完成。 总结,通过以上步骤,我们可以利用STM32F103C8的定时器中断功能,结合HAL库,实现精确的毫秒级延时。这种方法比简单的忙等待方法更节省CPU资源,且在高精度延时需求下更为可靠。在实际项目中,还可以根据具体需求对定时器配置进行调整,如增加多个定时器以实现多个不同延时任务,或者优化中断服务函数以提高系统响应速度。























































































































- 1
- 2
- 3
- 4
- 5
- 6
- 10

- #完美解决问题
- #运行顺畅
- #内容详尽
- #全网独家
- #注释完整
- weixin_382150182023-09-05怎么能有这么好的资源!只能用感激涕零来形容TAT...

- 粉丝: 4065
- 资源: 235





我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- MATLAB设计的车牌识别(GUI界面设计).zip
- MATLAB设计的车牌出入库识别(GUI界面设计).zip
- MATLAB设计的车牌号码出入库管理(GUI界面设计).zip
- MATLAB设计的车牌识别GUI实现(GUI界面设计).zip
- MATLAB设计的车牌识别设计(GUI界面设计).zip
- MATLAB设计的车牌识别GUI界面(GUI界面设计).zip
- MATLAB设计的答题卡识别GUI(GUI界面设计).zip
- 李雨彤项目申请书(1).docx
- MATLAB设计的的小波变换dwt数字水印(GUI界面设计).zip
- MATLAB设计的的语音滤波设计(GUI界面设计).zip
- MATLAB设计的的运动行为检测(GUI界面设计).zip
- MATLAB设计的汉字语音识别(GUI界面设计).zip
- MATLAB设计的汉字识别(GUI界面设计).zip
- MATLAB设计的火焰识别系统设计(GUI界面设计).zip
- MATLAB设计的基于DWT+SVD结合傅里叶变换的数字图像水印水印系统(GUI界面设计).zip
- MATLAB设计的家居防火识别系统(GUI界面设计).zip


