<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[qq_40600203的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/qq_40600203</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq_40600203]]></copyright><item><title><![CDATA[解决git报错error: Your local changes to the following files would be overwritten by merge: xxx.c Pleas]]></title><link>https://blog.youkuaiyun.com/qq_40600203/article/details/142990340</link><guid>https://blog.youkuaiyun.com/qq_40600203/article/details/142990340</guid><author>qq_40600203</author><pubDate>Wed, 16 Oct 2024 19:59:41 +0800</pubDate><description><![CDATA[【代码】解决git报错error: Your local changes to the following files would be overwritten by merge: xxx.c Pleas。]]></description><category></category></item><item><title><![CDATA[STM32CubeMx+stm32f407+FreeRTOS+LAN8720实现LWIP以太网UDP TCP数据收发功能]]></title><link>https://blog.youkuaiyun.com/qq_40600203/article/details/142595303</link><guid>https://blog.youkuaiyun.com/qq_40600203/article/details/142595303</guid><author>qq_40600203</author><pubDate>Fri, 27 Sep 2024 16:23:25 +0800</pubDate><description><![CDATA[单片机实现LWIP的调试]]></description><category></category></item><item><title><![CDATA[C库里面的字符串操作函数（百问网7天物联网智能家居笔记6）]]></title><link>https://blog.youkuaiyun.com/qq_40600203/article/details/125250011</link><guid>https://blog.youkuaiyun.com/qq_40600203/article/details/125250011</guid><author>qq_40600203</author><pubDate>Sun, 12 Jun 2022 21:21:18 +0800</pubDate><description><![CDATA[C库里面的字符串操作函数●  strlen
○  用于计算指定字符串的长度  。
○  参数是字符串的首地址，以‘\0’结尾（计算结果不包含‘\0’）
○  返回字符串的长度，unsigned int类型   非负整数

●  strcat
○  用于两个字符串的拼接
○  将参数2的字符串  连接到 参数1的尾部，‘\0’也会追加过去，也就是实现 拼接到 字符串尾部的效果
○  成功返回新字符串的首地址，也就是目标字符串(参数1)的首地址，失败返回NULL
●  strncat
○  类似strcat的升]]></description><category></category></item><item><title><![CDATA[MQTT基础知识点（百问网7天物联网智能家居笔记7）]]></title><link>https://blog.youkuaiyun.com/qq_40600203/article/details/125219419</link><guid>https://blog.youkuaiyun.com/qq_40600203/article/details/125219419</guid><author>qq_40600203</author><pubDate>Fri, 10 Jun 2022 12:46:48 +0800</pubDate><description><![CDATA[MQTT 的基础知识
●  MQTT的是基于发布/订阅的方式进行的网络通信协议 ，常用于物联网中。
○  其中发布和订阅是基于主题topic来发送消息的
○  MQTT是再TCP协议上实现的网络通信协议。
●  在MQTT的通信过程中的两个动作：订阅和发布，是由客户端和服务器来参与完成的。一个客户端既可以是订阅者，也可以是发布者。

● 客户端（client）
○ 可以向MQTT服务器上传很多个topic的消息，也能订阅MQTT服务器支持转发的多个topic
○  MQTT的客户端想要长期和服务器保持连接，]]></description><category></category></item><item><title><![CDATA[裸机增加移植FreeRTOS（百问网7天物联网智能家居笔记5）]]></title><link>https://blog.youkuaiyun.com/qq_40600203/article/details/125136692</link><guid>https://blog.youkuaiyun.com/qq_40600203/article/details/125136692</guid><author>qq_40600203</author><pubDate>Sun, 05 Jun 2022 21:19:01 +0800</pubDate><description><![CDATA[2. 新建FreeRTOSConfig.h

● 根据官方参考和实际需求添加修改‘
○ 系统时钟
■ configCPU_CLOCK_HZ
● CPU时钟，就是我们常说的主频。注意：单位是Hz。
● 如：STM32F407主频为168M：#define configCPU_CLOCK_HZ      (168000000)
■ configSYSTICK_CLOCK_HZ
● 这个需要确认下
■ configTICK_RATE_HZ
● 系统滴答，即系统每秒钟滴答的次数，可以说是系统的心跳，但需要和主频区分]]></description><category></category></item><item><title><![CDATA[自己移植官方HAL文件和配置基础工程（百问网7天物联网智能家居笔记4）]]></title><link>https://blog.youkuaiyun.com/qq_40600203/article/details/125136500</link><guid>https://blog.youkuaiyun.com/qq_40600203/article/details/125136500</guid><author>qq_40600203</author><pubDate>Sun, 05 Jun 2022 21:00:29 +0800</pubDate><description><![CDATA[基础工程文件添加
● 新建自己的工程文件夹
需要官方的CMSIS、HAL库文件， 中断文件、系统配置文件、启动文件

