Toriyung

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

10 2022 档案

C99数据类型定义
摘要:stdint.h库中 /* There is some amount of overlap with <sys/types.h> as known by inet code */ #ifndef __int8_t_defined # define __int8_t_defined typedef s 阅读全文

posted @ 2022-10-29 11:39 Toriyung 阅读(36) 评论(0) 推荐(0) 编辑

关于struct和typedef
摘要:c/c++中有定义数据结构语句 struct student //定义数据结构体 { int a; //..... } struct student a1; //初始化变量 可以看到,定义结构体后每次进行初始化时都需要带上"struct",较为冗余 解决方法是重定义类型typedef //接上面代码 阅读全文

posted @ 2022-10-28 22:50 Toriyung 阅读(22) 评论(0) 推荐(0) 编辑

单片机补充知识
摘要:工程的启动 系统开始执行时先执行启动文件中的复位系统,其中调用C库函数__main,其初始化系统变量,最后调用__rtentry,由__rtentry调用main()函数 阅读全文

posted @ 2022-10-28 22:45 Toriyung 阅读(19) 评论(0) 推荐(0) 编辑

多种程序的对比
摘要:裸机程序 轮询:即顺序执行,定义一个死循环,循环内按顺序执行语句 前后台:即加入了嵌套中断的轮询,顺序语句为后台,中断为前台,中断产生时进行优先级高的中断内事件处理,但事件处理时间不能过长,过长会返回后台 多任务程序 多任务同样在中断中进行事件响应,但事件处理在任务中进行(每个任务是单独的不可返回的 阅读全文

posted @ 2022-10-28 22:45 Toriyung 阅读(33) 评论(0) 推荐(0) 编辑

void类型指针
摘要:void类型是不确定类型的指针,初始化时可以指向任何类型 int a = 1; int *b = &a; void *c = b; //初始化和赋值可以是任意类型指针 但取值操作时需要转换类型 printf("%d",*(int *)c); //取值时需要转换类型 阅读全文

posted @ 2022-10-28 22:25 Toriyung 阅读(26) 评论(0) 推荐(0) 编辑

数据结构整理笔记(未完)
摘要:链表 本质上是一个结构体指向下一个结构体,第一个结构体为链头,重点是指向下一个(next)结构体 代码实现 创建链表 struct Element //链表元素 { char *name; struct Element *next; //名为next的结构体的指针 }; struct List // 阅读全文

posted @ 2022-10-28 22:15 Toriyung 阅读(29) 评论(0) 推荐(0) 编辑

两个循环区别:for(;;)和while(1)
摘要:C语言中死循环有两种常见方式: // 循环方式1 for(;;) { //执行语句 } // 循环方式2 while(1) { //执行语句 } 区别: for(;;)中的;;代表两个空语句,编译器会在编译时将其优化,直接进入循环;而while(1)存在一个判断语句--即是否为1,效率上稍逊于前者 阅读全文

posted @ 2022-10-28 21:16 Toriyung 阅读(199) 评论(0) 推荐(0) 编辑

freertos-内部机制:栈和寄存器变化
摘要:首先为了不会绕晕,需要明确概念:寄存器是公用的,栈是私有的,因为寄存器轮着用所以才需要将寄存器值压入栈,当压入栈后,寄存器就可以进行值的更新。 创建任务 创建任务本质是伪造现场,由于之后的启动任务需要进行现场的保存,但在没有任务即任务现场不存在的情况下需要进行伪造。 具体是栈的创建分配和寄存器值的写 阅读全文

posted @ 2022-10-28 16:44 Toriyung 阅读(327) 评论(0) 推荐(0) 编辑

freertos-内部机制:整理笔记
摘要:三种现场保存 任务切换:由于任务之间没有联系,所以需要保存所有寄存器数据 硬件中断:硬件自动保存一部分寄存器,而还有一部分在中断时会被破坏,需要手动软件保存 调用子函数:R0,R1等寄存器本身就是保存数据用来传递给子函数,所以没有保存的必要 创建函数详解 TCB结构体:内含有函数,函数参数,栈深等, 阅读全文

posted @ 2022-10-26 14:10 Toriyung 阅读(500) 评论(0) 推荐(0) 编辑

神经网络:全连接层
摘要:假设全连接层有m个神经元 此时有n个输入 因为n个输入对每个神经元都有作用影响,而又是相互独立的,则可以通过误差E对单独每个权值ω的求导进行梯度下降更新权值ω,这样不同神经元对每个输入的加权ω不同,得到分类的能力 其中误差是由标签y和实际值y^作差得来的(E = y^ - y),所以称之为有监督学习 阅读全文

posted @ 2022-10-19 12:32 Toriyung 阅读(81) 评论(0) 推荐(0) 编辑

word操作
摘要:1. 公式加编号 在公式最后一位加上 #(编号) 然后回车 阅读全文

posted @ 2022-10-19 12:24 Toriyung 阅读(33) 评论(0) 推荐(0) 编辑

freertos-入门:整理笔记
摘要:任务创建 动态创建:vTaskCreate()。参数:任务函数、命名、堆大小、任务函数参数(没有的话为NULL)、优先级(越大优先级越高)。动态创建只需传入堆的大小,自动分配地址,内部自动生成TCB结构体,该结构体用来初始化任务的一些属性参数。 静态创建:vTaskCreateStatic()。参数 阅读全文

posted @ 2022-10-11 22:28 Toriyung 阅读(271) 评论(0) 推荐(0) 编辑

C语言新知识点:枚举变量enum
摘要:我们可以定义一个变量,然后进行判断 int a; if(a==1){} else{} 但上面的方式导致变量以数值方式表示,晦涩难懂 可以考虑用宏定义 #define Yes 1 但是当范围不同时一样混杂到一块 于是可以考虑定义一种变量,使其取值定在一定范围,这就是枚举变量 typedef enum{ 阅读全文

posted @ 2022-10-08 15:24 Toriyung 阅读(125) 评论(0) 推荐(0) 编辑

SPI(硬件)---OLED&SSD1306的使用
摘要:先说结论:proteus貌似不是很支持硬件I2C和硬件SPI。。两次试验都没成功 但基本的原理还是记录一下 工具 软件:Keil、CUBEMX、Proteus 硬件:单片机 STM32F103C6T6A、OLED+SSD1306 UG-2864HSWEG01 原理图 查询SSD1306芯片知4线SP 阅读全文

posted @ 2022-10-08 12:45 Toriyung 阅读(1234) 评论(0) 推荐(0) 编辑

USART串口学习
摘要:硬件 单片机 STM32F103C6T6 串口 COMPIM 软件 虚拟串口 VSPD Pro 9.0 串口助手 友善串口调试助手 原理 USART有五个引脚,本次实验使用异步通信,只用到RX(接受)和TX(发送)两个引脚,通讯协议如下图,先拉低电平表示开始,而后发送8或9个数据位,再发送1个校验位 阅读全文

posted @ 2022-10-02 11:54 Toriyung 阅读(424) 评论(0) 推荐(0) 编辑

I2C总线(模拟)---OLED&SSD1306的使用
摘要:本次实验I2C总线传输 I2C分为硬件I2C和模拟I2C。其中硬件I2C是单独的I2C硬件驱动,有固定的引脚,和一般芯片驱动使用一样需要操作其寄存器进行数据收发而不用知道I2C的协议内容,灵活度较低但效率高;而模拟I2C是根据I2C协议、时序图,自定义引脚按照协议进行传输,较为灵活但效率较低。 使用 阅读全文

posted @ 2022-10-01 15:58 Toriyung 阅读(1359) 评论(4) 推荐(1) 编辑

点击右上角即可分享
微信分享提示