自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 《C语言程序设计现代方法》阅读笔记——第五章 选择语句

首先,由于很容易添加更多的语句到任何 if 或 else 子句中,程序变得更容易修改;其次,这样做可以在向 if 或 else子句中增加语句时避免由于忘记使用花括号而导致错误。_Bool 是整数类型(更准确地说是无符号整型),因此_Boo1 变量实际上就是整型变量;但是和一般的整型不同,_Bool 只能赋值为0或1。一般来说,往_Bool 变量中存储非零值会导是和一般的整型不同,致变量赋值为 1。C99 提供了_Bool型,因此在 C语言的这一版本中,布尔变量可以声明为。

2024-06-18 11:29:28 236

原创 《C语言程序设计现代方法》阅读笔记——第四章 表达式

答:计算v+=e 只会求一次v的值,而计算 v=v+e会求两次的值。在后一种情况下,对v求值可能引起的任何副作用也都会出现两次。i的值在别处被修改和使用了,因此上述语句的结果是未定义的。i 的值可能会自增两次,但我们无法确定到底会发生什么。答:运算符要求操作数是整数,这种情况下可以试试 fmod 函数(23.3节)。如果用=代替+=,语句变成。

2024-06-18 11:14:55 197

原创 《C语言程序设计现代方法》阅读笔记——第二章 C语言基本概念

如果试图访问未初始化的变量(例如,用 printf 显示变量的值,或者在表达式中使用该变量),可能会得到不可预知的结果,如 2568、-30 891或者其他同样没有意义的数值。在某些编译器中,可能会发生更坏的情况(甚至是程序崩溃 )。我们当然可以总是采用复制的方法给变量赋初始值,但还有更简单的方法:在变量声明中加入初始值。答:当出现在main函数中时,这两种语句是完全等价的:二者都终止程序执行,并且向操作系统返回0值。然而,根据C标准,编译器必须用一个空格字符替换每条注释语句,因此上面提到的技巧并不可行。

2024-06-15 14:29:12 270

原创 《C语言程序设计现代方法》阅读笔记——第一章 C语言概述

大多数编译器能根据我们的要求进行更彻底的检查。除了检查错误(毫无疑问违背C语言规定的情况)外,大多数编译器还能提供警告,指出可能存在问题的地方。有些编译器具有多个“警告级别”,选择较高的级别能发现更多问题。如果你的编译器支持多级警告,建议选择最高级别,以便编译器执行其能力范围内最彻底的检查。内存泄漏监测工具帮助定位“内存泄漏”,即那些动态分配却从未被释放的内存块。第2章的“问与答”部分讨论了GCC(2.1节)的错误检查选项,GCC是随Linux操作系统发布的。

2024-06-15 14:04:03 103

原创 stm32反复进入中断USART_IRQHandler问题解决

运行结果:程序开始是正常的,但运行一段时间后,会不断进入中断,USART_GetITStatus 检查又没有中断发生。发现USART_ClearITPendingBith和 USART_ClearFlag功能总体一致,因此问题不在这里。(2)必须第一时间清零RXNE,如没及时清零,下一帧数据过来时就会产生Overrun error!我用的是 STM32F407 芯片 USART2_IRQHandler 总是中断,程序死循环。(1)打开RXNEIE,默认会同时打开RXNE和ORE中断。

2024-06-03 17:05:26 405

原创 STM32读取GPIO状态的代码优化

STM32读取GPIO状态的代码优化,减少非必要工作时间,减少循环一轮所用时间

2024-05-20 17:28:07 401 1

原创 51单片机点亮灯带WS2812B

在官方工具STC-ISP中,选择延时计算器,选择合适的频率,选择使用51单片机对应的指令集;这里设置的最小时间是1us,因此需要调整 i 的大小找到适合的 i 值。用51单片机控制某一引脚电平拉高拉低发送 0,1码时序,具体的波形需用自己的示波器或逻辑分析仪观察,要保证时间上准确。首先附上灯带WS2812B比较重要的参数。注:个人建议还是用_nop_()的方式。那如何设置Delayns的延时时间呢?

2024-05-17 15:38:32 481

原创 如何在KEIL同时安装C51和MDK-ARM编译器

2,某些电脑上安装时,会发现安装完C51再安装MDK-ARM,这时C51的注册信息消失了。3,确定KEIL4-C51版本可以正常运行,且能打开51单片机工程之后,再安装KEIL4-MDK版,并完成注册。2,先安装KEIL4-C51版软件,并用注册机破解完成注册。4,这时用KEIL4打开STM32工程,同时再打开一个51工程,如果二者都能编译,说明安装成功。1,首先需要下载2个软件,KEIL4-C51版和KEIL4-MDK版(MDK是ARM编译器)。3,安装完软件后,一定要完成注册。

2024-05-16 14:47:21 619

原创 STC8如何进行固件烧录

第一步需要下载stc-isp,如图。

2024-03-11 21:55:10 611

原创 C语言数字后面加u的作用

比如0x8000 这是一个16位的数,如果不加u,有的编译器认为它是个负数,然后左移这个数的时候,编译器就会提醒符号位改变,就从负数变成了正数。如果加上u,0x8000u,直接声明这是一个无符号的16位数,随便怎么移动都没事,就相当于 usigned short。u 就表示unsigned,ul 就表示 unsigned long型,也就是无符号的意思。常用在非符号的场景,一是为了防止编译器将它作为有符号数字进行处理,显式声明,以防万一;二是防止编译提醒符合位改变等情况。

2024-03-07 10:08:18 965 1

原创 keil MDK下载地址

https://www.keil.com/demo/eval/arm.htm

2024-03-04 17:01:06 465

原创 keil 5软件仿真遇到问题:error 65: access violation at 0x40021000 : no ‘read‘ permission的解决办法

keil 5软件仿真遇到问题:error 65: access violation at 0x40021000 : no 'read' permission的解决办法

2024-02-27 19:55:08 1246

原创 无法访问GitHub解决办法

学习git时,遇到无法访问GitHub问题的解决办法

2024-02-26 21:28:20 799

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除