推荐阅读最新更新时间:2024-03-16 15:33
STM32——DMA
DMA 是为CPU分担数据转移的工作。因为DMA的存在CPU才被解放出来,它可以在 DMA 转移数据的过程中同时进行数据运算、响应中断,大大提高效率。 1、DMA工作分析 数据传输的过程中,不需要内核的全程参与,所以内核可以同时进行数据运算。DMA 方式是点到点的数据转移,而不使用 DMA 方式还要以内核来作为中转站,显然 DMA 传输方式的效率更高。 要使用 DMA,需要确定一系列的控制参数,如外设数据的地址、内存地址、传输方向等,在开启 DMA 传输前还要先发出 DMA 请求。 2、 初始化DMA typedef struct { uint32_t DMA_PeripheralBaseAdd
[单片机]
STM32 HAL库 串口DMA发送完成中断
近期使用STM32驱动MAX3485进行485通信,发现STM32F103C8并不自带硬件485首发功能,需要软件上控制IO高低来驱动MAX3485进行485接收、485发送。 根据MAX3485手册可得,进行485发送时给相应引脚高电平。其余时间为低电平进行485接收。因此需要找到串口DMA发送完成的回调函数,在发送完成后将引脚拉低。 在stm32f1xx_hal_uart.c中 /** @defgroup UART_Exported_Functions_Group2 IO operation functions * @brief UART Transmit and Receive functions * @verb
[单片机]
一文了解STM32启动过程
1 概述 说明 每一款芯片的启动文件都值得去研究,因为它可是你的程序跑的最初一段路,不可以不知道。通过了解启动文件,我们可以体会到处理器的架构、指令集、中断向量安排等内容,是非常值得玩味的。 STM32作为一款高端 Cortex-M3系列单片机,有必要了解它的启动文件。打好基础,为以后优化程序,写出高质量的代码最准备。 本文以一个实际测试代码--START_TEST为例进行阐述。 整体过程 STM32整个启动过程是指从上电开始,一直到运行到 main函数之间的这段过程,步骤为(以使用微库为例): ①上电后硬件设置SP、PC ②设置系统时钟 ③软件设置SP ④加载.data、.
[单片机]
再造STM32---第十二部分:启动文件详解
本章参考资料《STM32F4xx 中文参考手册》第十章-中断和事件:表 46.STM32F42xxx 和 STM32F43xxx 的向量表; MDK 中的帮助手册—ARM Development Tools:用来查询 ARM 的汇编指令和编译器相关的指令。 12.1 启动文件简介: 启动文件由汇编编写,是系统上电复位后第一个执行的程序。主要做了以下工作: 1、 初始化堆栈指针 SP=_initial_sp 2、 初始化 PC 指针=Reset_Handler 3、 初始化中断向量表 4、 配置系统时钟 5、 调用 C 库函数_main 初始化用户堆栈,
[单片机]
ST拓展高性能STM32微控制器产品系列
中国,2015年1月5日 —— 意法半导体(STMicroelectronics,简称ST;纽约证券交易所代码:STM)最新的STM32F446系列微控制器为设计人员带来更多应用选择,新产品整合了增强的ARM® Cortex®-M4处理性能、256KB或512KB片上闪存(均配备128KB RAM)、高能效存储扩展接口以及各种通信接口。 新产品采用意法半导体独有的自适应实时加速器 (ART Accelerator™, Adaptive Real-Time Accelerator) 技术 、智能系统架构以及先进的90nm闪存技术,进一步提升了内置浮点单元和DSP指令的标准ARM Cortex-M4内核处理性能。因此,
[单片机]
STM32之CAN---中断管理浅析
1 前言 bxCAN占用4个专用的中断向量。通过设置CAN中断允许寄存器(CAN_IER),每个中断源都可以单独允许和禁用。 图1 从图1可以看出,最右边共四个中断,中断是可以通过CAN_IER来屏蔽或允许的。 2 CAN中断允许寄存器 (CAN_IER) 地址偏移量: 0x14 复位值: 0x0000 0000 图2 位31:18 保留位,硬件强制为0 位17 SLKIE: 睡眠中断允许 0: 当SLAKI位被置1时,没有中断产生; 1: 当SLAKI位被置1时,产
[单片机]
STM32串口控制不同亮度等级的小灯
利用串口的输入控制LED灯的亮度,从而达到PC机与MAU交互通信的功能 此功能由三个部分组成,分别是:串口通信、LED灯亮度等级的设定、以及按键按下LED灯熄灭。 首先串口通信过程中要配置串口重定义: /* USER CODE BEGIN 4 */ #ifdef __GNUC__ #define PUTCHAR_PROTOTYPE int __io_putchar(int ch) #else #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f) #define GETCHAR_PROTOTYPE int fgetc(FILE *f) #endif PUTCHAR
[单片机]
软PLC编译系统的开发与实现
摘要 :为了配合在PC机上运行的软PLC编辑开发系统,使PC机完成相应的控制功能,设计和开发了软PLC编译系统。本文简述了软PLC编译系统的组成以及软PLC梯形图和指令表的遍历算法,介绍了软PLC梯形图与指令表程序相互转换的实现过程。 软PLC控制技术是基于软件和硬件在逻辑功能上等效的思想,采用开放式体系结构,通过软件来实现PLC硬件的功能。软PLC系统由上位机和下位机组成,上位机为用户提供编辑界面和多种编程语言环境,便于用户在PC机上进行PLC程序的编辑,同时还对下位机的一些状态量进行监控,并给下位机发送指令。 用户编辑完PLC的梯形图和指令表程序后,只有通过对程序的编译来获取程序的逻辑后才能按照PLC的工作原理运行
[工业控制]