随笔 - 226,  文章 - 0,  评论 - 4,  阅读 - 30199

随笔分类 -  嵌入式C语言学习

volatile
摘要:1.编译器优化,优化掉看起来重复无用的代码。 (1)并行设备的硬件寄存器(如状态寄存器)。当声明指向并行设备的硬件寄存器的指针时要用volatile修饰,因为寄存器可以随时被外设硬件修改。例如使用for循环对指向寄存器的指针循环读写的时候如果不加volatile修饰指针,编译器会优化,只执行最后一次 阅读全文
posted @ 2024-03-16 10:31 小凉拖 阅读(17) 评论(0) 推荐(0) 编辑
数组的长度
摘要:数组的长度是固定的,因此对于一个定义了没有初始化的数组,它的所有元素都被赋予了0 此时计算数组的长度时,长度为数组的长度*类型的长度 阅读全文
posted @ 2024-01-05 10:37 小凉拖 阅读(30) 评论(0) 推荐(0) 编辑
if……else if
摘要:如果是几个if并列,并且如果if都为真则几个if语句都会执行,如果是if……else if则执行第一个为真的语句即便是后面的语句还有为真的也不执行 1 int main() 2 { 3 OLED_Init(); 4 int value1=1,value2=2,value3=3; 5 OLED_Cle 阅读全文
posted @ 2024-01-01 15:16 小凉拖 阅读(17) 评论(0) 推荐(0) 编辑
结构体内部包含结构体指针
摘要:1 typedef struct ListNode 2 { 3 Menu_t _Attibute; 4 struct ListNode *_fatherMenu;//struct不能少,别和C++混了 5 struct ListNode *_childrenMenu1; 6 struct ListN 阅读全文
posted @ 2023-12-19 22:18 小凉拖 阅读(17) 评论(0) 推荐(0) 编辑
数据类型一些相关问题
摘要:小端和大端存储: 注意一个内存地址8位,因此8位8位的取 数据类型 强制类型转换并不会改变变量的数据类型和数值 本例子来源于ST官方函数 1 //stm32f10x_flash.c 2 FLASH_Status FLASH_ProgramWord(uint32_t Address, uint32_t 阅读全文
posted @ 2023-12-13 14:52 小凉拖 阅读(42) 评论(0) 推荐(0) 编辑
整型和浮点型是怎么存储的
摘要:先看一段程序: 1 int main() 2 { 3 int n = 9; 4 float* pFloat = (float*)&n; 5 printf("n的值为:%d\n", n);//将一个整型值以整型的形式取出来 6 printf("*pFloat的值为:%f\n", *pFloat);// 阅读全文
posted @ 2023-12-11 22:47 小凉拖 阅读(14) 评论(0) 推荐(0) 编辑
数据类型
摘要:强制类型转换并不会改变变量的类型,和指针指向的变量的类型 只有常量引用才可以接任意类型,指针和引用只能接同类型的变量 确定一个地址下变量的类型: 1 *((__IO uint16_t*)Adress);//STM32中地址是32位的,该语句并没有改变地址的类型,只是表明有个无符号16位的指针指向该地 阅读全文
posted @ 2023-12-11 21:15 小凉拖 阅读(5) 评论(0) 推荐(0) 编辑
位操作表示运算
摘要:判断是否能整除 如果A能被B整除那么(A&(B-1))==0 阅读全文
posted @ 2023-12-11 17:15 小凉拖 阅读(6) 评论(0) 推荐(0) 编辑
位操作
摘要:数据拼接 在通信协议中我们往往只能一个字节一个字节的读取,但是外设一个完整的数据往往不止一个字节,这个时候我们就需要数据拼接: 限制数据位数 USARTx->DR = (Data & (uint16_t)0x01FF);//USARTx->DR读到的是9位数据 (16位数据)检查最高位是否为1 1 阅读全文
posted @ 2023-11-30 23:17 小凉拖 阅读(20) 评论(0) 推荐(0) 编辑

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示