当前位置:首页 » 存储配置 » stm32怎么配置

stm32怎么配置

发布时间: 2022-01-13 04:51:08

A. 中断向量表STM32怎样配置

如果你使用的是ST的库的话,那么在汇编启动文件中已经定义好了。和大多数芯片不一样的是,stm32的中断向量表中存放的不是一条跳转指令,而是一个入口地址。假如说要自己编写的话,一定要用这样的方式:DCD XXXXX (其中XXXX就是中断服务函数的入口地址,至于转到这个函数由芯片自己处理)
中断向量表默认情况下起始于0x04,(0x00用于堆栈栈顶的地址).对于STM32来说,中断向量表的长度大概是60多还是80多字(记不太清了).每个字代表一个中断向量.
假如使用的是官方库函数的话,那么所有的中断向量表都已经定义好了.比如,TIM1的中断他可能就定义了类似 DCD TIM1ISR 之类的语句
那么我们在主函数中只要定义一个一个isr即可, 比如 定义一个void TIM1ISR()函数就行(必须与那么函数对应).然后设置下nvic和相关外设寄存器即可.
中断的工作过程就是中断向量的映射过程.至于中断重映射是指把中断向量表移动到其它的位置上去.通常和分散加载一起使用,为了使程序在RAM中运行,自然也要把中断向量表放到RAM中,加快程序的运行速度.如果是新手,先别研究这么深的内容,就把中断向量表定死在flash的开头部分,默认地址即可.

B. 关于stm32单片机的引脚配置:

STM32F10xxx参考手册 中文英文都有



C. stm32需要什么电脑配置

两三千的都没问题。只要装个keil罢了。再新潮一点,装个CubeMX。再全面一点,再装个IAR。配置没什么太高要求。

D. STM32的时钟到底如何配置

时钟配置的话,你可以先想好自己的程序里面需要用到哪些外设,然后根据时钟树打开相应的外设时钟就行了。我这里给你一个一般的时钟配置的子程序吧:
void rcc_configuration(void)
{
ErrorStatus HSEStartUpStatus; //定义变量HSEStartUpStatus
RCC_DeInit(); //RCC重新配置
RCC_HSEConfig(RCC_HSE_ON); //打开HSE时钟
HSEStartUpStatus = RCC_WaitForHSEStartUp(); //读入RCC状态
if(HSEStartUpStatus == SUCCESS) //HSE时钟稳定
{
FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable); //Flash预取缓冲使能;
FLASH_SetLatency(FLASH_Latency_2); //72MHz运行时,Flash需要等到2个周期;
RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9); //使用外部时钟的9倍作为PLL时钟;
RCC_PLLCmd(ENABLE); //使能PLL;

while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET) //等待PLL时钟稳定;
{
}

RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); //把系统时钟切换到PLL时钟;

while(RCC_GetSYSCLKSource() != 0x08) //判断PLL是否是系统时钟
{
}
}

下面这个是总线上的时钟配置:
RCC_HCLKConfig(RCC_SYSCLK_Div1); //主时钟为72MHz
RCC_PCLK2Config(RCC_HCLK_Div1); //APB2时钟为72MHz
RCC_PCLK1Config(RCC_HCLK_Div2); //APB1时钟为36MHz
RCC_ADCCLKConfig(RCC_PCLK2_Div4); //ADC时钟为18MHz

你也可以去看一下ST官方介绍库函数的文档,在官网上面有的。

E. stm32串口5怎么配置

STM32串口配置的一般步骤(库函数)
(1)串口时钟使能:RCC_APBxPeriphClockCmd();
GPIO时钟使能:RCC_AHBxPeriphClockCmd();
(2)引脚复用映射:GPIO_PinAFConfig();
(3)GPIO端口模式配置:GPIO_Init(); 模式配置为GPIO_Mode_AF
(4)串口参数初始化:USART_Init();
(5)开启中断并且初始化NVIC(如果需要开启中断才需要这个步骤)
NVIC_Init();
USART_ITConfig();
(6)使能串口:USART_Cmd();
(7)编写中断处理函数:USARTx_IRQHandler();
(8)串口数据收发:
void USART_SendData();//发送数据到串口,DR
uint16_t USART_ReceiveData();//接收数据,从DR读取接收的数据
(9)串口传输状态获取:
FlagStatus USART_GetFlagStatus();
void USART_ClearITPendingBit();更加详细的可以在闯客网技术论坛进行查看的。

