Stm32旧版库函数12——定时器的使用\time1

 

#include "stm32f10x_lib.h"
#include "usart.h"
#include "delay.h"
#include "sys_config.h"
#include  <math.h>    //Keil library  


#define   uchar unsigned char
#define   uint unsigned int    

//通用定时器中断初始化
//这里时钟选择为APB1的2倍,而APB1为36M
//arr:自动重装值。
//psc:时钟预分频数
//这里使用的是定时器1
void Timerx_Init(u16 arr,u16 psc)
{
    RCC->APB2ENR|=1<<11;//TIM1时钟使能    1<<3 = 8
     TIM1->ARR=arr;  //设定计数器自动重装值//刚好1ms    
    TIM1->PSC=psc;  //预分频器7200,得到10Khz的计数时钟
    //这两个东西要同时设置才可以使用中断
    TIM1->DIER|=1<<0;   //允许更新中断                
    TIM1->DIER|=1<<6;   //允许触发中断       
    TIM1->CR1|=0x01;    //使能定时器1
      MY_NVIC_Init(1,3,TIM1_UP_IRQChannel,2);//抢占1,子优先级3,组2        //是TIM1_UP_IRQChannel不是通用定时器的TIM1_IRQChannel
      //MY_NVIC_Init(0,3,TIM1_BRK_IRQChannel,2);//抢占1,子优先级3,组2        
      //MY_NVIC_Init(2,3,TIM1_TRG_COM_IRQChannel,2);//抢占1,子优先级3,组2        
      //MY_NVIC_Init(3,3,TIM1_CC_IRQChannel,2);//抢占1,子优先级3,组2                                        
}


int main(void)
{
  Stm32_Clock_Init(3);         //配置RCC 24m
  Delayms(10);
  GPIO_Configuration();         //配置GPIO
  USART1_Configuration();     //配置串口1
  Timerx_Init(10000,2399);
  while(1)
 {

//    USART1_SendData('X');             
//    USART1_SendData(0X0D);     //换行
//    USART1_SendData(0X0A);     //回车
    Delayms(5);                 //延时
  }
}

//定时器1中断服务程序
void TIM1_UP_IRQHandler(void)
{                                       
    if(TIM1->SR&0X0001)//溢出中断
    {
      USART1_SendData('*');             //每过1秒,就发送一个字符                                                       
    }                   
    TIM1->SR&=~(1<<0);//清除中断标志位         
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
HC-SR04超声波测距模块是一种常用的测距传感器,可以通过发送超声波脉冲并接收回波信号来测量距离。在STM32库函数版中,可以通过以下步骤来使用HC-SR04超声波测距模块: 1. 首先,需要包含"sys.h"头文件,并初始化HC_SR04超声波模块,可以使用HC_SR04_Init()函数进行初始化。\[1\] 2. 在测距之前,需要向Trig控制端输入至少10us的高电平触发信号,可以使用HC_SR04_start()函数发送20us的脉冲触发信号。\[1\] 3. HC-SR04模块内部会发送8个40KHz的方波并检测回波信号,一旦检测到回波信号,Echo接收端会输出高电平回响信号,高电平的持续时间就是超声波从发射到返回的时间。根据公式:距离=高电平时间*声速(340M/S)/2,可以计算出测得的距离。\[2\] 总结来说,使用STM32库函数版的HC-SR04超声波测距模块,需要初始化模块并发送触发信号,然后根据回响信号的高电平时间计算出距离。 #### 引用[.reference_title] - *1* *2* [STM32——库函数版——超声波测距模块](https://blog.csdn.net/qq_45844792/article/details/111215858)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [STM32连接HC-SR04超声波测距(结合STM32CubeMX和HAL库函数)](https://blog.csdn.net/wuwenbin12/article/details/118575989)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fengyuzhe13

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值