笔记
文章平均质量分 70
CZM___
这个作者很懒,什么都没留下…
展开
-
【C语言】链表的一般设计步骤
一、链表的设计原理(一般建议使用堆空间存放链表)设计链表的节点(数据域+指针域)创建链表头结点(head)头结点相当于定义这一条链表的起点(钥匙)初始化链表头结点(数据域 + 指针域)创建链表子节点(node)子节点插入到头结点后面(可以存储更多信息)初始化链表子结点(数据域 + 指针域)插入节点(insert)将创建的节点放进链表里面,创立完整链表。尾插法,将新节点放置链表末尾头插法,将新节点放置头结点后一个排序插法,可以按冲从小到大,也可以从大到小剔除节点(del原创 2021-08-04 22:25:38 · 560 阅读 · 1 评论 -
【C语言】如何使用printf中的宏定义(预定宏) 及 查找程序段错误
c语言使用 printf函数调试(查找段错误)宏定义------在预处理阶段,宏被原样展开替换//#define 宏名 字串(可以是整数、浮点数、字符串、表达式。。。)#define PI 3.14 //自定义宏#define STR “abc” //自定义宏printf()中的预定宏FILE 正在编译的文件名LINE 文件当前的行号FUNCTION 当前所在的函数名 == funcDATE 预编译文件的日期TIME 预编译文件的时间STDC 判断编译器是否遵循A原创 2021-08-04 17:12:21 · 1258 阅读 · 0 评论 -
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 · 1660 阅读 · 2 评论 -
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 · 432 阅读 · 1 评论 -
STM32第四天
七、Systick定时器定时器:是芯片内部用于计数从而得到时长的一种外设。定时器定时长短与什么有关???(定时器定时长短与频率及计数大小有关)定时器频率换算单位:1GHZ=1000MHZ=1000 000KHZ = 1000 000 000HZSystick定时器,是一个简单的定时器,对于CM3,CM4内核芯片,都有Systick定时器。常用来做延时,或者实时系统的心跳时钟。这样可以节省MCU资源,不用浪费一个定时器。比如uCOS中,分时复用,需要一个最小的时间戳,一般在STM32+UCOS系统中,原创 2021-07-09 20:13:57 · 175 阅读 · 0 评论 -
STM32第三天
四、库函数开发4.1 寄存器寄存器开发优点直接操作寄存器,运行效率高。寄存器开发缺点开发难度大,开发周期长代码可阅读性差,可移植差后期维护难度高4.2库函数库函数开优点开发难度较小,开发周期短代码可阅读性强,可移植高后期维护难度低库函数开缺点相对于寄存器开发,运行效率略低注意:库函数其实是ST公司对寄存器的进一步封装。4.3库函数开发LED1.库函数开发LED要添加的库函数文件:stm32f4xx_gpio.c2.理解led灯原理图LED0连接在PF9 PF9原创 2021-07-08 20:07:56 · 220 阅读 · 0 评论 -
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 · 343 阅读 · 0 评论 -
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 · 248 阅读 · 0 评论 -
基于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 · 593 阅读 · 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 - 1unsigned int a ;含义为:原创 2021-01-20 23:26:54 · 274 阅读 · 0 评论 -
基于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 · 3279 阅读 · 5 评论 -
51单片机最简单的智能小车
51单片机最简单的智能小车拥有一台4个轮子的车,并且带有电机购买一个电机驱动模块,用于调速转向。(L298N TB6612)使用手机控制小车,使用蓝牙模块一个最小51系统板。要求:单片机I/0口控制,波特率知识强化版拥有一台4个轮子的车,并且带有电机购买一个电机驱动模块,用于调速转向。(L298N TB6612)使用手机控制小车,使用蓝牙模块一个最小51系统板。避障功能(拥有一个小舵机,一个超声波模块)循迹功能(红外模块)高级无线控制(ps2)要求:单片机深入学习,I原创 2020-09-25 00:19:33 · 2943 阅读 · 0 评论