STM32/RTOS
文章平均质量分 92
STM32/RTOS
楚轩QK
这个作者很懒,什么都没留下…
展开
-
协议栈设计_LwIP笔记
文章目录LWIP主进程工作链路层LWIP数据包收发函数框架ARP(地址解析协议)表ARP表查询IP层ICMP处理(Internet 控制报文协议)TCPIP_Thread线程启动流程**tcpip_thread主线程处理**LWIP主进程工作/* LWIP 协议模拟了 TCP/IP 协议的分层思想,表面上看 LWIP 也是有分层思想的,但从实现上看, LWIP 只在一个进程内实现了各个层次的所有工作。具体如下: LWIP 完成相关初始化后,会阻塞在一个邮箱上,等待接收数据进行处理。这个邮箱内的数据原创 2021-06-18 17:37:16 · 555 阅读 · 0 评论 -
Modbus协议笔记
文章目录一、Modbus简介Modbus是 OSI 模型第 7 层上的应用层报文传输协议,它在连接至不同类型总线或网络的设备。Modbus是一个请求/应答协议,并且提供功能码规定的服务。Modbus功能码是 Modbus请求/应答 PDU 的元素。之间提供客户机/服务器通信。MODBUS 协议定义了一个与基础通信层无关的简单协议数据单元(PDU)。特定总线或网络上 的 MODBUS 协议映射能够在应用数据单元(ADU)上引入一些附加域。二、Modbus类型* 串行链路上的 ModbusMO原创 2021-03-04 15:44:54 · 535 阅读 · 1 评论 -
STM32学习笔记9——移植FreeRTOS
开发环境硬件环境:STM32F103C8T6软件环境:STM32CubeIDE1.4.0前置条件准备一个工程下载FreeRTOS的源码FreeRTOS移植1.移植FreeRTOS源码在工程文件中新建文件夹 —— FreeRTOS(存储FreeRTOS源码)*打开 FreeRTOS 源码文件夹, 将其中的include文件夹复制到刚刚新建的FreeRTOS文件夹中。然后include同目录下新建一个文件夹——portable进入portable文件夹,在FreeRTOS源码文件原创 2021-03-03 15:27:13 · 406 阅读 · 1 评论 -
单片机I/O控制方式
单片机如何实现当一个程序在访问一个I/O设备时,而不占用CPU呢?对于这个问题,我们先了解一下单片机I/O设备有哪几种主要的控制方式;程序循环检测中断驱动直接内存访问一、程序循环检测基本思路:在设备驱动程序当中,通过不断地检测I/O设备的当前状态,来控制一个I/O操作的完成。这种方式也称为是繁忙等待方式或轮询方式。缺点:在进行一个I/O操作的时候,要一直占用着CPU,这样就会浪费CPU的时间。二、中断驱动方式基本思路:当一个用户任务需要进行I/O操作时,会去调用相应的系统函数,由原创 2020-09-17 10:15:33 · 1747 阅读 · 0 评论 -
RT_Thread:使用ADC设备读取STM32F429内部温度传感器
RT-Thread:ADC 设备Env 用户手册使用Env配置工程文件在工程目录下启动Env,使用menuconfig进入配置界面打开ADC选项保存并退出,然后使用scons --target=mdk5 -s 命令生成工程在DevicDrivers文件夹下生成了adc.c文件使用ADC设备读取温度传感器在这里添加RT_Thread源码中的stm32f429-atk-apo...原创 2020-02-19 22:54:54 · 2118 阅读 · 0 评论 -
STM32学习笔记8 ------- IIC通信协议原理及使用
IIC(Inter-Integrated Circuit)通信协议由于它引脚少,硬件实现简单,可扩展性强,不需要使用USART、CAN等通信协议的外部收发设备,被广泛地用于系统内多个集成电路间的通信。分层简化复杂问题芯片被分为内核层和片上外设STM32标准库则是在寄存器与用户代码之间的软件层通信协议则可将其分为物理层和协议层物理层 规定通信系统中具有机械、电子功能部分的特性,确保...原创 2019-03-28 16:46:24 · 884 阅读 · 0 评论 -
STM32学习笔记7 --------- DMA(直接存储器访问)
DMA主要功能:传输数据,但不需要占用CPU。数据支持从外设到存储器或者从存储器到存储器(SRAM或Falsh)DMA控制器独立于内核,包含DMA1和DMA2,其中DMA1有7个通道,DMA2有5个通道,可看成传输数据的管道,DMA2只存在于大容量的单片机中。从编程的角度看,只需掌握以下3部分即可:1.DMA请求外设要通过DMA来传输数据,必须向DMA控制器发送DMA请求。不同的D...原创 2019-02-21 16:38:08 · 253 阅读 · 0 评论 -
STM32学习笔记6 --------- NVIC中断优先级管理
CM3内核支持256个中断,其中包含了16个内核中断和240个外部中断,并且具有256级的可编程中断设置。但是STM32并没有使用CM3内核的全部东西,而是只用了它的一部分。STM32有84个中断,包括16个内核中断和68个可屏蔽中断,具有16级可编程的中断优先级。在STM32F103系列上,只有60个(在107系列才有68个)。抢占优先级的级别高于响应优先级,而数值越小所代表的优先级就越高。...原创 2019-01-22 16:08:49 · 436 阅读 · 0 评论 -
STM32学习笔记5 --------- 外部中断
如何将STM32的IO口作为外部中断输入?外部中断/事件控制器(EXTI)由19个产生事件/中断要求的边沿检测器组成。每个输入线可以独立地配置输入类型(脉冲或挂起)和对应的触发事件(上升沿或下降沿或者双边沿都触发)。每个输入线都可以被独立的屏蔽。EXTI控制器的主要特性:每个中断/事件都有独立的触发和屏蔽每个中断线都有专用的状态位支持多达19个中断/事件请求检测脉冲宽度低于APB2时...原创 2019-01-21 11:16:50 · 820 阅读 · 0 评论 -
STM32学习笔记5-------MDK的编译过程及文件类型
首先复习一下C语言的编译过程:我们写出的C语言代码(.c文件),若要在机器上运行,需要经过一个编译过程,主要分为如下四个阶段(预处理、编译、汇编、链接):预处理阶段,即完成宏定义和include 文件展开等工作;生成.i文件。GCC命令为:·gcc -E根据编译参数进行不同程序的优化,编译成汇编代码;生成.s文件。GCC命令为:·gcc -S用汇编器把上一阶段生成的汇编代码进一步生成目标...原创 2019-01-10 15:36:27 · 366 阅读 · 0 评论 -
STM32学习笔记3 ------------ STM32标准库
基于Cortex系列芯片采用的内核都是相同的,区别主要为核外的片上外设的差异,而这些差异导致软件在同内核、不同外设的芯片上移植困难。为解决不同的芯片厂商生产的Cortex位控制器软件的兼容性问题,ARM与芯片厂商建立了CMSIS(Cortex MicroController Software Interface Standard)标准。CMSIS标准,实际是在用户层或操作系统和MCU之间建立一...原创 2019-01-04 22:13:03 · 428 阅读 · 0 评论 -
STM32学习笔记2--------使用寄存器点亮LED
启动文件(startup_stm32f10x_hd.s)当STM32芯片上电启动的时候,首先会执行这里的汇编程序,从而建立起C语言的运行环境。该文件使用的汇编指令是Cortex-M3内核支持的指令,可参考《Cortex-M3权威指南》中的指令集内容。主要功能:初始化堆栈指针SP初始化程序计数器指针PC设置堆栈大小初始化中断向量表配置外部SRAM作为数据存储器(这个由用户配置,一般的...原创 2019-01-04 17:09:18 · 2140 阅读 · 1 评论 -
STM32学习笔记1--------GPIO
STM32GPIO口8种模式细致分析GPIO ----------- 通用输入输出端口(可控引脚)最基本输出功能:控制引脚输出高、低电平,实现开关控制。最基本的输入功能:检测外部输入电平。GPIO基本结构分析:1.保护二极管引脚的两个二极管可以防止引脚外部过高或过低的电压输入。当引脚电压高于VDD时, 上方的二极管导通当引脚电压低于VSS时, 下方的二极管导通防止不正常电压引...原创 2019-01-04 14:47:09 · 342 阅读 · 0 评论