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

蓝桥杯—stm32g431rbt6串口中断和定时器输出pwm学习

目录

串口中断

定时器中断

输出pwm 


串口中断

配置异步模式,使能中断,选择波特率。

串口接收中断开启  HAL_UART_Receive_IT(&huart1,data, 3);

回调函数:

void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
    if(huart ->Instance == USART1)
    {
    printf ("接收到的数据是:%s \r\n",data);
    LED_Control (0x03);
    sprintf((char*)data ,"data: %c",data[0] );
    LCD_DisplayStringLine(Line6,data);
    HAL_UART_Receive_IT(&huart1, data ,3);//重新使能接收中断,不然只进一次
    }
}

串口重定向:#include "stdio.h"

int fgetc(FILE *f)
{uint8_t ch;HAL_UART_Receive (&huart1 ,(uint8_t *)&ch,1,HAL_MAX_DELAY );return ch;
}
int fputc (int ch,FILE *f)
{HAL_UART_Transmit (&huart1 ,(uint8_t *)&ch,1,HAL_MAX_DELAY );return ch;
}

定时器中断

高级定时器:TIM1 TIM8 

通用定时器: TIM2 TIM3 TIM4  TIM15 TIM16 TIM17 

基本定时器:TIM6 TIM7

 定时器频率 = 80MHZ/分频系数/计数值

定时时间 = (5000 * 8000)/ 80 000000 = 0.5 秒     7999   4999

1s :  10000 * 8000 / 80 000000 = 1           9999    7999  

100Hz :  719  999

打开定时器中断: HAL_TIM_Base_Start_IT(&htim3 );

定时器中断回调函数:

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
    if(htim -> Instance == TIM3)
    {
      
 printf ("定时器中断\r\n");
    }
}

输出pwm 

假如用定时器17,lcd显示占空比,按下一次B1按键占空比加10。

打开pwm输出  HAL_TIM_PWM_Start (&htim17 ,TIM_CHANNEL_1 );

 while(1)里:

 =========================================

http://www.lryc.cn/news/56541.html

相关文章:

  • zed驱动的安装 及 遇到问题 及 ros标定
  • 打车代驾顺风车货车租运系统开发功能(司机端)
  • CT剂量及描述方法详细介绍
  • Spring Boot应用优雅关闭
  • 【实用技巧】7-Zip如何加密压缩文件?
  • Anaconda详细安装使用
  • git放弃修改,强制覆盖本地代码
  • 大数据自我进阶(数据仓库)-暂未完全完成
  • Springmvc中跨服务器文件上传
  • 常见漏洞扫描工具AWVS、AppScan、Nessus的使用
  • Vue学习——【第二弹】
  • 恐怖的ChatGPT!
  • MIPI D-PHYv2.5笔记(12) -- Clock Lane的ULPS
  • 创建网络数据集
  • 从功能到年薪30W+的测试开发工程师,分享我这10年的职业规划路线
  • ChatGPT中文免登陆-ChatGPT中文版上线
  • 多线程之最大并行数
  • 智慧城市发展的基本原理是什么?
  • 技术宅小伙:利用JAVA开发个常用的编辑接口
  • Image as set points【ICLR 2023 notable top 5%】
  • 10个超级实用的Python技巧
  • 【Java语法糖】泛型与源码角度分析静态问题
  • App 抓包提示网络异常怎么破?
  • 操作系统-文件系统
  • 虚拟机无法访问外网的问题
  • 软件测试【常见】62 道面试题,不背完这些你还想去面试?
  • 聚观早报 | ChatGPT 停止 Plus 付费;李子柒油管广告收益登顶热搜
  • 对接多个 Neuron 实例,实现多网关协同分析与设备联动
  • windows下 Jenkins 主从节点通过SSH连接
  • JAVA练习101-任务调度器