● 将HAL库下的 Driver 目录的 CMSIS 和 HAL_Driver ==> 7_HAL

● 移植 HAL 库的配置文件,文件名改为：stm32f1xx_hal_conf.h

● 移植系统配置文件.c 和 。h：


● 添加启动文件：

● 添加管理中断的源文件和头文件


● 工程里添加文件

● 设置 MDK 工程：
○ 编译器选择 version 5

○ 选择全局宏：]]></description><category></category></item><item><title><![CDATA[框架搭建与新建工程（百问网7天物联网智能家居笔记1）]]></title><link>https://blog.youkuaiyun.com/qq_40600203/article/details/125136363</link><guid>https://blog.youkuaiyun.com/qq_40600203/article/details/125136363</guid><author>qq_40600203</author><pubDate>Sun, 05 Jun 2022 20:44:27 +0800</pubDate><description><![CDATA[●  一个确切需求的项目进行应用拆分，构建一个较为科学规范的系统结构。
●  让一个开发者对自己要做的事情，有一个清晰的认识，并且同时做好了设计开发的计划，那么后面的事情就是根据这个计划节奏按部就班的做事情就好

针对本次物联网智能家居的需求，进行分析
● Mini开发板和服务器进行网络通信，使服务器可以下发命令控制开发板的LED，且可以将开发板上的按键信息上传给服务器


● 一看就会，一做就废
○  看了很多基础视频，看了很多例程，看视频的时候好像清楚该怎么写了，但是一旦脱离视频轮到自己动手的时候就只能]]></description><category></category></item><item><title><![CDATA[系统时钟的配置、半主机模式（百问网7天物联网智能家居笔记3）]]></title><link>https://blog.youkuaiyun.com/qq_40600203/article/details/125136125</link><guid>https://blog.youkuaiyun.com/qq_40600203/article/details/125136125</guid><author>qq_40600203</author><pubDate>Sun, 05 Jun 2022 20:34:45 +0800</pubDate><description><![CDATA[●  根据STM32F1XX的参考手册RCC部分，我们可以看到有两个章节都是关于RCC的（第七章和第八章）

● 这是对应不同规格处理器做的不同说明，一个使用通用存储容量型的处理器，另一个使用的是串联通信型的处理器
○ STM32F103是第七章的那种类型的处理器  , 在手册的最前方有说明  :
●  以系统时钟SYSCLK处为界限

●  我们可以将F103的时钟配置分为两部分  ：
○  配置系统时钟  （时钟树的左侧分析）
■  系统时钟源可以来自三个方向，一个是内部高速时钟HSI，一个是PLL输出]]></description><category></category></item><item><title><![CDATA[基础程序的设计（百问网7天物联网智能家居笔记2）]]></title><link>https://blog.youkuaiyun.com/qq_40600203/article/details/125133297</link><guid>https://blog.youkuaiyun.com/qq_40600203/article/details/125133297</guid><author>qq_40600203</author><pubDate>Sun, 05 Jun 2022 20:27:05 +0800</pubDate><description><![CDATA[●  为什么要有一个main函数？
○  从stm32f103的启动代码分析：  	■ 这段汇编代码表达的意思是，当启动文件的代码执行到这一段的时候，会首先调用外部函数SystemInit  ， 然后再去调用__main  。 这个【__main】是C库中的函数，C库手册对其的解释是：  
■  在第三条，跳转到【_rt_entry】  ， 这个函数也是C库中的，它的解释是：

●  main函数之前都做了什么动作：（ 也就是说处理器从上电启动开始  ）
○  第一步是注册中断向量表，第二部是调用Syste]]></description><category></category></item><item><title><![CDATA[7_STM32的串口和调试串口_韦老师物联网课]]></title><link>https://blog.youkuaiyun.com/qq_40600203/article/details/123808873</link><guid>https://blog.youkuaiyun.com/qq_40600203/article/details/123808873</guid><author>qq_40600203</author><pubDate>Mon, 28 Mar 2022 22:56:10 +0800</pubDate><description><![CDATA[STM32 的串口
● USART和UART的区别:
○ USART支持同步通信，该模式有一根时钟线提供时钟 。
○ STM32F103系列最多有3个通用同步异步收发器（ Universal synchronous asynchronous receiver transmitter， USART）， 2个通用异步收发器（ Universal
asynchronous receiver transmitter， UART）
● 串口在嵌入式中经常使用，一般使用UART就足够

