• 2024-08-30二分法查+范围内临近值查找
        1uint16FindPosition(uint8arr[],uint16length,uint8target)2{3uint16low=0;4uint16high=length-1;5uint16closest_position=0xFFFF;67if(target<arr[0]||target>arr[length-1])8{9
  • 2024-08-23STM32学习记录-05 -2-TIM输出比较
    1输出比较简介OC(OutputCompare)输出比较输出比较可以通过比较CNT与CCR寄存器值的关系,来对输出电平进行置1、置0或翻转的操作,用于输出一定频率和占空比的PWM波形每个高级定时器和通用定时器都拥有4个输出比较通道高级定时器的前3个通道额外拥有死区生成和互补输出的功能2
  • 2024-08-12IIC模拟 && E2PROM
    IIC模拟&&E2PROM IIC_eeprom.h#ifndef__IIC_EEPROM_H__#define__IIC_EEPROM_H__/*****************************************************************************************型号Byte容量页数页内字节数WORD_ADDR位数WORD_ADDR字节
  • 2024-07-237.22笔记
    规定引脚TX发送RX接收SLC时钟  SDA数据SCLK时钟  MOSI主机输出数据  MISO主机输入数据  CS片选(用于指定通信对象)CAN_HCAN_L 差分数据脚(用两个引脚表示一个差分数据)DPDM差分数据脚全双工(FullDuplex)通信允许数据同时在两个方向上传输,即在一个通信链
  • 2024-07-16HAL库源码移植与使用之驱动LCD屏
    LCD屏会有烧屏残影的风险,但因其价格便宜他非常适合用于单片机显示显示屏分为以下几种:他的组成部包含玻璃基板、背光、驱动IC等LCD接口的种类MCU很简单,连51单片机都能驱动,但无法频繁刷新,一般有着20几个引脚引出的就是MCU接口我们常用的是就是MCU,下面讲的也是LCD屏幕MCU驱动
  • 2024-07-09单片机-Flash动态自保存
         说明:该方法为固定大小的数据包方式进行记录,写满一页后再擦除设定页从新记录,增加Flash使用寿命。    环境需求:Flash需要可程序读写。    以STM32,中容量为例(HAL库方式)。        注意事项:避开程序空间,注意页的大小有的为1K,有的为2K按需
  • 2024-06-23Flash均衡读写
    #defineFLASH_INITIAL_BYTE0xff #definePAGE_NUM_PER_CONFIG       2 #defineCONFIG_FLASH_PAGE_START     508#defineCONFIG_BUF_SIZEsizeof(CFG_CHARGE_ST)/2#define  CONFIG_FLASH_ADDRESS_START
  • 2024-06-22crc16 linux版本
    #include<stdio.h>#include<stdint.h>//CRC-16-CCITT标准的多项式#definePOLY0x1021uint16_tcrc16(uint16_tcrc,constunsignedchar*buffer,size_tlen){while(len--){crc^=(*buffer++<<8);for(inti=0;i<
  • 2024-06-22STM32硬件接口I2C应用(基于FT6336)
    目录概述1硬件介绍1.1 ST7796-LCD1.2MCUIO与LCDPIN对应关系1.3 MCUIO与Touch PIN对应关系2FT6336的寄存器2.1FT6336寄存器列表2.2寄存器功能介绍 3STM32Cube控制配置I2C3.1 软硬件版本信息3.2 I2C参数配置3.3 使用STM32Cube产生工程4HAL库函数
  • 2024-06-20TMS320F28377D学习日志:day2点亮LED
    文章目录一、28377开发板的led电路分析二、28377的GPIO相关寄存器介绍2.1前言2.2GPySET寄存器介绍2.3GPyCLEAR寄存器介绍三、程序介绍3.1引入库3.2配置GPIO引脚功能3.2.1GPIO_SetupPinMux函数3.2.1GPIO_SetupPinOptions函数3.3系统初始化3.4循环程序参考文
  • 2024-04-30stm32F07 HAL 库 通过定时器方式实现呼吸灯 自定义呼吸灯函数 (以参数方式设置io口,亮或灭的持续时间,亮或灭的频率,从最低亮度开始上升)
    效果: 1、通过Stm32CubMX开启定时器、设置对应的io口,然后生成工程STM32CubeMX|STM32HAL库方式的微秒延时函数  2、自定义呼吸灯函数代码://呼吸灯函数//GPIO_TypeDef*GPIOx:GPIO组(A-G)//uint16_tGPIO_Pin:IO口(GPIO_Pin_0--GPIO_Pin_16)//
  • 2024-04-26STM32之UASRT试验
    一、实验目的1.实现STM32F407开发板与上位机工具通讯,中断方式 具体实现的效果:上电后,下位机主动发送helloworld,上位机收到并显示;上位机发送数字0~9,回复:zero~nine2.通讯协议,后面补充3.硬件使用野火开发版STM32F4074.与开发板连接的接口是Usb转串口,根据原理图看出选择的
  • 2024-04-24关于引脚复用,不得不提的GPIO_PinSource 和GPIO_Pin
    调整前的代码GPIO_PinAFConfig(GPIOA,GPIO_Pin_9,GPIO_AF_4);GPIO_PinAFConfig(GPIOA,GPIO_Pin_10,GPIO_AF_4);调整后的代码GPIO_PinAFConfig(GPIOA,GPIO_PinSource9,GPIO_AF_4);GPIO_PinAFConfig(GPIOA,GPIO_PinSource10,GPIO_AF_4);  不难看出,该工程师调整的就是上面红色参
  • 2024-04-17123123
    #include<stdio.h>#include<stdint.h>#pragmapack(push,1)typedefstruct{   struct{      uint16_tmon:8;            //月      uint16_tyear:8;         //以2000年为基准   };   struct{      uint1
  • 2024-04-17123
    #include<stdio.h>#include<stdint.h>#pragmapack(push,2)typedefunion{uint16_tall;struct{uint16_ttime_set1:2;uint16_ttime_set2:2;uint16_ttime_set3:2;uint16_ttime_set4:2;
  • 2024-03-12stm32 TIM输出比较(OC) PWM
    stm32P6-4 05:00  ([6-4]PWM驱动LED呼吸灯&PWM驱动舵机&PWM驱动直流电机_哔哩哔哩_bilibili)1.stm32f10x.tim.h部分头文件讲解voidTIM_DeInit(TIM_TypeDef*TIMx);​​​​​​​voidTIM_TimeBaseInit(TIM_TypeDef*TIMx,TIM_TimeBaseInitTypeDef*TIM_TimeBaseInitStruct
  • 2024-01-22CRC - 校验汇总
    CRC-校验汇总软件: 1.计算法: #ifndef__CRCLIB_H__#define__CRCLIB_H__#include"stdint.h"uint8_tcrc4_itu(uint8_t*data,uint16_tlength);uint8_tcrc5_epc(uint8_t*data,uint16_tlength);uint8_tcrc5_itu(uint8_t*data,uint16_tlength);uin
  • 2024-01-04合约交易系统开发(开发案例)丨合约交易所系统开发(逻辑方案)/设计程序/成熟源码
    智能合约的生命周期根据其运行机制可概括为协商、开发、部署、运维、学习和自毁六个阶段,其中开发阶段包括合约上链前的合约测试,学习阶段包括智能合约的运行反馈与合约更新为智能合约的基础架构模型,模型自底向上由基础设施层、合约层、运维层、智能层、表现层和应用层组成,基
  • 2023-12-12Time slice based task routine in C
          基于时间片的轮询任务调度实例。#include<stdint.h>#include<stdio.h>#include<WinSock2.h>#defineMAX_TASK_NUM10#defineMAX_HALF_WORD0xffff#definefalse0#definetrue1staticuint16_tg_ti
  • 2023-11-27实用!Arduino平台最强大的“显卡”驱动:Adafruit GFX 图形库8000字详细使用指南
    实用!Arduino平台最强大的“显卡”驱动:AdafruitGFX图形库8000字详细使用指南光锥之外​昆明尚禾农业科技有限公司副总经理​关注他  概述Arduino的Adafruit_GFX库为我们所有的LCD和OLED显示屏提供了通用语法和图形功能集。这使得Arduino示例程序可
  • 2023-11-20CH573 CH582 CH592 CH579常用库函数记录
    一:系统篇:软件复位SYS_ResetExecute();延时函数mDelaymS(1);//延时1msmDelayuS(1);//延时1us设置晶体匹配电容 voidHSECFG_Capacitance(HSECapTypeDefc);//外部高频32MHZvoidLSECFG_Capacitance(LSECapTypeDefc);//外部低频32.768KHZ 开启DCD
  • 2023-11-17CH32V20x_30x系列用户选择字区域应用与操作
    来源:https://www.cnblogs.com/liaigu/p/17838776.html简介CH32V20x系列、V30x系列用户选择字区域大小为128字节,除却用户选择字信息结构用到的16字节,还剩余112字节可作为他用,用来存储相关数据等。注意剩余空间在使用时,和上述一致,若[7:0]为数据,则[15:8]为数据的反码。此外,在对剩
  • 2023-10-20ardunio-stm32采集风速传感器
                波特率都是4800设备地址默认01广播FF #definemySerialSerial2byteMsg_getdata[8]={0x01,0x03,0x00,0x00,0x00,0x02,0xC4,0x0B};charRecData[9]={0};//==============校验==============uint16_tmodbus_crc16(char
  • 2023-10-20STM32 EEPROM_Emulation 保存数据使用注意事项
    1目的:stm32官方提供flash模拟eeprom的代码例子,为了能给产品添加数据保存功能,可以改造该例子迅速完成数据保存的功能。示例代码路径:C:\Users\rd-yhzhang\STM32Cube\Repository\STM32Cube_FW_F1_V1.8.5\Projects\STM32F103RB-Nucleo\Applications\EEPROM\EEPROM_Emulation。2
  • 2023-10-02自定义数据类型和数据类型别名
    自定义数据类型和数据类型别名代码//example.gopackagetestimport"fmt"funcTestFunction(){ fmt.Println("自定义类型") //自定义类型mesType,它是uint16的别名 //注意:虽然mesType是uint16的别名,但是二者仍是不同类型,不能够 //相互赋值和比较,需要进行类型转换 //