-
1.内存映射MCU将资源映射到一段固定的4GB可寻址内存上,如下图所示。内存映射将内存分为几块区域,每一块区域都有一个定义的内存类型,一些区域还有一些附加的内存类型。内存类型有以下几种:Normal处理器可以为了性能而对访问该区域的任务进行重排序。Device处理器保证访问该内存的任务与其他访问Device或者Stronly-ordered内存的任务相对顺序不变。Str...[详细]
-
基于STM32F103步骤:1、定时器的1ms初始化1//1msTIMERIRQ2voidDrv_timeout_Init(void)3{4TIM_TimeBaseInitTypeDefTIM_TimeBaseStructure;5NVIC_InitTypeDefNVIC_InitStructure;6RCC_APB1Per...[详细]
-
VSCode的强大不用多说了,直接上教程:一.到官网下载安装VSCode二.安装完成后,打开VSCode,安装PlatformIOIDE插件三.安装完重启VSCode,VSCode会继续安装PlatformIOIDE的依赖项,如果提示一直在安装,可以尝试用VPN瞧瞧,是不是被墙了不知道,我用VPN很快环境就安装好了四.新建工程STM32F103C8为例,使用...[详细]
-
Keil5更新之后,开始支持ARMV6编译器,新版本的编译器对C++有了更多的支持,在编译方面也做了很多的改善,具体的没有详细了解,本文只是对STM32开发下,使用V6版本的编译器进行STM32的C++开发作一个记录,方便和大家交流和参考。至于说为什么STM32要C++开发,这个没有解释,只是个人觉得C++比C有更多的方便,使得编程更加的容易,C++有更多的生态.... 开始上教程:...[详细]
-
C++属于面向对象的编程语言,OOP的思想不必多说,特别对于复杂的软件工程来说,利用OOP绝对是事半功倍,相对于传统的C来说;当然用C来写单片机程序无可厚非,已经延续了一个传统,从大学时学的开始到工作岗位,好多人都是一直用C来做,但是既然Keil支持C++编译,可以用C++来编写你的代码,可以利用高级语言来结构化,清晰化你的程序,为嘛不用呢!哈哈,个人看法!下面进入正题:C+...[详细]
-
进入21世纪以来,随着我国城乡经济的高速发展,人们生活水平的提高,越来越多的人开始拥有私家车,这在一定程度上造成了日益严重的交通压力。为了解决这一问题,人们开始研究新的交通工具。与三轮车,四轮车等交通工具相比,两轮车具有的便于在狭窄空间运行,轻便灵活的车身以及易于存放管理的特点,成为近年来的一个研究热点,具有广泛的运用前景。鉴于此,本文以玩具车模(以下简称车模)为研究对象,以现代电路电子先进的S...[详细]
-
当STM32的串口配置成带有奇偶校验位的情况下,需要软件校验是否发生奇偶校验错误,硬件只是置起奇偶校验错误标志位,并将错误的数据放到DR寄存器中,同时置起RXEN标志位,如果使能中断还是会正常进入中断,用户如果不在读取DR寄存器之前手动检验(读DR寄存器会清除错误状态标志)奇偶校验位是否置起,将会接受奇偶校验错误的数据。因此如果想开启奇偶校验,应在读取数据寄存器时先查看标志位,如果发生校验...[详细]
-
一、什么是GD32GD32是由北京兆易创新开发的国产32位MCU,基于ArmCortex-M3/M23/M4内核以及RISC-V内核的32位通用微控制器,与STM32相比,CPU主频更高,内存更多,外设更丰富。其众多产品是以STM32芯片为模板,基于STM32的底层寄存器地址进行正向研发,部分产品可以直接PINTOPIN替代STM32的芯片,部分型号可以直接以STM32的程序做部分修改...[详细]
-
代码:ORG0000HJMPMAINORG000BHJMPINTT0ORG0100H MAIN: nopMOVSP,#60HMOVTMOD,#01H;初始化定时器及其中断SETBET0SETBEASETBTR0;启动定时器0START:SETBP1.3MOV30H,#00HNEXT:MOVA,30HMO...[详细]
-
源代码:第33期DAC0832产生三角波(汇编);程序中产生的电压的最大幅度受DAC0832的基准电压限制ORG0000HAJMPMAINORG0030HMAIN:MOVDPTR,#7FFFHMOVA,#00HLOOP1:MOVX@DPTR,AINCANOPCJNEA,#0FFH,LOOP1LOO...[详细]
-
工作环境:STM32CubeMXv6Keil5串口调试助手单单的串口发送相对而言还是比较简单,因为不用打开配置串口中断相关的配置。首先打开左侧的下拉框Connectivity,点击USART1选项;在打开的选单中点击Mode的下拉框,选中Asynchronous;在下方的配置框中选中ParameterSettings进行配置:BaudRate:波特...[详细]
-
网上关于DAC8560相关的模拟SPI驱动的资料少的可怜,甚至连DAC8560的中文资料都不多,更不要提用HAL库进行编程的了,这实在是一块冷门芯片,本文主要是介绍讲解STM32HAL库使用模拟SPI驱动DAC8560。首先是SPI相关的简介:SPI通信高冠避役·800阅读然后是用STM32CubeMx初始化模拟SPI的引脚:STM32CubeMx的GPIO输出的配置可...[详细]
-
1、用cubemx生成基础工程,游戏控制器一般就是按钮和旋钮的组合,按钮就是gpio,旋钮是adc。具体配置就不罗嗦了。connectivity这里打开usb,勾选Device,参数保持默认即可。MiddlewareandSoftwarePacks这里选择USB_DEVICE,Mode这里选择CustomHID,参数如果懂可以根据需求改,不懂保持默认,后边我们在代码里改也...[详细]
-
1.SPI协议概述1.1什么是SPI?SPI(SerialPeripheralInterface)是由摩托罗拉公司于1980年代提出的同步串行通信协议,主要用于短距离高速芯片间通信。作为四线制全双工通信协议,它以简单的硬件实现和高效的传输速率著称,广泛应用于存储器、传感器、显示模块等嵌入式设备中。典型应用场景:微控制器与Flash存储器通信(如W25Q128)...[详细]
-
一、项目描述模块采用ATK-PAJ7620_V1.2,自带九种手势识别,支持上、下、左、右、前、后、顺时针旋转、逆时针旋转和挥动的手势动作识别,STM32与模块之间采用IIC进行通信,识别不同的手势通过IIC读取模块寄存器的值是不相同的,根据识别不同手势的值控制对应的器件。4个灯的亮灭分别代表4种手势的识别,STM32通过IO口控制灯亮灭,例如判别为第一种手势,灯1亮,第二个手势灯1...[详细]