<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[czm___的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/czm___</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; czm___]]></copyright><item><title><![CDATA[【C语言】链表的一般设计步骤]]></title><link>https://blog.youkuaiyun.com/czm___/article/details/119388806</link><guid>https://blog.youkuaiyun.com/czm___/article/details/119388806</guid><author>czm___</author><pubDate>Wed, 04 Aug 2021 22:25:38 +0800</pubDate><description><![CDATA[一、链表的设计原理（一般建议使用堆空间存放链表）


设计链表的节点（数据域+指针域）


创建链表头结点（head）头结点相当于定义这一条链表的起点（钥匙）
初始化链表头结点（数据域 + 指针域）


创建链表子节点（node）子节点插入到头结点后面（可以存储更多信息）
初始化链表子结点（数据域 + 指针域）


插入节点（insert）将创建的节点放进链表里面，创立完整链表。
尾插法，将新节点放置链表末尾
头插法，将新节点放置头结点后一个
排序插法，可以按冲从小到大，也可以从大到小


剔除节点（del]]></description><category></category></item><item><title><![CDATA[【C语言】如何使用printf中的宏定义（预定宏） 及 查找程序段错误]]></title><link>https://blog.youkuaiyun.com/czm___/article/details/119387917</link><guid>https://blog.youkuaiyun.com/czm___/article/details/119387917</guid><author>czm___</author><pubDate>Wed, 04 Aug 2021 17:12:21 +0800</pubDate><description><![CDATA[c语言使用  printf函数调试（查找段错误）


宏定义
------在预处理阶段，宏被原样展开替换
//#define 宏名  字串（可以是整数、浮点数、字符串、表达式。。。）
#define PI 3.14     //自定义宏
#define STR “abc” //自定义宏


printf()中的预定宏
FILE 正在编译的文件名
LINE 文件当前的行号
FUNCTION 当前所在的函数名 == func
DATE 预编译文件的日期
TIME 预编译文件的时间
STDC 判断编译器是否遵循A]]></description><category></category></item><item><title><![CDATA[STM32-PWM与串口通信流程]]></title><link>https://blog.youkuaiyun.com/czm___/article/details/118709874</link><guid>https://blog.youkuaiyun.com/czm___/article/details/118709874</guid><author>czm___</author><pubDate>Tue, 13 Jul 2021 20:16:01 +0800</pubDate><description><![CDATA[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]]></description><category></category></item><item><title><![CDATA[STM32外部中断与通用定时器设计流程]]></title><link>https://blog.youkuaiyun.com/czm___/article/details/118614032</link><guid>https://blog.youkuaiyun.com/czm___/article/details/118614032</guid><author>czm___</author><pubDate>Fri, 09 Jul 2021 20:18:28 +0800</pubDate><description><![CDATA[外部中断设计思路
②设置NVIC分组   					void NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup);
③使能SYSCFG时钟 					 RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);
④初始化IO口为输入。				GPIO_Init();
⑤设置IO口与中断线的映射关系。		void SYSCFG_EXTILineConfig();
⑥初始化线上中断，设置触发条件等。	EXT]]></description><category></category></item><item><title><![CDATA[STM32第四天]]></title><link>https://blog.youkuaiyun.com/czm___/article/details/118613966</link><guid>https://blog.youkuaiyun.com/czm___/article/details/118613966</guid><author>czm___</author><pubDate>Fri, 09 Jul 2021 20:13:57 +0800</pubDate><description><![CDATA[七、Systick定时器
定时器：是芯片内部用于计数从而得到时长的一种外设。
定时器定时长短与什么有关？？？（定时器定时长短与频率及计数大小有关）
定时器频率换算单位：1GHZ=1000MHZ=1000 000KHZ = 1000 000 000HZ
Systick定时器，是一个简单的定时器，对于CM3,CM4内核芯片，都有Systick定时器。常用来做延时，或者实时系统的心跳时钟。这样可以节省MCU资源，不用浪费一个定时器。比如uCOS中，分时复用，需要一个最小的时间戳，一般在STM32+UCOS系统中，]]></description><category></category></item><item><title><![CDATA[STM32第三天]]></title><link>https://blog.youkuaiyun.com/czm___/article/details/118581294</link><guid>https://blog.youkuaiyun.com/czm___/article/details/118581294</guid><author>czm___</author><pubDate>Thu, 08 Jul 2021 20:07:56 +0800</pubDate><description><![CDATA[四、库函数开发
4.1 寄存器
寄存器开发优点
直接操作寄存器，运行效率高。
寄存器开发缺点
开发难度大，开发周期长
代码可阅读性差，可移植差
后期维护难度高
4.2库函数
库函数开优点
开发难度较小，开发周期短
代码可阅读性强，可移植高
后期维护难度低
库函数开缺点
相对于寄存器开发，运行效率略低
注意：库函数其实是ST公司对寄存器的进一步封装。
4.3库函数开发LED
1.库函数开发LED要添加的库函数文件：stm32f4xx_gpio.c