范例代码:

#include"stm32f4xx.h"
#include"usart.h"

/*中断服务函数*/
voidUSART1_IRQHandler(void)
{
uint16_trecv;

if(USART_GetFlagStatus(USART1,USART_IT_RXNE))
{
recv=USART_ReceiveData(USART1);
USART_SendData(USART1,recv);
}
}


voidUsart1_Demo_Init(void)
{
GPIO_InitTypeDefGPIOA_InitStruct;
USART_InitTypeDefUSART1_InitStruct;
NVIC_InitTypeDefNVIC_InitStruct;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);/*使能USART1时钟*/
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE);/*使能GPIOA的时钟*/

/*将PA9和PA10映射到串口1*/
GPIO_PinAFConfig(GPIOA,GPIO_PinSource9,GPIO_AF_USART1);
GPIO_PinAFConfig(GPIOA,GPIO_PinSource10,GPIO_AF_USART1);

/*设置GPIO端口模式*/
GPIOA_InitStruct.GPIO_Pin=GPIO_Pin_9|GPIO_Pin_10;
GPIOA_InitStruct.GPIO_Mode=GPIO_Mode_AF;
GPIOA_InitStruct.GPIO_OType=GPIO_OType_PP;
GPIOA_InitStruct.GPIO_PuPd=GPIO_PuPd_UP;
GPIOA_InitStruct.GPIO_Speed=GPIO_Speed_100MHz;
GPIO_Init(GPIOA,&GPIOA_InitStruct);

/*串口参数初始化*/
USART1_InitStruct.USART_BaudRate=115200;
USART1_InitStruct.USART_HardwareFlowControl=USART_HardwareFlowControl_None;
USART1_InitStruct.USART_Mode=USART_Mode_Rx|USART_Mode_Tx;
USART1_InitStruct.USART_Parity=USART_Parity_No;
USART1_InitStruct.USART_StopBits=USART_StopBits_1;
USART1_InitStruct.USART_WordLength=USART_WordLength_8b;
USART_Init(USART1,&USART1_InitStruct);

/*使能USART1*/
USART_Cmd(USART1,ENABLE);

/*使能串口使用的中断*/
NVIC_InitStruct.NVIC_IRQChannel=USART1_IRQn;
NVIC_InitStruct.NVIC_IRQChannelCmd=ENABLE;
NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority=1;
NVIC_InitStruct.NVIC_IRQChannelSubPriority=1;
NVIC_Init(&NVIC_InitStruct);
USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);
}

intmain(void)
{
/*设置中断分组*/
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
Usart1_Demo_Init();

while(1);
}

F. STM32 KEIL怎么配置选项字

你说的应该是目标选项配置,进入配置就行了。

Keil(MDK-ARM)系列教程(三)_工程目标选项配置(Ⅰ):
http://blog.csdn.net/ybhuangfugui/article/details/51655502

Keil系列教程:
http://blog.csdn.net/column/details/13472.html

G. stm32f103 串口3怎么配置

