随笔分类 -  嵌入式学习记录

摘要:时钟系统: 构成: 1.振荡器——脉搏 RC振荡器 晶体振荡器 四种:HSE,HSI,LSE,LSI 2.唤醒定时器 3.PLL倍频器 4.各种分频器 可以通过stm32cubemx进行时钟配置,但是在SystemClock_Config()函数前,在启动文件中有默认的时钟配置。 while (1) 阅读全文
posted @ 2023-10-09 20:15 zxkic 阅读(101) 评论(0) 推荐(0) 编辑
摘要:USART通信 同步通信和异步通信: 同步通信:通信双方根据同步信号进行通信的方法。(spi和iic) 异步通信:依赖于双方彼此的独立时钟,约定好通信速度。(uart) 串行通信和并行通信: 串行通信:按位传输,同一时刻只能收或发1个bit的信息,只需要一根信号线。(USART、I2C、SPI) 并 阅读全文
posted @ 2023-09-22 21:35 zxkic 阅读(72) 评论(0) 推荐(0) 编辑
摘要:同步和互斥 循环检测某个变量是否已经释放的方式占用较多,效率较低。需要加一些函数,让其进入到blocked(阻塞)状态 Task3和Task4同时使用串口打印信息时,没有设定mutex,因此打印出来的内容各有混杂。通过设定USARTFlag来实现互斥+Delay让出优先权。 正确性和效率: 1.队列 阅读全文
posted @ 2023-09-15 21:18 zxkic 阅读(170) 评论(0) 推荐(0) 编辑
摘要:RTOS:实时操作系统 实时性:在固定时间内对事件进行响应 操作系统:对任务管理和协调的控制功能 终端:运行于特定的嵌入式硬件,功能可裁剪,代码可移植 堆:malloc和free 栈:保存返回地址、局部变量 修改官方源码,添加串口打印功能: 去掉无关的代码:LCD等 增加串口打印功能 初始化串口 实 阅读全文
posted @ 2023-09-13 00:14 zxkic 阅读(107) 评论(0) 推荐(0) 编辑
摘要:掌握的标准: 1.搞清楚库对STM32硬件的封装和表达方式 2.彻底理解苦衷使用的结构体式访问硬件寄存器的方式 3.初步建立起面向对象式编程的概念 4.以模块为单位去研究模块的库函数,并且用库函数编程,实验结果,分析代码,从而熟悉库函数的使用方法 5.思维能够穿透库函数直达内部对寄存器的操作 标准库 阅读全文
posted @ 2023-09-05 22:52 zxkic 阅读(296) 评论(0) 推荐(0) 编辑
摘要:GPIO模块数据手册详解: GPIO:通用输入/输出 AFIO:备用输入/输出 GPIOx_CRL和GPIOx_CRH:配置寄存器 GPIOx_IDR和GPIOx_ODR:数据寄存器 GPIOx_BSRR:置位/复位寄存器 GPIOx_BRR:复位寄存器 GPIOx_LCKR:锁定寄存器,锁定GPI 阅读全文
posted @ 2023-09-03 19:47 zxkic 阅读(99) 评论(0) 推荐(0) 编辑
摘要:STM32的相关知识 1.主流的32位高性能单片机,是ARM架构,但是ARM架构不一定是stm32 三种stm32编程的方法: 1.寄存器操作 2.标准库(标准外设库)操作:代码复用 3.HAL库:集成了很多功能,有点像操作系统,图形化编程 下面为数据手册的前4章:存储器和总线架构+电源控制+复位和 阅读全文
posted @ 2023-08-29 23:33 zxkic 阅读(212) 评论(0) 推荐(0) 编辑
摘要:# DMA DMA直接存储器存取,用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。 DMA1有7个通道,DMA2有5个通道,还有一个仲裁器来协调各个DMA请求的优先权。 DMA的作用是实现数据的直接传输,从地址到地址的数据传输。 DMA传输的相关参数:源地址,目标地址,数据传输量,传 阅读全文
posted @ 2023-08-25 19:51 zxkic 阅读(132) 评论(0) 推荐(0) 编辑
摘要:外部中断: 向量表:异常+中断 所有端口的PIN0对应着EXTI0中短线,PIN1对应EXTI1中断线,依次类推 16个外部中断线,对应7个外部中断入口地址 配置中断优先级的4位要同时完成抢占优先级和响应优先级(子优先级或副优先级)的配置:两组优先级 2+2,2^2抢占,2^2响应比较常用 使用NV 阅读全文
posted @ 2023-08-23 20:35 zxkic 阅读(37) 评论(0) 推荐(0) 编辑
摘要:定时器 8个定时器,高级定时器TIM1+TIM8,通用定时器TIM2-TIM5,基础定时器TIM6+TIM7; 定时器PWM输出 每个定时器有4路输出通道:OC1-OC4 涉及的固件库:stm32f10x_tim.c/stm32f10x_tim.h 1.定时器初始化: void TIM_TimeBa 阅读全文
posted @ 2023-08-23 01:30 zxkic 阅读(106) 评论(0) 推荐(0) 编辑
摘要:RCC(复位和时钟控制): 系统复位的因素: 1.NRST按键复位 2.看门狗复位 3.软件复位 4.低功耗管理复位 SYSCLK系统时钟: 1.HSI时钟 2.HSE时钟:外部晶振 3.PLL时钟 系统时钟: PCLK1:APB1分频,最大36mhz PCLK2,ADC,TIM1,TIM8:APB 阅读全文
posted @ 2023-08-22 13:57 zxkic 阅读(79) 评论(0) 推荐(0) 编辑
摘要:GPIO按照ABC进行分组管理,每组GPIO都有自己独立的配置寄存器: GPIOX_CRL/GPIOx_CRH:输入输出模式配置 GPIOx_IDR:数据输入 GPIOx_ODR:数据输出 RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOC, ENABLE); 阅读全文
posted @ 2023-08-16 22:11 zxkic 阅读(105) 评论(0) 推荐(0) 编辑
摘要:## 定时器 定时器寄存器: TMOD:方式寄存器,设定定时器0和定时器1的工作方式 C/T:0为定时,1为计数 TCON:控制寄存器,可位寻址 TCON:TF1|TR1|TF0|TR0|IE1|IT1|IE0|IT0 前面四位用于定时/计数,后面四位用于控制外部中断 两个模式:定时和计数模式 ## 阅读全文
posted @ 2023-08-10 21:36 zxkic 阅读(195) 评论(0) 推荐(0) 编辑
摘要:低级语言->机器语言:使用汇编系统将其翻译成机器语言,该过程为汇编 高级语言->机器语言:使用编译系统将其翻译成机器语言,该过程为编译 设计流程: 1.整体构思 2.构建整体的流程图 3.局部模块化 简单程序设计: 结构特点:按指令的先后顺序依次执行 基础步骤: 1.流程图 2.分配内存及端口 3. 阅读全文
posted @ 2023-08-07 00:09 zxkic 阅读(69) 评论(0) 推荐(0) 编辑
摘要:电路结构: P0,P1,P2,P3四个并行的IO口 P0口复用为低8位地址线和数据线 P1口复用为高8位地址线 P2口双向IO端口 P3口通信,中断等第二功能 指令:程序存储器中 从IO口读取数据前,必须先给IO拉高,全置为1(why?使内部的FET截止,再读入引脚的状态) 时钟电路与复位电路: 复 阅读全文
posted @ 2023-08-06 14:51 zxkic 阅读(257) 评论(0) 推荐(0) 编辑
摘要:LED: 位操作和总线操作的区别 流水设计和蜂鸣器: keil的调试 子程序的调用 数码管: 板子上为共阴极。 静态显示方式:保持住段选的字码 动态显示方式:段选的字码显示后,延时1-5ms,然后重新选中数码管的位置,重新显示段选的新字码 锁存端:先拉高,送数据,再拉低,从而锁存住数据。下降沿能够保 阅读全文
posted @ 2023-07-31 00:27 zxkic 阅读(177) 评论(0) 推荐(0) 编辑
摘要:## 利用51单片机的定时器实现一个时钟 功能: 1.使用LCD1602显示 2.初始化LCD1602,使其显示初始的数值 3.定时器中断实现计数。 1,2,3构成了一个简单的计时器 接下来,需要一些进阶的操作,结合按键: 需求: 1.功能键暂停时钟,从而能够调节时钟设置 实现独立按键1:检测按键1 阅读全文
posted @ 2023-07-24 00:49 zxkic 阅读(345) 评论(0) 推荐(0) 编辑
摘要:### LCD1602原理 写程序要遵循硬件电路->硬件接口->软件编程三部分。 LCD1602可以显示2行16个字符,用用16个引脚,主要控制端口为RS,R/W,EN。 通过RS,R/W可以选择不同的读写操作: | RS | R/W | 操作 | | | | | | 0 | 0 | 写命令 | | 阅读全文
posted @ 2023-07-21 22:31 zxkic 阅读(720) 评论(0) 推荐(0) 编辑

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