2.理解led灯原理图
LED0连接在PF9     PF9]]></description><category></category></item><item><title><![CDATA[STM32学习第二天]]></title><link>https://blog.youkuaiyun.com/czm___/article/details/118556485</link><guid>https://blog.youkuaiyun.com/czm___/article/details/118556485</guid><author>czm___</author><pubDate>Wed, 07 Jul 2021 20:26:44 +0800</pubDate><description><![CDATA[2.4 MCU
微控制单元(Microcontroller Unit；MCU) ，又称单片微型计算机(Single Chip Microcomputer )或者单片机，是把中央处理器(Central Process Unit；CPU)的频率与规格做适当缩减，并将内存(memory)、计数器(Timer)、USB、A/D转换、UART、PLC、DMA等周边接口，甚至LCD驱动电路都整合在单一芯片上，形成芯片级的计算机，为不同的应用场合做不同组合控制。诸如手机(功能机)、PC外围、遥控器，至汽车电子、工业上的步]]></description><category></category></item><item><title><![CDATA[STM32学习第一章]]></title><link>https://blog.youkuaiyun.com/czm___/article/details/118527475</link><guid>https://blog.youkuaiyun.com/czm___/article/details/118527475</guid><author>czm___</author><pubDate>Tue, 06 Jul 2021 20:06:29 +0800</pubDate><description><![CDATA[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提供一系列内核、体系扩展]]></description><category></category></item><item><title><![CDATA[基于linux下的C语言学习 3---C语言基本运算介绍]]></title><link>https://blog.youkuaiyun.com/czm___/article/details/112922810</link><guid>https://blog.youkuaiyun.com/czm___/article/details/112922810</guid><author>czm___</author><pubDate>Thu, 21 Jan 2021 22:59:17 +0800</pubDate><description><![CDATA[四、运算符、表达式和语句

算术运算符（+ 、 - 、   *、   /、    %、   ++ 、  --）


加法运算符：+   ----------a+b
减法运算符：-    ----------a-b
乘法运算符：*    ----------a*b
除法运算符：/    ----------a/b
求余运算符：%  ---------a%b
例：a = 3,b= 2,   a%b = 1 。 规定求余的两个操作数必须为整数。（常识）
自增运算符：++   理解为：a++等同于a +1，但是在某]]></description><category></category></item><item><title><![CDATA[基于linux下的C语言学习 2---C语言基本数据类型]]></title><link>https://blog.youkuaiyun.com/czm___/article/details/112913023</link><guid>https://blog.youkuaiyun.com/czm___/article/details/112913023</guid><author>czm___</author><pubDate>Wed, 20 Jan 2021 23:26:54 +0800</pubDate><description><![CDATA[二、基本数据类型
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 ；含义为：]]></description><category></category></item><item><title><![CDATA[基于linux下的C语言学习 1---C程序过程分析]]></title><link>https://blog.youkuaiyun.com/czm___/article/details/112851008</link><guid>https://blog.youkuaiyun.com/czm___/article/details/112851008</guid><author>czm___</author><pubDate>Tue, 19 Jan 2021 23:07:05 +0800</pubDate><description><![CDATA[一、C语言程序运行过程
1.编辑

选择一个适合的程序编辑软件，比如Notepad++，或者sublime编辑软件，更高级的有VSCode。

2.编译

预处理 ：其过程为将头文件的具体内容从指定路径拷贝一份到当前程序中，若程序中有宏定义内容，则将宏定义展开，同时删除程序中的所有注释内容。生成一个后缀为.i的文件。
命令为  gcc hello.c -E -o hello.i
编译  ：其过程为检查源程序是否存在语法错误，如若通过检测，则将.i文件翻译成汇编文件。生成一个后缀为.s的文件。
命令为  gc]]></description><category></category></item><item><title><![CDATA[51单片机最简单的智能小车]]></title><link>https://blog.youkuaiyun.com/czm___/article/details/108786137</link><guid>https://blog.youkuaiyun.com/czm___/article/details/108786137</guid><author>czm___</author><pubDate>Fri, 25 Sep 2020 00:19:33 +0800</pubDate><description><![CDATA[51单片机最简单的智能小车

拥有一台4个轮子的车，并且带有电机
购买一个电机驱动模块，用于调速转向。（L298N  TB6612）
使用手机控制小车，使用蓝牙模块
一个最小51系统板。

要求:单片机I/0口控制，波特率知识
强化版

拥有一台4个轮子的车，并且带有电机
购买一个电机驱动模块，用于调速转向。（L298N  TB6612）
使用手机控制小车，使用蓝牙模块
一个最小51系统板。
避障功能（拥有一个小舵机，一个超声波模块）
循迹功能（红外模块）
高级无线控制（ps2）

要求:单片机深入学习，I]]></description><category></category></item></channel></rss>