作为调试口，打印程序运行的状态信]]></description><category></category></item><item><title><![CDATA[6_通信的基础知识_韦老师物联网课]]></title><link>https://blog.youkuaiyun.com/qq_40600203/article/details/123805463</link><guid>https://blog.youkuaiyun.com/qq_40600203/article/details/123805463</guid><author>qq_40600203</author><pubDate>Mon, 28 Mar 2022 20:49:15 +0800</pubDate><description><![CDATA[串行/并行通信
● 串行通信简单的说就是数据依次传输，比如要传输0x11111111，一位一位的发送，需要发送8次。
● 并行通信则是几个数据一起传输，同样是0x11111111，如果8位一起发送，只需要发送1次 。
○ 串行通信就像单车道，行驶的车辆需要依次行驶。并行通信就像多车道，同时多辆汽车并排行驶。但当车速很快的时候，多车道上并列行驶的汽车之间会形成“气流”相互干扰，单车道则受影响较小，速度能够进一步提升 。

全双工/半双工/单工传输
● 按照数据传输的方向，通信可以分为全双工、半双工和单工。
○]]></description><category></category></item><item><title><![CDATA[5_中断_韦老师物联网课]]></title><link>https://blog.youkuaiyun.com/qq_40600203/article/details/123781234</link><guid>https://blog.youkuaiyun.com/qq_40600203/article/details/123781234</guid><author>qq_40600203</author><pubDate>Sun, 27 Mar 2022 20:56:05 +0800</pubDate><description><![CDATA[Cortex-M3 的中断和优先级

● 异常和中断的效果基本一致，都是暂停当前任务，优先执行紧急事件，因此一般将中断和异常统称为中断
○ 把CPU内部产生的紧急事件叫做异常，比如非法指令（除零）、地址访问越界等；
○ 来自CPU外部的片上外设产生的紧急事件叫做中断，比如GPIO引脚电平变化、定时器溢出等。
● ARM公司设计了Cortex-M3内核，这个内核就包含了中断系统框架，对应资料“CortexM3权威指南.pdf”，后简称《CM3权威指南》。
○ 《CM3权威指南》讲解的是Cortex-M3内核的]]></description><category></category></item><item><title><![CDATA[4_时钟与GPIO_韦老师物联网课]]></title><link>https://blog.youkuaiyun.com/qq_40600203/article/details/123780424</link><guid>https://blog.youkuaiyun.com/qq_40600203/article/details/123780424</guid><author>qq_40600203</author><pubDate>Sun, 27 Mar 2022 20:25:48 +0800</pubDate><description><![CDATA[单片机时钟
● 现代计算机系统中必定有时钟
● 高级的单片机系统中，存在不同频率的时钟
STM32 时钟树
● ①HSI（ 内部高速时钟）
● ②HSE（外部高速时钟）
● ③LSE（外部低速时钟）
● ④LSI（内部低速时钟）为时钟源
● ⑥系统时钟SYSCLK最高为72MHz
● ⑦高速接口总线AHB由⑥SYSCLK系统时钟分频得到，最高是系统时钟的72MHz。
● ⑧外设总线APB1和⑨外设总线APB2，来源于⑦高速接口总线AHB， APB1的输出时钟最高是36MHz， APB2的输出时钟最高是72M]]></description><category></category></item><item><title><![CDATA[3_STM32结构和单片机开发模式的发展_韦老师物联网课]]></title><link>https://blog.youkuaiyun.com/qq_40600203/article/details/123622261</link><guid>https://blog.youkuaiyun.com/qq_40600203/article/details/123622261</guid><author>qq_40600203</author><pubDate>Sun, 20 Mar 2022 21:49:23 +0800</pubDate><description><![CDATA[一款新芯片的上手思路

去芯片原厂官网，下载资料。
● 《数据手册》（Product Specifications）
● 《参考手册》（Reference Manuals）
下载公板或者其它开发板配套资料
● 《原理图》
根据 《原理图》 分析
● 最小系统
根据示例程序和《参考手册》编写程序

最小系统
● 用最少的电路组成单片机可以工作的系统。
● 最小系统包含：

