C应用
文章平均质量分 52
其中主要内容为有关C语言的基础应用相关知识
浮若于心
一生,求知求解.....
展开
-
Nordic的IIC地址配置与通信
I2C设备的通信地址通常由硬件决定,并且通过设备上的引脚配置。在许多I2C设备上,有一些引脚(通常标记为A0, A1, A2等)用于设置设备的I2C地址。这些引脚可以通过连接到VCC(高电平)或GND(低电平)来设置不同的地址组合。原创 2024-06-28 20:28:12 · 389 阅读 · 0 评论 -
Nordic的QSPI四线SPI:D0、D1、D2、D3,以及低功耗使用
在SPI(串行外设接口)通信中,D0、D1、D2、D3通常指的是数据线,也叫做数据引脚或通道。这些引脚的使用可能会根据具体设备或配置的不同而有所变化。除了上述标准的引脚,有些SPI设备支持双向或四向SPI通信模式,分别称为双SPI(Dual SPI)和四SPI(Quad SPI),这些模式可以利用更多的数据线来提高数据传输速率。原创 2024-06-28 19:47:49 · 750 阅读 · 0 评论 -
关键字volatile
如果中断服务程序修改了一个共享变量的值,但编译器在主程序中对该变量进行了缓存或寄存器优化,主程序可能无法立即感知到这个变量的值已经发生了改变,导致程序对这个变量的操作结果与期望不符,造成数据不一致性。如果中断服务程序(ISR)中修改了某个变量的值,但编译器对该变量进行了优化,可能会导致意外的行为或者错误的结果。:如果多个线程同时访问一个变量,并且其中一个线程修改了该变量的值,但编译器对该变量进行了优化,可能会导致其他线程无法立即感知到该变量值的变化,从而导致数据不一致性的问题。原创 2024-04-03 19:05:06 · 406 阅读 · 0 评论 -
Static关键字可能带来的风险
比如在一个函数中定义后,该函数并没有多次调用,而大多数就是做一个初始化的存在,由此可能就会导致该内存并没有得到释放而浪费。变量的生命周期超出了它的预期范围,例如在堆上分配了内存并且没有正确释放,那么这块内存将永远不会被释放。为了解决这个问题,需要使用线程同步机制,如互斥锁,来确保在任何时刻只有一个线程能够访问和修改。这会导致计数器的值不正确,不符合预期。变量,而没有适当的同步机制,可能会导致竞态条件和不确定的行为。变量,它是全局共享的。时,可能会发生竞争条件,导致计数器的值不正确。变量可能会导致内存泄漏。原创 2024-03-22 19:39:55 · 496 阅读 · 0 评论 -
c/c++总结
►只有用机器语言编写的程序才能被计算机直接执行,其他任何语 言编写的程序都需要翻译成机器语言。二进制0和1►按照程序设计语言的发展历程,大致可分为机器语言、汇编语言、 高级语言3类。C++的目标是——在保证效率与C语言相当的情况下,加强程序的组织性,保证同样功能的程序,C++更短小48 - 0 65 - A 97 - along - 4float 精确到7...原创 2020-04-05 14:51:18 · 439 阅读 · 0 评论 -
生成随机数函数:rand和srand
头文件为:stdlib.hrand() 会随机生成一个位于 0 ~ RAND_MAX 之间的整数。RAND_MAX 是<stdlib.h> 头文件中的一个宏,它用来指明 rand() 所能返回的随机数的最大值。C语言标准并没有规定 RAND_MAX 的具体数值,只是规定它的值至少为 32767。#include <stdio.h>#include <stdlib.h>int main(){ int a = rand(); printf.原创 2021-05-06 19:01:01 · 737 阅读 · 4 评论 -
C语言中attribute的应用
attribute的经典应用原创 2022-08-03 21:36:15 · 1719 阅读 · 2 评论 -
结构体字节对齐引起的悲伤----数据跨越丢失或出错
对大家的建议就是当对结构体进行连续地址数据赋值时不要轻易直接赋值。比如:1、直接从Flash中读取数据,直接用结构体去存。2、使用memcpy的函数直接整段数据丢进结构体。3、使用指针指向结构体后面进行取值调用。这几个问题都可能因为字节对齐的关系导致最后取得数据有问题。原创 2022-08-19 20:27:23 · 974 阅读 · 4 评论 -
数据结构位域分析
数据结构位域分析。原创 2022-08-16 19:11:28 · 269 阅读 · 0 评论 -
指针的自加和结构体中共同体数据调用
指针的自加和结构体中共同体数据调用原创 2022-08-16 19:34:29 · 372 阅读 · 0 评论 -
指针的指针操作结构体数据、双重指针
双重指针(Double Pointer)是指一个指针变量,它存储的是另一个指针变量的地址。双重指针通常用于在函数中修改指针指向的内存地址,或者动态分配内存并将指针传递回调用函数。在C和C++等编程语言中,双重指针通常以两个星号(**)来表示。原创 2022-08-16 19:25:51 · 615 阅读 · 0 评论