![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
单片机
且听牛哞
这个作者很懒,什么都没留下…
展开
-
const关键字
在STM32中,关于const关键字和变量存储位置的理解有一些关键点需要澄清。原创 2024-07-29 23:56:00 · 266 阅读 · 0 评论 -
关于Linux内核的操作系统
因为很多教材在讲os的时候,更喜欢从app的角度来看待os,于是很多时候被各种概念绑架。因为很多例如进程,线程,系统调用这样的东西都是由os在硬件上抽象出来的。站在cpu的角度,理解指令是怎么在cpu上一条一条的运行的。这个interrupt可以是一个系统调用(x86下,很多OS的系统调用是靠software interrupt实现的),可以是一个用户程序产生的异常,也可以是一个硬件产生的事件中断。于是你的问题解决了:一个用户程序运行的时候,Linux就在内存里呆着,等着一个中断的到来。原创 2024-07-29 22:17:54 · 143 阅读 · 0 评论 -
串口重定向函数
【代码】串口重定向函数。原创 2024-07-27 23:50:49 · 86 阅读 · 0 评论 -
USART_GetFlagStatus函数和USART标志位
这个函数本身并不是STM32标准外设库(HAL库或旧的标准外设库)中直接提供的函数,但它遵循了STM32 USART(通用同步异步收发传输器)通信的一种常见实现模式。这个函数看起来像是用户为了简化USART数据发送过程而自定义的封装函数。解析这个函数:总结:这个函数 是用于检查STM32 USART(或UART)外设中特定标志位的状态的。这个函数返回一个 枚举类型的值,通常是 或 ,分别表示标志位被设置或未被设置。下面是对这个函数的详细理解: 在STM32的编程中, 这种写法是访问原创 2024-07-27 23:44:46 · 948 阅读 · 0 评论 -
STM32的USART简介
通用同步异步收发器(Universal Synchronous Asynchronous Receiver and Transmitter,USART)是一个串行通信设备,可以灵活地与外部设备进行全双工数据交换。串行通信一般是以帧格式传输数据,即一帧一帧地传输,每帧包含有起始信号、数据。USART基础上裁剪掉了同步通信功能,只有异步通信。信息、停止信息,可能还有校验信息。特率发生器,可以提供多种波特率,使得它的应用更加广泛。是只有唯一一个参数值,很多参数值都可以自定义设置,只是增强它的兼容性。原创 2024-07-26 00:28:56 · 341 阅读 · 0 评论 -
波特率与比特率
波特率(Baud rate)是通信领域中一个非常重要的概念,它表示每秒传输的符号数(symbol per second, sps),是衡量数据通信速率的单位。串口通信的一个数据包从起始信号开始,直到停止信号结束,数据包的起始信号有一个逻辑0的数据位表示,而停止信号可由0.5、1、1.5、2个逻辑1的数据位表示,只要约定一致即可。串口异步通信中由于没有时钟信号,比如DB9接口是没有时钟信号的,所以两个通信设备之间需要约定好波特率,即每个码元的长度,以便对信号进行解码。原创 2024-07-25 15:33:29 · 182 阅读 · 0 评论 -
全局变量与局部变量
2:模块内全局变量一律用static,避免命名冲突,只有多实例的属性变量才用结构体,多实例结构体变量用static全局数组,外部用函数访问,带下标参数,或者h文件中声明一个。3:在不同中断中调用的变量,或者同时在中断和主循环中调用的变量,一般都要声明为volatile,除非明确变量不需要考虑访问冲突。1:每个模块都包含一个c文件和一个h文件。h文件只包含类型声明和函数声明,外部要调用模块内部变量,用函数的方式,不要。操作,否则很容易出现读或写一半的时候突然来个高优先级中断,导致读写不完整,偶发性异常。原创 2024-07-23 15:54:39 · 176 阅读 · 0 评论 -
简单延时函数需要注意的细节
/是nCount变量不为0的时候,就一直自减, //也就是把nCount-1的值赋给nCount,最后直到nCount=0结束循环 }里面的for后面有个;)是合法的,并且经常用于只需要通过循环迭代来消耗时间,而不需要在每次迭代中执行额外代码的情况。因此,循环的迭代仅仅由初始化表达式(在您的例子中没有,因为。函数中,循环体被省略了(或者说被替换为了一个空语句,即分号。循环的循环体就是空的,仅仅通过循环的迭代(即。的递减)来消耗时间,从而达到延时的效果。是在函数参数中声明的)、循环条件(原创 2024-07-22 00:08:28 · 99 阅读 · 0 评论 -
Keil代码提示功能
在配置里,点击Text Completion,把Symbol after这个选项勾上即可。第一就是配置里代码提示没有开启,点开最右端的配置。新下载的Keil没有代码提示功能,有两个原因。原创 2024-07-21 23:51:53 · 207 阅读 · 0 评论 -
c语言循环语法以及简单的延时函数
Delay(0xFFFFF)是一个固定的延迟时间,延迟的时间是一个预定义的常数。因此,Delay(0xFFFFF)表示延迟一个固定的时间,而Delay(uint32_t count)可以根据需要设置不同的延迟时间。函数的参数是一个32位的无符号整数,表示延时的时间,单位是一个循环的执行时间。需要注意的是,这个延时函数是一个非精确的延时函数,因为循环的执行时间可能会受到其他因素的影响,比如编译器优化、处理器的频率等。这段代码的作用是让LED灯以一定的频率闪烁,通过不断的开关控制和延时来实现。原创 2024-07-21 23:07:58 · 298 阅读 · 0 评论 -
关于野火单片机报错问题flash download failed cortex-m3
原因debug设置错误,将连接方式修改为under reset。原创 2024-07-21 16:27:40 · 161 阅读 · 0 评论