- 博客(12)
- 收藏
- 关注
原创 【C语言】链表的一般设计步骤
一、链表的设计原理(一般建议使用堆空间存放链表) 设计链表的节点(数据域+指针域) 创建链表头结点(head)头结点相当于定义这一条链表的起点(钥匙) 初始化链表头结点(数据域 + 指针域) 创建链表子节点(node)子节点插入到头结点后面(可以存储更多信息) 初始化链表子结点(数据域 + 指针域) 插入节点(insert)将创建的节点放进链表里面,创立完整链表。 尾插法,将新节点放置链表末尾 头插法,将新节点放置头结点后一个 排序插法,可以按冲从小到大,也可以从大到小 剔除节点(del
2021-08-04 22:25:38
676
1
原创 【C语言】如何使用printf中的宏定义(预定宏) 及 查找程序段错误
c语言使用 printf函数调试(查找段错误) 宏定义 ------在预处理阶段,宏被原样展开替换 //#define 宏名 字串(可以是整数、浮点数、字符串、表达式。。。) #define PI 3.14 //自定义宏 #define STR “abc” //自定义宏 printf()中的预定宏 FILE 正在编译的文件名 LINE 文件当前的行号 FUNCTION 当前所在的函数名 == func DATE 预编译文件的日期 TIME 预编译文件的时间 STDC 判断编译器是否遵循A
2021-08-04 17:12:21
1468
原创 基于linux下的C语言学习 1---C程序过程分析
一、C语言程序运行过程 1.编辑 选择一个适合的程序编辑软件,比如Notepad++,或者sublime编辑软件,更高级的有VSCode。 2.编译 预处理 :其过程为将头文件的具体内容从指定路径拷贝一份到当前程序中,若程序中有宏定义内容,则将宏定义展开,同时删除程序中的所有注释内容。生成一个后缀为.i的文件。 命令为 gcc hello.c -E -o hello.i 编译 :其过程为检查源程序是否存在语法错误,如若通过检测,则将.i文件翻译成汇编文件。生成一个后缀为.s的文件。 命令为 gc
2021-01-19 23:07:05
3395
5
原创 STM32-PWM与串口通信流程
PWM配置流程 1.理解电路原理图 TIM14_CH1(TIM14 – APB1 16位 84MHZ) LED0连接在PF9,低电平灯亮;高电平,灯灭 2.使能定时器14和相关IO口时钟。 使能定时器14时钟:RCC_APB1PeriphClockCmd(); 使能GPIOF时钟:RCC_AHB1PeriphClockCmd (); 3.初始化IO口为复用功能输出。 GPIO_Init(); 4.GPIOF9复用映射到定时器14 GPIO_PinAFConfig(GPIOF,GPIO_P
2021-07-13 20:16:01
1902
1
原创 STM32外部中断与通用定时器设计流程
外部中断设计思路 ②设置NVIC分组 void NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup); ③使能SYSCFG时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE); ④初始化IO口为输入。 GPIO_Init(); ⑤设置IO口与中断线的映射关系。 void SYSCFG_EXTILineConfig(); ⑥初始化线上中断,设置触发条件等。 EXT
2021-07-09 20:18:28
530
1
原创 STM32第四天
七、Systick定时器 定时器:是芯片内部用于计数从而得到时长的一种外设。 定时器定时长短与什么有关???(定时器定时长短与频率及计数大小有关) 定时器频率换算单位:1GHZ=1000MHZ=1000 000KHZ = 1000 000 000HZ Systick定时器,是一个简单的定时器,对于CM3,CM4内核芯片,都有Systick定时器。常用来做延时,或者实时系统的心跳时钟。这样可以节省MCU资源,不用浪费一个定时器。比如uCOS中,分时复用,需要一个最小的时间戳,一般在STM32+UCOS系统中,
2021-07-09 20:13:57
239
原创 STM32第三天
四、库函数开发 4.1 寄存器 寄存器开发优点 直接操作寄存器,运行效率高。 寄存器开发缺点 开发难度大,开发周期长 代码可阅读性差,可移植差 后期维护难度高 4.2库函数 库函数开优点 开发难度较小,开发周期短 代码可阅读性强,可移植高 后期维护难度低 库函数开缺点 相对于寄存器开发,运行效率略低 注意:库函数其实是ST公司对寄存器的进一步封装。 4.3库函数开发LED 1.库函数开发LED要添加的库函数文件:stm32f4xx_gpio.c 2.理解led灯原理图 LED0连接在PF9 PF9
2021-07-08 20:07:56
322
原创 STM32学习第二天
2.4 MCU 微控制单元(Microcontroller Unit;MCU) ,又称单片微型计算机(Single Chip Microcomputer )或者单片机,是把中央处理器(Central Process Unit;CPU)的频率与规格做适当缩减,并将内存(memory)、计数器(Timer)、USB、A/D转换、UART、PLC、DMA等周边接口,甚至LCD驱动电路都整合在单一芯片上,形成芯片级的计算机,为不同的应用场合做不同组合控制。诸如手机(功能机)、PC外围、遥控器,至汽车电子、工业上的步
2021-07-07 20:26:44
459
原创 STM32学习第一章
STM32学习第一章 1.什么是STM32? ST是意法半导体公司 M是基于ARM公司的Cortex-M内核 32是32位单片机 因此STM32是意法半导体公司基于ARM公司的Cortex-M内核设计高性能以及低功耗的32位单片机 2.什么是ARM? ARM-Advanced RISC Machine ARM是英国一家电子公司的名字 ARM敢为天下先,首创了chipless的生产模式,即该公司既不生产芯片,也不设计芯片,而是设计出高效的IP内核,授权给半导体公司使用。 ARM提供一系列内核、体系扩展
2021-07-06 20:06:29
372
原创 基于linux下的C语言学习 3---C语言基本运算介绍
四、运算符、表达式和语句 算术运算符(+ 、 - 、 *、 /、 %、 ++ 、 --) 加法运算符:+ ----------a+b 减法运算符:- ----------a-b 乘法运算符:* ----------a*b 除法运算符:/ ----------a/b 求余运算符:% ---------a%b 例:a = 3,b= 2, a%b = 1 。 规定求余的两个操作数必须为整数。(常识) 自增运算符:++ 理解为:a++等同于a +1,但是在某
2021-01-21 22:59:17
738
1
原创 基于linux下的C语言学习 2---C语言基本数据类型
二、基本数据类型 1.常量 整型常量和浮点型常量 整型 : 123 125 0x5a 浮点型 : 3.24 3.14e5 3.14E-5 字符型常量和字符串型常量 字符 :‘a’ ‘\n’ … 字符串 :‘adad’ ‘hello!’ 2.变量 int a; 此语句的含义为 : 在内存中开辟一块区域,占4个字节,这块区域名称为a。 其数值大小范围是 -2^31 -1 ------ 2 ^31 - 1 unsigned int a ;含义为:
2021-01-20 23:26:54
371
原创 51单片机最简单的智能小车
51单片机最简单的智能小车 拥有一台4个轮子的车,并且带有电机 购买一个电机驱动模块,用于调速转向。(L298N TB6612) 使用手机控制小车,使用蓝牙模块 一个最小51系统板。 要求:单片机I/0口控制,波特率知识 强化版 拥有一台4个轮子的车,并且带有电机 购买一个电机驱动模块,用于调速转向。(L298N TB6612) 使用手机控制小车,使用蓝牙模块 一个最小51系统板。 避障功能(拥有一个小舵机,一个超声波模块) 循迹功能(红外模块) 高级无线控制(ps2) 要求:单片机深入学习,I
2020-09-25 00:19:33
3174
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