草庐IT

基于STM32F103C8T6的高速DMA传输多通道ADC数据

文章目录前言一、软件设计思路二、代码总结前言ADC在STM32系列单片机的使用中占用着很大的比例,常见的案例是通过ADC单次转换电压值,这种方式的缺陷在于转换效率不高。一般的单片机带有ADC1和ADC2两个ADC转换,单次转换需要执行一定的程序,想得到结果需要耗费一些时间在赋值,调用中断上面。在此基础上,为了提高转换的效率,借用单片机内部自带的DMA传输单元,可以直接越过CPU指令,将数据传送到我们所定义的寄存单元内部,这样我们需要查看检测的电压数据时,只需要直接访问存储数组即可。一、软件设计思路整体的软件设计思路分为两个大的环节:初始化ADC和开启高速DMA数据传输。在本次实验中,选用ADC

01、【江科大自化协stm32F103c8t6】笔记之【入门32单片机及GPIO初始化参数配置】

目录一、前言二、必要资料1、C语言类型2、片上资源/外设3、引脚定义4、系统结构三、GPIO初始化1、首先使用RCC开启GPIO的时钟2、其次使用GPIO_Init函数初始化GPIO3、最后使用输入或输出的函数控制GPIO口四、delay,oled函数的调用1、delay2、oled一、前言前几天系统地将32单片机学习了一下,学习的视频是bilibili的江科大自化协c8t6的教学,为了方便以后使用,在这里和b站视频联动写下一篇笔记,以便自己查阅资料和调用函数。二、必要资料1、C语言类型int在51单片机中是16位的,在STM32中32位的,如果要用16位的数据要用short来表示float和

FreeRTOS学习之路,以STM32F103C8T6为实验MCU(序章——浅谈单片机以及FreeRTOS)

学习之路主要为FreeRTOS操作系统在STM32F103(STM32F103C8T6)上的运用,采用的是标准库编程的方式,使用的IDE为KEIL5。注意!!!本学习之路可以通过购买STM32最小系统板以及部分配件的方式进行学习,也可以通过Proteus仿真的方式进行学习。后续文章会同时发表在个人博客(jason1016.club)、CSDN;视频会发布在bilibili(UID:399951374)作者的话:        相信大家在学习完STM32的裸机开发后,满怀信心地去写一个庞大的项目的时,写到后期总会感觉,各个模块的任务总是会相互制约和影响,存在绝对的先后顺序关系(也称为轮询方法),

STM32 F103C8T6学习笔记8:0.96寸单色OLED显示屏显示字符

使用STM32F103C8T6驱动0.96寸单色OLED显示屏:OLED显示屏的驱动,在设计开发中OLED显示屏十分常见,因此今日学习一下。一篇文章从程序到显示都讲通。文章提供源码、原理解释、测试工程下载,测试效果图展示。 目录OLED驱动原理—IIC通信:SSD1306单色0.96OLED显示屏特性程序理解与设计:1.操作时序—写命令、写数据:二、清屏命令:三、初始化SSD1306显示:四、开启与关闭指令:五、OLED坐标设置:六、常用ASCLL码字符字库:七、字符显示函数:程序设计:测试效果:测试工程下载:OLED驱动原理—IIC通信:这里是基础原理,可以大致浏览即可,有个基本印象:下图为

STM32 F103C8T6学习笔记12:红外遥控—红外解码-位带操作

今日学习一下红外遥控的解码使用,红外遥控在日常生活必不可少,它的解码与使用也是学习单片机的一个小过程,我们将通过实践来实现它。文章提供源码、测试工程下载、测试效果图。目录红外遥控原理: 红外遥控特点:红外发射装置: 红外接收示意图: NEC协议:程序设计:程序实践目标:位带操作:定时器4初始化:定时器4中断服务程序:处理红外键盘:主函数:测试效果:工程下载:红外遥控原理:下图就是红外遥控与1858红外接收头 红外遥控特点:优点:抗干扰能力强、信息可靠、功耗低、成本低、容易实现通信缺点:距离只有几米红外发射装置:红外发射装置就比如遥控器,它是由键盘电路、红外编码电路、电源电路、红外发射电路组成的

