草庐IT

STM32F103 CubeMax HAL 库开发,使用TIM定时器和DMA输出PWM方波。采坑日记

STM32F103CubeMaxHAL库开发,使用TIM定时器和DMA输出PWM方波问题描述使用阻塞方式和DMA方式开启PWM的区别简短结论具体分析CubeMax配置首先是CubeMax里面的常规配置TIMDMA配置生成工程KEIL文件撰写观察实验现象工程修改工程修改内容观察现象appendix问题描述我是用的芯片是STM32F103C8T6,其他F103系列的芯片也是一样的。使用CubeMax,并使用HAL库函数对硬件进行驱动。目标是使用TIM定时器的DMA方式,输出PWM方波。使用阻塞方式和DMA方式开启PWM的区别简短结论先说结论:如果只是用TIM输出固定占空比的PWM方波,那么阻塞方式

Stm32f103c8t6(proteus仿真)学习——1.点亮LED流水灯

目录**一、原理图的绘制****二、代码的编写****1.新建一个工程模板****2.打开新建的项目****3.点亮一个LED灯代码****4.设置生成.hex文件****5.上传.hex文件到proteus****6.仿真运行****三、更多功能的实现****1.点亮一排LED灯****2.点亮流水灯****四、项目(代码+仿真)分享链接**软件准备:keiluVsion5和proteus8.15一、原理图的绘制打开proteus8.15->新建项目->改名->一直next鼠标右键->放置->元件->FromLibraries搜索Stm32->选择stm32f103c8画出点亮一个LED灯的

c# - 如何通过 GPRS 发送命令到 GPS 跟踪器(TK103、GT02、GT06、TK102 等)

这已经在这里问过https://stackoverflow.com/questions/25460743/gps-tracker-tk103-how-to-send-message-through-server.但是没有任何答案!从GPS设备接收数据:我有一个TCP服务器设置,它从各种GPS跟踪器(TK103、GT02等)接收数据。每个GPS设备发起请求,服务器接受它,并开始接收NMEA数据。效果很好。通过短信向GPS设备发送数据:目前,我们必须向各个设备发送SMS以进行各种配置。这是非常乏味和不准确的。通过GPRS向GPS设备发送数据(这就是我们要实现的):我们想使用TCP或UDP通

学STM32(STM32F103RCT6)

系列文章目录第一章了解STM32文章目录系列文章目录前言一、STM32基本系统1.STM32基本(最小)系统板2.使用STM32为核心器件的基本(最小)系统构成单元二、主控制器(CPU)1.STM32F103RCT6微控制器参数2.STM32F103RCT6微控制器引脚分布三、启动电路设计启动模式设置四、电源电路设计1.电源2.末级电源电路:使用LM1117-3.3五、调试电路设计调试接口六、复位电路设计1.复位电路2.阻容复位电路3.复位电路设计注意事项七、时钟电路设计总结前言为什么使用STM32而不是8051?是因为51的频率太低,无法满足计算需求?是51的管脚太少,无法满足众多外设的IO

LVGL触摸移植——stm32野火F103

系列文章目录目录系列文章目录章目录目标一、认识端口文件二、使能 lv_port_indev.c 三、接口函数1.输入设备初始化四、Main函数五、过程中的疑难杂症1.内存不足2、LCD白屏五、效果总结目标在显示的基础上添加触摸输入提示:以下是本篇文章正文内容,下面案例可供参考一、认识端口文件这两个是输入设备的端口文件,这里我改过文件名(原文件名叫lv_port_indev_template) 只需要把相应的触摸屏驱动函数添加到文件里的函数里即可驱动二、使能 lv_port_indev.c 首先把文件使能 在 lv_port_indev.c的顶部(红圈),设置为#if 1三、接口函数 函数均在l

swift - 无法将类型 'NSAsynchronousFetchResult' (0x103e13388) 的值转换为 'NSArray' (0x10435cf28) Swift

我正在学习CoreData教程,但我的代码抛出以下错误。Couldnotcastvalueoftype'NSAsynchronousFetchResult'(0x103e13388)to'NSArray'(0x10435cf28).2018-12-2922:54:17.619639+0700demoCoreData[2670:247527]Couldnotcastvalueoftype'NSAsynchronousFetchResult'(0x103e13388)to'NSArray'(0x10435cf28).(lldb)我的问题是:根据提供的错误,我的应用程序失败的原因是什么?这是

关于单片机的时钟浅谈及STM32F103/F030单片机的内外时钟切换问题

绪论本文主要讲解单片机的时钟系统的相关知识,并进行超频测试,同时介绍如何在STM32F0单片机上进行内外时钟的切换,在不使用外部晶振或者外部晶振不启动时自动切换内部时钟的方法。一、杂谈问题来源于群里的一次问答:诚然,当使用固件库时,把外部晶振摘掉,系统确实会自动切换到内部时钟,但是只会以8M的默认值运行,显然这是十分不可行的,8M的速度直接让我们的STM32病入膏肓,今天的任务就是让STM32失去外挂(晶振)时,依旧可以激情澎湃。时钟详解这里不过多介绍,自己也没有别人介绍的好。此帖旨在解决现实问题。此处插播广告:群友问过这种问题,外部接8M晶振和16M晶振有啥区别?以我微薄的经验来看,这两个在

STM32 F103C8T6学习笔记3:串口配置—串口收发—自定义Printf函数

今日学习使用STM32C8T6的串口,我们在经过学习笔记2的总结归纳可知,STM32C8T6最小系统板上有三路串口,如下图: 今日我们就着手学习如何配置开通这些串口进行收发,这里不讲串口通信概念与基础,可以自行网上查找,本文直接开始介绍库函数与编程实现:串口配置相关库函数介绍: 打开串口GPIO的时钟:voidRCC_APB2PeriphClockCmd(uint32_tRCC_APB2Periph,FunctionalStateNewState)/*#defineRCC_APB2Periph_GPIOA((uint32_t)0x00000004)#defineRCC_APB2Periph_G

STM32 F103C8T6学习笔记6:IIC通信__驱动MPU6050 6轴运动处理组件—一阶互补滤波

今日主要学习一款倾角传感器——MPU6050,往后对单片机原理基础讲的会比较少,更倾向于简单粗暴地贴代码,因为经过前些日子对MSP432的学习,对原理方面也有些熟络了,除了在新接触它时会对其引脚、时钟、总线等进行仔细一些的研究之外,其余驱动方面便是照搬经验了~~本文尝试使用STM32F103C8T6通过IIC通信驱动MPU6050,文章提供源码、原理讲解、实践操作与结果截图,测试工程下载。目录MPU6050使用注意点: 程序设计目标:移植IIC通信:编写IIC与MPU6050的通信:向MPU6050寄存器写数据:读取MPU6050寄存器数据:MPU6050地址:MPU6050初始化:MPU60

stm32f103c8t6的外部中断

在单片机中存在着中断系统,这个系统的逻辑和功能在51单片机中已经有所了解。1.在32单片机中的内核有一个nvic里面存放许多优先级的设定,外接许多中断源,比如“exti、tim、adc、usart等”接入之后,nvic再通过中断优先级进行排队,再内接入cpu中进行处理,这样子大大减少了cpu的运算,提高了工作效率。2.其中里面的优先级又有响应优先级抢占优先级,响应的可以进行优先排队(插队),而抢占可以进行中断嵌套。3.exti外部中断,注意在支持的gpio口中,不能选择pin相同的来同时触发,比如pa1不能与pb1等等。4.在外部中断的结构中,有一个afio中断引脚选择,就是一个选择器,用来选