最后更新:2021-10-30 14:20:53 手机定位技术交流文章
因为STM32CubeMX是写在爪哇的,所以必须安装jdk环境。
与 Jdk 在线下载的链接 :
https://www.oracle.com/java/technologies/javase-downloads.html
下载地址:
https://www.st.com/en/development-tools/stm32cubemx.html
安装过程
1 运行并安装SetupSTM32CubeMX-4作为管理员。
简单地填好邮件的文件

总是很不近人情
next,
等等,安装完成
运行CubeMX ,选择 Help->Magne 安装固件库
但一,六,0似乎过时了, 因此,这是我去的。 8,0安装。
ARM处理器,特别是Cortex-M内核处理器的最佳编程工具是MDK(MDK(MDK控制器开发工具包) ) 。 我们不会下载这里的下载内容。 请改到 https://blog.org 。 我为这种不便向您道歉, csdn 。 此文章是我们特别报导澳大利亚的部分内容 。 net/qq_ 43279579579/ article/ details/10880667 。
打开 Keil, 然后选择新的视野工程 。
选择要使用的 stm32F103R8 芯片 。

已经写入一个宏以存储 stm32 内存映射图 。
#define PERIPH_BASE ((unsigned int)0x40000000)//AHB
#define APB2PERIPH_BASE (PERIPH_BASE + 0x10000)
#define GPIOA_BASE (APB2PERIPH_BASE + 0x0800)
/GPIOA_BASE=0x400+0x100+0x100+0x00800=0x40010800,GPIOA基准地址
#define GPIOB_BASE (APB2PERIPH_BASE + 0x0C00)
/GPIOB_BASE=0x400+0x100+0x100+0x0C00=0x40010C00,GPIOB基准地址
#define GPIOC_BASE (APB2PERIPH_BASE + 0x1000)
/GPIOC_BASE=0x400+0x100+0x100+0x100=0x4001100,GPIOC基准地址
#define GPIOD_BASE (APB2PERIPH_BASE + 0x1400)
/GPIOD_BASE=0x400+0x100+0x100+0x1400=0x4001400,GPIOD基准地址
#define GPIOE_BASE (APB2PERIPH_BASE + 0x1800)
/GPIOE_BASE=0x400+0x100+0x100+0x0800=0x4001800GPIOE基准地址
#define GPIOF_BASE (APB2PERIPH_BASE + 0x1C00)
/GPIOF_BASE=0x400+0x100+0x100+0x0800=0x40011C00 GPIOF基准地址
#define GPIOG_BASE (APB2PERIPH_BASE + 0x2000)
/GPIOG_BASE=0x400+0x100+0x100x0x0800=0x4001200,GPIOG的基本地址
#define GPIOA_ODR_Addr (GPIOA_BASE+12) //0x4001080C
#define GPIOB_ODR_Addr (GPIOB_BASE+12) //0x40010C0C
#define GPIOC_ODR_Addr (GPIOC_BASE+12) //0x4001100C
#define GPIOD_ODR_Addr (GPIOD_BASE+12) //0x4001140C
#define GPIOE_ODR_Addr (GPIOE_BASE+12) //0x4001180C
#define GPIOF_ODR_Addr (GPIOF_BASE+12) //0x40011A0C
#define GPIOG_ODR_Addr (GPIOG_BASE+12) //0x40011E0C
#define BITBAND(addr, bitnum) ((addr & 0xF0000000)+0x2000000+((addr &0xFFFFF)<<5)+(bitnum<<2))
#define MEM_ADDR(addr) *((volatile unsigned long *)(addr))
#define LED0 MEM_ADDR(BITBAND(GPIOA_ODR_Addr,8))
//#define LED0 *((volatile unsigned long *)(0x422101a0)) //PA8
/ 定义了类型类型类别名。
typedef struct
{
volatile unsigned int CR;
volatile unsigned int CFGR;
volatile unsigned int CIR;
volatile unsigned int APB2RSTR;
volatile unsigned int APB1RSTR;
volatile unsigned int AHBENR;
volatile unsigned int APB2ENR;
volatile unsigned int APB1ENR;
volatile unsigned int BDCR;
volatile unsigned int CSR;
} RCC_TypeDef;
#define RCC ((RCC_TypeDef *)0x40021000)
/ 定义了类型类型类别名。
typedef struct
{
volatile unsigned int CRL;
volatile unsigned int CRH;
volatile unsigned int IDR;
volatile unsigned int ODR;
volatile unsigned int BSRR;
volatile unsigned int BRR;
volatile unsigned int LCKR;
} GPIO_TypeDef;
/GPIOA指GPIOA_BASE,其数据类型为GPIO_TypeDef。
#define GPIOA ((GPIO_TypeDef *)GPIOA_BASE)
void LEDInit( void )
{
RCC->APB2ENR|=1<<2; //GPIOA 时钟开启
GPIOA->CRH&=0XFFFFFFF0;
GPIOA->CRH|=0X00000003;
}
//粗略延时
void Delay_ms( volatile unsigned int t)
{
unsigned int i,n;
for (n=0;n<t;n++)
for (i=0;i<800;i++);
}
int main(void)
{
LEDInit();
while (1)
{
LED0 = 0;// Light 光线二极管
延迟_ms( 500); // 延迟
LED0=1;//LED照明
延迟_ms( 500); // 延迟
}
}
1点击“塔塔组织”

首先开始调试, 然后使用调试工具 。

请前往博客了解更多信息:
https://blog.csdn.net/junseven164/article/details/120807138
下面为我的部分截图

下面的图像将移动电话的内容描述为效果图。

环球同步非同步传输器(USART)是一个序列通信装置,它允许与外部设备进行全时数据交换,同时保持灵活性。 与USART不同,还有UART,它以USART为基础,但被切断用于同步通信,但非同步通信除外。 同步和灵敏之间的根本对比是通信不需要外部时钟输出,但我们通常使用序列通信。
一般来说,序列连接以框架格式发送数据,即带起始信号、数据电文、截断信息,也许还有检查信息的框架框架传输。 USART是专门为这些传输参数而设计的,而不仅仅是一个单一参数值,其中许多参数可以自定义,而只是为了改进兼容性。
(1) 规定波特费率为115 200美元,一次中途停留,不校准。
2) STM32系统不断将“ello windows”传送至顶级计算机(win 10)。 上层机接收器可选择使用“单调试辅助器”或自编程序。
(3) 当输入的计算机传输“停止,stm32”,stm32停止发送时。
1. 野火多功能调试助手
2、CH34_Install_Windows_v3_4
3、mcuisp
请继续下载 CH34_Install_Windows_v3_4。
这个博客试图在此提交, 但发现这个平台已经拥有这个资源, 更多资料可在博客上找到: https://blog.com. I'm sorry, csdn.

野火下载助手看这儿:https://www.firebbs.cn/forum.php?mod=viewthread&tid=29790&extra=

打开mcuisp
开始编程
将 RTS 高端重新定位为启动装入器( 将核心板更改为 10) 。
在没有振荡器的情况下,可使用管子脚的时间序列波形来模仿Keil软件的逻辑分析功能,允许动态调试和代码故障区域的位置。该功能用于检查串口的波形输出,确定波形代表的正确时间序列状态,以及真正的低和低水平转换周期(LED闪烁周期)。


完成
本文由 在线网速测试 整理编辑,转载请注明出处。