2024年2月28日
摘要: STM32-CAN通讯 一、发送和接收流程 can通讯传输的是一种差分信号,关于具体的硬件电路略。 1、发送流程 前置工作:如 时钟的开启、引脚的配置;CAN邮箱和模式等配置参考下面或HAL库选择 选择一个空置的邮箱(判断空置:CAN_TSR的TMEx位); 在这个空置邮箱中按数据帧格式设置ID、数 阅读全文
posted @ 2024-02-28 11:28 持枢丶 阅读(109) 评论(0) 推荐(0) 编辑
  2024年1月18日
摘要: STM32基本定时器 1.时基单元 计数寄存器 (TIMx_CNT) 计数器从0累加计数到自动重装载数值(TIMx_ARR寄存器),然后重新从0开始计数并产生一个计数器溢出事件。 预分频寄存器 (TIMx_PSC) 它也有缓存,也是在更新事件产生时刷新缓存。 自动重装载寄存器(TIMx_ARR) 设 阅读全文
posted @ 2024-01-18 19:57 持枢丶 阅读(61) 评论(0) 推荐(0) 编辑
  2024年1月17日
摘要: #include "Driver_IIC.h" #include "Delay.h" /** * IIC默认地工作于从模式。 * 生成起始条件后自动地从从模式切换到主模式, * 当仲裁丢失或产生停止信号时,从主模式切换到从模式。 * * * 从模式用于接收数据;主模式用于发送数据。 */ /** * 阅读全文
posted @ 2024-01-17 18:20 持枢丶 阅读(72) 评论(0) 推荐(0) 编辑
  2024年1月15日
摘要: STM32 1、keil的配置以及vscode的配置略 2、stm32的命名规则 todo 以下以stm32lf103ze为例。 3、点亮第一个小灯 ​ 开启时钟、设置输入/输出模式、给小灯的位赋值0。 开启时钟 开启时钟使用到的寄存器为RCC_APB2ENR,32位,高16位为保留位。 第二位IO 阅读全文
posted @ 2024-01-15 21:25 持枢丶 阅读(43) 评论(0) 推荐(0) 编辑
  2023年12月24日
摘要: 51单片机【点阵屏】 ​ 我们有一个8*8的点阵屏,里面是64个发光二极管。 ​ 二极管的阳极我们给它接了74HC595的八个输出引脚,阴极接P00-P07引脚。 ​ 74HC595的八个引脚控制八个行,P00-P07控制八个列,行为1,列为0 对应的那个LED灯会亮,其他的组合不行。 ​ 如何让7 阅读全文
posted @ 2023-12-24 22:28 持枢丶 阅读(71) 评论(0) 推荐(0) 编辑
  2023年12月23日
摘要: 51 单片机【外部中断、定时器中断、回调函数】 ​ 这里的外部中断类似监听器,时时刻刻监视某引脚的电平变化;这里的定时器中断类似于定时任务,可以定时执行某函数;这里将回调函数和中断结合起来,案例里有点设计模式的味道(忘了哪个了,也可能就是感觉,关于高层不能调用低层的解决),也有点函数式编程的味道。 阅读全文
posted @ 2023-12-23 21:07 持枢丶 阅读(169) 评论(0) 推荐(0) 编辑
  2023年12月21日
摘要: 51单片机 1、51单片机初始知识 在51单片机里,int为16位。 给单片机写程序的意义就是让输入/输出的高低电平可以动起来。(不写代码的高电平就一直是高电平了,除非拿开关等期间让它改变。) 51有自己的编译器,有些语法和C语言并不相通。 51单片机有256位寻址。即256Byte空间可用。但高1 阅读全文
posted @ 2023-12-21 08:52 持枢丶 阅读(68) 评论(0) 推荐(0) 编辑
  2023年12月7日
摘要: 算法【快速排序】 快速排序。选择一个作为比较的元素,这里我们选择首元素,这个元素我叫他‘比较元素’;前后两个指针(其实是索引变量)同时往后和往前进行遍历,开头的指针遇到比‘比较元素’大的元素停下来(空循环体的循环即可实现),末尾的指针往前遍历,遇到比‘比较元素’小的元素停下来;两个元素都停止后,交换 阅读全文
posted @ 2023-12-07 20:40 持枢丶 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 算法【冒泡排序】 冒泡排序是将每相邻两个数作比较,根据排序规则作交换。每一趟可以交换出一个最大(或最小)的数放到数组末尾,之后每趟循环可以少跑一个元素,如此循环(外层)N趟。 以下代码为冒泡排序: void bubble(int *arr, int size){ for(int i = 0; i<s 阅读全文
posted @ 2023-12-07 16:44 持枢丶 阅读(15) 评论(0) 推荐(0) 编辑
摘要: 数据结构【动态数组】 在堆中申请数组空间,扩容时realloc,注意不可增删改的情况并处理即可。 以下代码不一定完全正确。 #include <stdio.h> #include <stdlib.h> /** * 声明动态数组,并提供相关的函数操作 */ // 动态数组结构体 typedef str 阅读全文
posted @ 2023-12-07 14:35 持枢丶 阅读(105) 评论(0) 推荐(0) 编辑