【C语言】uint8_t、uint16_t、uint32_t、uint64_t是什么?

文章目录一、uint8_t是什么?二、如何定义?三、为什么?四、基本数据类型有哪些?总结一、uint8_t是什么?uint8_t是一个数据类型,也是别名,它是无符号8位整数类型的缩写。uint表示无符号整数,即数值不能为负数;8表示该类型的大小为8位,即该类型可表示的最大值255,最小值0;_t表示别名,用typedef定义的数据类型。在C++和C语言中,uint8_t通常是通过标准头文件stdint.h或cinttypes导入的。二、如何定义?在C99标准中定义了这些数据类型,具体定义在stdint.h中。/*exact-widthsignedintegertypes*/typedefsig

STM32最小系统核心板(STM32F103C8T6)实现流水灯

文章目录一.题目要求二.STM32简介三.GPIO初始化1.输入输出模式和输出速率设置(1)找到GPIOA、GPIOB、GPIOC的地址(2)配置对应引脚寄存器,基地址+偏移量(3)设置输出模式为推挽输出,输出速度为2Mhz2.时钟地址三.工程文件模板的建立1.所需文件2.创建工程3.启动代码3.1启动代码介绍3.2使用启动代码3.3完善项目创建四.代码的书写1.led.c2.led.h3.test.c五.调试问题六.总结一.题目要求 假设你手中已有STM32最小系统核心板(STM32F103C8T6)+面板板+3只红绿蓝LED,并搭建了电路,分别GPIOA-5、GPIOB-9、GPIOC-1

基于STM32f103c8t6的简单红外巡迹避障小车制作

目录一、硬件部分1、模块选择(1)电源(2)车模(3)电机(4)巡迹及避障(5)其它2、硬件连接(1)电源(3)电机(4)红外(4)超声波二、软件部分1、电机2、红外3、超声波4、控制5、主函数三、总结一、硬件部分1、模块选择(1)电源电源模块选用的是18650锂电池(充电器及电池底座)、3.3v稳压模块。(2)车模淘宝最常见的智能车底。(3)电机买的智能车带有四个电机,选用L298N电机驱动板对电机进行驱动。(4)巡迹及避障巡迹选用四路红外模块实现,避障选用超声波模块HC-SR04实现。(5)其它热熔胶枪,焊笔,杜邦线,主控制器STM32f103c8t6核心板,烧录工具(usb转ttl模块、

python - 如何处理 Python 扩展上的 uint8_t?

我想在我的C模块中传递一个uint8_t数组作为函数的参数。我找不到直接解析此数组的方法,因此我将其解析为PyObject_t,然后作为PyTuple_t对象进行迭代。这样,我需要将此元组的每个元素PyObject_t转换为uint8_t。如果没有PyInt_FromUINT8_t函数或类似函数,我该怎么做? 最佳答案 您通常可以使用unsignedchar来摆脱B。根据ParsingArguments你应该能够做到:uint8_tb;if(!PyArg_ParseTuple("b",&b)){returnNULL;}如果不直接使用

STM32F103C8T6+ESP8266+MQTT使用最新版的oneNet可视化View实现远程控制(详细)

本篇所实现的功能是我毕业设计的一部分,用于记录我的学习过程,以免忘记操作过程!所使用的相关硬件:正点原子的esp8266模块、c8t6开发板一块、STLinkv2、DHT11温湿度传感器一块、发光二级管一个、继电器两个附上我的完整工程代码:代码感谢博主:永栀哇相关文章:1-ESP8266-AT指令初试化及部分基础知识2-STM32+ESP8266连接onenet并上传数据(HTTP)3-STM32+ESP8266连接onenet上传数据+远程控制(MQTT)硬件接线: 最终呈现软硬件:  一、代码方面:(主要说明onenet.c和esp8266.c)onenet.c中:第一步要修改处那么具体的