• 蓝桥杯嵌入式总结


    用到外部时钟:UART,ADC,RTC

    用到中断:UART,TIM

    LED_KEY:

    将高低电平写入对应引脚

    HAL_GPIO_WritePin(GPIOD, GPIO_PIN_2, GPIO_PIN_SET);    

    读取对应引脚的电平状态

    HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_0)

    UART:

    发送:

    int fputc(int ch, FILE *f)         重定义中断发送,要包含#include "stdio.h"

    HAL_UART_Transmit(&huart1,(u8 *)&ch,1,40);        串口发送数据

    接收:

    中断接收回调函数

    void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)

    HAL_UART_Receive_IT(&huart1,&uart_rxbuf,1);   开启串口中断接收

    memset(&rx_buf,'\0',sizeof(rx_buf));   将数组里的字符清0,要包含#include"string.h"

    ADC:

    HAL_ADC_Start(&hadc1);        开启ADC转换

    HAL_ADC_GetValue(&hadc1);      获取转换后的值,要得到电压值需再*3.3f/4096

    I2C:

    void EEPROM_write(uint8_t addr,uint8_t data)

    uint8_t  EEPROM_read(uint8_t addr)

    void MCP4017_write(uint8_t data)

    uint8_t MCP4017_read()        读时需要*0.78740

    TIM:

    输入捕获:

    输入捕获中断回调函数

    void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim)

    TIM2->CCER |=0x02;     调整下次捕获为下降沿触发

    TIM2->CCER &=~0x02; 调整下次捕获为上升沿触发

    __HAL_TIM_SetCounter(&htim2,0);  将计数值清零

    __HAL_TIM_GetCounter(&htim2);    获取当前计数值

    HAL_TIM_IC_Start_IT(&htim2,TIM_CHANNEL_1);        打开输入捕获中断

    输出比较:

    HAL_TIM_PWM_Start(&htim17,TIM_CHANNEL_1);        打开PWM输出比较

    RTC:

    HAL_RTC_GetTime(&hrtc,&rtc_time,RTC_FORMAT_BIN);
    HAL_RTC_GetDate(&hrtc,&rtc_data,RTC_FORMAT_BIN);

  • 相关阅读:
    同花顺_代码解析_交易系统_J09_18
    MySQL数据 - 索引
    执行事务合伙人和法人区别是什么
    企业表格软件-FineReport 数组函数概述
    来看看这个JS题输出什么?教你通过断电调试一步步看原因
    Django模型的继承
    Matthew Ball:为什么说AR/VR元宇宙是Meta和苹果的下一个战场?
    Zabbix 5.0 监控教程(一)
    Hadoop系列(四)——Zookeeper总结
    P33 JSlider滑块
  • 原文地址:https://blog.csdn.net/m0_73075546/article/details/137403185