电源电路
时钟电路
复位电路
调试/下载电路
● 怎么仿真单步调试：
○ 需要 JTAG（Joint Test Action Group）]]></description><category></category></item><item><title><![CDATA[1_基础概念介绍_韦老师物联网课]]></title><link>https://blog.youkuaiyun.com/qq_40600203/article/details/123614059</link><guid>https://blog.youkuaiyun.com/qq_40600203/article/details/123614059</guid><author>qq_40600203</author><pubDate>Sun, 20 Mar 2022 15:36:20 +0800</pubDate><description><![CDATA[什么是ARM（Advanced RISC Machines）
● 一家设计处理器架构的公司。
● 采用 ARM 公司提供方案设计的处理器芯片统称。
ARM 结构的分类
● A 应用程序型（Application Processor）
● R 事实控制器型（Real TIme Controller）
● M 微控制器型（Microcontroller Processor）
■ Cortex-M3/M4
基于 ARM 的 STM32 处理器
● STM32就是ST公司基于ARM Cortex- M系列内核设计的]]></description><category></category></item><item><title><![CDATA[2_学习嵌入式MCU，应该关注哪些官方资料_韦老师物联网课]]></title><link>https://blog.youkuaiyun.com/qq_40600203/article/details/122911069</link><guid>https://blog.youkuaiyun.com/qq_40600203/article/details/122911069</guid><author>qq_40600203</author><pubDate>Sun, 13 Feb 2022 17:15:53 +0800</pubDate><description><![CDATA[原厂要关注的资料


换一款MCU, 要学会怎么去下载关键资料：数据手册和参考手册。
以 STM32 为例:

STM32系列的MCU,通常还会有: 《Cortex-M3/M4编程手册》，《闪存编程手册》，《勘误手册》，《原厂固件包示例源码》，《原厂固件包用户手册》，《HAL库用户手册》。
STM32系列的MCU,通常还会有: 《Cortex-M3/M4编程手册》，《闪存编程手册》，《勘误手册》，《原厂固件包示例源码》，《原厂固件包用户手册》，《HAL库用户手册》。





“Product Specif]]></description><category></category></item><item><title><![CDATA[C和指针_ch7]]></title><link>https://blog.youkuaiyun.com/qq_40600203/article/details/110358017</link><guid>https://blog.youkuaiyun.com/qq_40600203/article/details/110358017</guid><author>qq_40600203</author><pubDate>Tue, 01 Dec 2020 23:11:37 +0800</pubDate><description><![CDATA[7.11_3

函数把数字字符串转换成整数,并返回这个整数

#include "stdio.h"
#include "string.h"

int ascii_to_interger(char *string)
{
	int value = 0;
	
	//逐个把字符串的字符转换为数字
	while (*string &gt;= '0' &amp;&amp; *string &lt;= '9')
	{
		value *= 10;
		value += *string - '0';
		string++;]]></description><category></category></item><item><title><![CDATA[链表]]></title><link>https://blog.youkuaiyun.com/qq_40600203/article/details/110066980</link><guid>https://blog.youkuaiyun.com/qq_40600203/article/details/110066980</guid><author>qq_40600203</author><pubDate>Tue, 24 Nov 2020 20:42:07 +0800</pubDate><description><![CDATA[创建链表，并输出显示各个节点
#include &lt;stdio.h&gt;
#include &lt;malloc&gt;

struct Node
{
	int data; //数据域
	struct Node *pNext; //指针域
}

//函数声明
struct Node *create_list(void)；


int main(void)
{
	struct Node *pHead = NULL; //创建头节点
	pHead = create_list();	//create_lis]]></description><category></category></item><item><title><![CDATA[C和指针_6指针]]></title><link>https://blog.youkuaiyun.com/qq_40600203/article/details/109340670</link><guid>https://blog.youkuaiyun.com/qq_40600203/article/details/109340670</guid><author>qq_40600203</author><pubDate>Fri, 30 Oct 2020 20:56:54 +0800</pubDate><description><![CDATA[6.18-3

编写函数reverse_string,把参数字符串中的字符反向排列

void reverse_string(char *str)
{
	char *last_str;
	for (last_str = str; *last_str != '\0'; last_str++)
		;
	while (str &lt; last_str)
	{
		char temp;
		temp = *str;
		*str = *last_str;
		*last_str = temp;
		str++;]]></description><category></category></item><item><title><![CDATA[C和指针_左值和右值]]></title><link>https://blog.youkuaiyun.com/qq_40600203/article/details/109340290</link><guid>https://blog.youkuaiyun.com/qq_40600203/article/details/109340290</guid><author>qq_40600203</author><pubDate>Wed, 28 Oct 2020 19:18:39 +0800</pubDate><description><![CDATA[左值和右值

左值

标识了一个特定的内存位置。
间接访问和下标引用的结果是个左值。


右值

指定的一个值，该值存储在内存的某个位置。所以字面值常量不是左值，只能是个右值。
常量




左值意味着一个位置，右值意味着一个值。
所以，在使用右值的地方也可以使用左值，但是在需要左值的地方不能使用右值。


...]]></description><category></category></item></channel></rss>