草庐IT

STM32F103C8T6串口通信

 首先来看一下需要操作的函数,以及配置的步骤:          图1                         图2  Code:usart.c#include"usart.h"voidustart_Init(void){GPIO_InitTypeDefGPIO_Init_Ustar;//定义输出端口TX的结构体对象 USART_InitTypeDefUSTART_Init;//定义串口初始化结构体对象 NVIC_InitTypeDefNVIC_InitStructure;//定义中断优先级组结构体对象 //配置中断优先级,以及中断的模式 NVIC_PriorityGroupConfi

STM32F103:ADC采样——定时器触发+DMA传输

实现ADC多通道采样,采用DMA传输,采样由定时器触发初始化代码:voidAdc_Init(void){ GPIO_InitTypeDefGPIO_InitStructure; DMA_InitTypeDefDMA_InitStructure; ADC_InitTypeDefADC_InitStructure; TIM_TimeBaseInitTypeDefTIM_TimeBaseStructure; TIM_OCInitTypeDefTIM_OCInitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Per

13.STM32F103C8使用PSRAM64H外扩RAM空间

一、简介最近在调试STM32F103C8驱动墨水屏的实验,在使用过程中,需要使用大内存的RAM需要,由于C8T6的RAM空间只有20KB,而墨水屏的需要的内存为800*480*2/8=93.75KB。在网上查了相关的方案,都是使用STM32F103ZE外扩IS62WV51216这种并口SRAM的,使用IS62WV51216需要使用多引脚的STM32F103Zx系列,对于我这种使用背景,不需要上Zx系列,想查找下有没有串口的SRAM方案,但是并没有找到。网上有成熟的TM32F103Cx系列外扩W25Qxx芯片的方案,但是这是FLASH,不是RAM,也不是我想要的方案。所以干脆自己做个方案,找到了

STM32F103 点亮LED闪烁与仿真

今天给大家分享一下STM32流水灯简单的仿真吧,我感觉这个提供有用的,但是自己也是第一次使用,主要是感觉曲线很高级。在PWM中查看脉宽很有用。code:led.c#include"led.h"#include"delay.h"/*GPIO的控制寄存器的配置1、配置输出引脚2、打开对应的输出的寄存器的时钟3、配置引脚输出的模式:强上拉、推完、开漏输出4、配置输出的速度。*/voidLed_funcing(){GPIO_DeInit(LED_GPIO_PORT);//注意这里的函数非常的重要,这里是将对应的GPIO端口初始化成默认的样子,因为这个端口可能在以前使用过,其他的配置可能发生了改变GPI

STM32F103C8T6串口调试篇

项目开发中,当出现bug时,由于不知道某个变量的值,所以很难定位问题,针对此问题,串口调试脱颖而出。通过串口printf()实时将需要显示的信息打印出来,这样就很方便的定位问题。串口设置方法1.购买调试器pwlink2。参考STM32F103C8T6程序烧录方法_stm32f103c8t6如何烧录_流浪法师解剖鱼的博客-CSDN博客2.下载Power  Writer烧录调试软件。3.编写代码,配置串口,编写要打印的东西,通过printf();代码部分见最后。4.连线,STM32F103C8T6我配置的PA9和PA10分别位TXRX,连接到烧录器pwlink的RX和TX端。5.下载程序。6.打开

[STM32F103C8T6]W5500+Modbus TCP(HAL库)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、ModbusTCP是什么?1.1.1ModbusTCP介绍1.1.2报文格式二、W5500配置三.读保持寄存器&&写单一寄存器函数1.代码展示2.参考资料总结前言本章节是博主学习ModbusTCP所写的一篇文章一、ModbusTCP是什么?1.1.1ModbusTCP介绍ModbusTCP是Modbus的一个分支,主要用到网口通信的,在工业上也用的很频繁,我们公司最近的项目就是用的W5500+modbusTCP来和PC端的上位机通信和交互的。虽然这个项目不是我在写代码,但是我都学了ModbusRTU了,那我也抽空学

stm32f103 简易4路红外寻迹小车(2)----2023西南交大电赛校赛(pcb原理图,代码及分析)

目录一。材料准备。二。PCB原理图 三。逻辑状态图四。代码部分五。文件下载:接上:stm32f103简易4路红外寻迹小车(1)----2023西南交大电赛校赛(含stm32中文资料)小车测试视频:stm32小车寻迹小车一。材料准备。材料资料图片见上:stm32f103简易4路红外寻迹小车(1)----2023西南交大电赛校赛(含stm32中文资料)电机驱动MX1919LVCC统一接stm32系统板的3.3v。VDD接7.4V电源。电容连接如图。左侧和右侧两轮分别接2通道。利用pwm波改变占空比控制电机转速,逻辑输入接可以产生pwm的PA6,PA7,PB0,PB1(TIM3),复用推挽输出。红外

STM32F103硬件SPI驱动ADS1256

一:最近实验室有几个项目都需要用到高分辨率AD转换,于是就开始了ADS1256的开发。新手,焊得丑,见谅(能用就行)二:本以为很容易就能做完,结果被采样速率的问题困扰了很久。代码如下,使用2.5V基准源进行测试,结果在读ADS时经常出现读出0xFFFFFF的情况,只能忍住悲伤开始查找资料,后来在TI论坛上看到一位大哥说这种情况一般是SPI没有读取到数据于是直接将ADS初始化中的10SPS改成30000SPS,结果一测试OK了。voidADS1256_Init(void){ ADS1256WREG(ADS1256_STATUS,0x04); ADS1256WREG(ADS1256_MUX,0x0

stm32f103基于pid的蓝牙循迹小车

目录前言一、霍尔编码器以及定时器计数原理二、使用pwm占空比对电机速度进行控制三、使用systick的中断函数进行pid和速度的计算,还有oled的显示四、常用的测速方法: 五、pid原理六、oled的实现七、蓝牙通信八、3路循迹模块总结前言经过一个月对stm32的学习,终于完成了一个小车的项目,本项目用到了pid对小车进行控速,两个电机,一个万向轮,一个3路灰度循迹模块进行循迹,0.96寸oled进行一些参数的显示,通信方式使用qt写的app传到手机,用手机与hc06蓝牙模块进行简单的通信。一、霍尔编码器以及定时器计数原理对于霍尔编码器,工作原理如下 可以得到两种输出方式,通过定时器的编码器

Stm32f103之串口发送数据,只接收到00的原因

1、时钟选择的对不对,2、GPIO口的TX引脚应该设置为“复用推挽输出”3、中断初始化函数也不可加 4、硬件方面RXT、TXD电路接反。一直出现00的时候就要怀疑是不是线接反了。总结:大概率是代码的问题一定要仔细检查