你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32的计数器例程

[复制链接]
STMCU小助手 发布时间:2023-2-6 15:08
因为用stm32f103c8 因此想到外部时钟触发模式
  RCC_ClocksTypeDef RCC_ClockFreq;

SystemInit();//源自system_stm32f10x.c文件,只需要调用此函数,则可完成RCC的配置.
RCC_GetClocksFreq(&RCC_ClockFreq);

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE);
void main(void)
{
u16COUN1=0;
u16 COUN2=0;

while(1)
{undefined
   COUN1=TIM1->CNT;
}
}

GPIO_InitTypeDefGPIO_InitStructure;
/*PA0,PA12-> 左右脉冲输入 */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; //
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //50M时钟速度
GPIO_Init(GPIOA, &GPIO_InitStructure);

voidTIM1_Configuration(void) //只用一个外部脉冲端口
{

TIM_TimeBaseInitTypeDef   TIM_TimeBaseStructure;
   //配置TIMER1作为计数器
   TIM_DeInit(TIM1);
  TIM_TimeBaseStructure.TIM_Period = 0xFFFF;
TIM_TimeBaseStructure.TIM_Prescaler = 0x00;
TIM_TimeBaseStructure.TIM_ClockDivision = 0x0;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure); // Time base configuration
TIM_ETRClockMode2Config(TIM1, TIM_ExtTRGPSC_OFF,TIM_ExtTRGPolarity_NonInverted, 0);
TIM_SetCounter(TIM1,0);
TIM_Cmd(TIM1, ENABLE);
}


程序解释:
注意:
第一步:(1)stm32f103c8只有TIM1_ETR(PA12,Pin33)
              (2)外部时钟输入与中断无关
第二步:设置RCC第三步,设置定时器模式
第三步,设置定时器模式
第四步,可以在主函数中读取计数器的值,其它的应用,就看具体的情况了。
————————————————
版权声明:赵福帅

收藏 评论0 发布时间:2023-2-6 15:08

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版