下载个STM32CUBEMX进行图形化配置很方便。
要不你可以看看ST的UART例程,无非注意外设时钟、管脚配置的确认及
调整。cube库里配置如下:
/* Put the USART peripheral in the Asynchronous mode (UART Mode) */
/* UART configured as follows:
- Word Length = 8 Bits (7 data bit + 1 parity bit) : BE CAREFUL : Program 7 data bits + 1 parity bit in PC HyperTerminal
- Stop Bit = One Stop bit
- Parity = ODD parity
- BaudRate = 9600 baud
- Hardware flow control disabled (RTS and CTS signals) */
UartHandle.Instance = USARTx;
UartHandle.Init.BaudRate = 9600;
UartHandle.Init.WordLength = UART_WORDLENGTH_8B;
UartHandle.Init.StopBits = UART_STOPBITS_1;
UartHandle.Init.Parity = UART_PARITY_ODD;
UartHandle.Init.HwFlowCtl = UART_HWCONTROL_NONE;
UartHandle.Init.Mode = UART_MODE_TX_RX;
if (HAL_UART_Init(&UartHandle) != HAL_OK)
{
/* Initialization Error */
Error_Handler();
}

H. 如何使用STM32

关于获取ST公司的STM32固件库源码,有几种方法。我们可以在网络上搜,网上有进行了分享,也可以到ST公司的官网进行查找并下载。不过,如果英文不好的话,要在官网上找到STM32固件库确实是件很吃力的事。在官网上可以根据英文提示按不同条件进行筛选,具体操作如下图所示:

END
第二步:新建工程文件夹——《STM32工程模板》
首先,新建工程文件夹《STM32工程模板》,然后再在该文件夹下新建6个文件夹,分别为:《Doc》、《Libraries》、《Listing》、《Output》、《Project》和《User》。其中,《Doc》用于存放各种说明文档;《Libraries》用于存放各种库文件;《Listing》用于存放编译时产生的中间文件;《Output》用于存放生成的下载所需的文件;《Project》用于存放工程文件;《User》用于存放用户文件,即我们自己编写的各种源文件。具体情况如下图所示:

END
第三步:向建立的工程文件夹中添加库文件
将库文件中的inc和src文件夹复制到模板工程文件夹下的FWLIB文件夹。具体操作情况如下图:
将库文件中CoreSupport文件夹下的文件复制到工程模板文件夹下的CMSIS文件夹。具体操作情况如下图:
将库文件中DeviceSupport文件夹下的相关文件复制到工程模板文件夹下的CMSIS文件夹。具体操作情况如下图:
将库文件中startup文件夹下arm中的文件全部复制到工程模板文件夹下的startup文件夹。具体操作情况如下图:
将库文件中Project文件夹下的相关文件复制到工程模板文件夹下的User文件夹中。具体操作情况如下图:
第四步:使用MDK(Keil)新建工程模板
首先得选择CPU,这个在新建工程时,会有一个选择芯片的界面,我们只需按提示以及自己的实际情况来选择就好了。具体操作情况如下图:
更改工程名(将默认的工程名改为“Template”的方法:选中工程,按“F2”键)并为工程添加项目组(Add group to project)。具体操作情况如下图:
分别向各个项目组中添加我们刚刚从库中复制过来的文件文件(Add files to group)。具体操作情况如下图:
第五步:工程配置
配置Target选项卡。具体操作情况如下图:

配置Output选项卡。具体操作情况如下图:

配置Listing选项卡。具体操作情况如下图:

配置C/C++选项卡。具体操作情况如下图:

配置Debug选项卡。具体操作情况如下图:

配置Utilities选项卡。具体操作情况如下图:

热点内容
aipdf脚本 发布:2024-11-14 15:49:18 浏览:618
小编程家 发布:2024-11-14 15:43:29 浏览:140
java异步存储 发布:2024-11-14 15:43:28 浏览:66
普通电脑做数据服务器 发布:2024-11-14 15:42:29 浏览:895
数位算法软件 发布:2024-11-14 15:38:00 浏览:516
apache外网不能访问 发布:2024-11-14 15:34:15 浏览:479
如何上传透明头像 发布:2024-11-14 15:32:40 浏览:836
无法连接云服务器 发布:2024-11-14 15:09:26 浏览:504
公司服务器的管理应该如何进行 发布:2024-11-14 15:08:18 浏览:215
rc4加密解密 发布:2024-11-14 15:06:32 浏览:89