摘要: 在使用串口接受字符串时,可以使用空闲中断(IDLEIE置1,即可使能空闲中断),这样在接收完一个字符串,进入空闲状态时(IDLE置1)便会激发一个空闲中断。在中断处理函数,我们可以解析这个字符串。 需要注意的是,IDLE标志位需要软件清零,否则由于会不断进入中断,而使正常程序无法运行。当再次收到数据 阅读全文
posted @ 2017-09-25 17:30 gexin1023 阅读(5027) 评论(0) 推荐(0) 编辑
摘要: STM32单片机是如何启动的? STM32中的内存 STM32中的内存包含两块主要区域:flash memory(只读)、static ram memory(SRAM,读写)。其中,flash memory 起始于0x08000000,SRAM起始于0x20000000。flash memory的第 阅读全文
posted @ 2017-09-14 15:38 gexin1023 阅读(1306) 评论(0) 推荐(0) 编辑
摘要: APUE学习笔记3_文件IO Unix中的文件IO函数主要包括以下几个:open()、read()、write()、lseek()、close()等。这类I/O函数也被称为不带缓冲的I/O,标准I/O是带缓冲的I/O(当然,标准I/O也可以设置为不带缓冲)。 文件描述符 对于内核而言,所有打开的文件 阅读全文
posted @ 2017-09-14 14:24 gexin1023 阅读(190) 评论(0) 推荐(0) 编辑
摘要: c中的static变量 static变量分配在内存中的数据段,函数内部声明的static变量在函数调用结束时,依然保持在内存中, 静态变量只能被const类型的变量初始化,例如下面的函数会出错 include int initializer(void) { return 50; } int main 阅读全文
posted @ 2017-09-12 12:00 gexin1023 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 在32位系统中,int类型的最大值是0x7fffffff(即除了最高的1Bit其他31位都为1),而最小值是0x80000000(除了最高1bit,其他31位都为0)。 显然,对于最小值求负数是不存在的,为什么会使最小值本身呢? 这是由于在计算负运算时,是针对int类型数据进行“取反加一”操作。这样 阅读全文
posted @ 2017-09-06 15:56 gexin1023 阅读(2793) 评论(0) 推荐(0) 编辑
摘要: 系统滴答定时器(SysTick)中断配置 在STM32标准库中是通过SysTick_Config()函数配置时钟中断的,然后SysTick_Handler()函数自动定时触发其中的函数。 库文件中对SysTick_Config()函数的定义如下所示: SysTick_Config()函数内部主要是对 阅读全文
posted @ 2017-09-04 16:29 gexin1023 阅读(14469) 评论(0) 推荐(2) 编辑
摘要: pragma pack(n)对齐格式 \ pragma pack(n) 是预处理器用来指定对齐格式的指令,表示n对齐。当元素字节小于n时,要扩展到n;若元素字节大于n则占用其实际大小。 对于tmp结构体,32位系统中默认情况下按照4字节对齐,该结构体占用12个字节,上面函数的输出如下: 当在结构体定 阅读全文
posted @ 2017-09-04 11:52 gexin1023 阅读(305) 评论(0) 推荐(0) 编辑
摘要: STM32串口通信UART使用 uart使用的过程为: 1. 使能GPIO口和UART对应的总线时钟 2. 配置GPIO口的输出模式 3. 配置uart口相关的基本信息 4. 使能uart口的相关的中断,如接收中断、空闲中断等 5. 编写中断接收函数 配置对应的GPIO口 对于STM32F4_Dis 阅读全文
posted @ 2017-09-04 10:51 gexin1023 阅读(2238) 评论(0) 推荐(1) 编辑
摘要: 块I/O层 基本概念 系统中可以随机访问固定大小数据片的硬件设备称做块设备,这些固定大小的数据片称之为块。还有一种基本的设备称之为字符设备,其需要按照顺序访问,比如键盘。 扇区:块设备中最小的寻址单元称为扇区,扇区是块设备的物理属性。 块: 文件系统最小的逻辑可寻址单元。是文件系统的一种抽象。 缓冲 阅读全文
posted @ 2017-08-23 17:38 gexin1023 阅读(375) 评论(0) 推荐(0) 编辑
摘要: 虚拟文件系统 内核在它的底层文件系统系统接口上建立一个抽象层,该抽象层使Linux可以支持各种文件系统,即便他们在功能和行为上存在很大差异。 VFS抽象层定义了各个文件系统都支持的基本的、概念上的接口和结构数据。 VFS对象及其数据结构 VFS中有四个主要的对象类型: 超级块:表示一个具体的已安装文 阅读全文
posted @ 2017-08-11 16:55 gexin1023 阅读(338) 评论(0) 推荐(0) 编辑