我是 ARM 微控制器编程的初学者,但我确实有使用 AVR 和 PIC 微控制器的经验。
几天前,我从 eBay 购买了 STM32F103VET6 开发板。我现在正在尝试对这个板进行编程,但我不知道从哪里开始。我还收到了一张CD,里面有一些数据表和一些文件(都是中文的)。
有人可以告诉我如何开始吗?或者有人有一些源样本吗?
我已经安装了 Keil uVision4。我还有一个 J-link 调试器。
我是 ARM 微控制器编程的初学者,但我确实有使用 AVR 和 PIC 微控制器的经验。
几天前,我从 eBay 购买了 STM32F103VET6 开发板。我现在正在尝试对这个板进行编程,但我不知道从哪里开始。我还收到了一张CD,里面有一些数据表和一些文件(都是中文的)。
有人可以告诉我如何开始吗?或者有人有一些源样本吗?
我已经安装了 Keil uVision4。我还有一个 J-link 调试器。
如果你想看,我有闪光灯的例子
#include "stm32f10x_conf.h"
/* led connected to a gpio pin */
#define LED1_PIN GPIO_Pin_0
#define LED1_PORT GPIOB
#define LED2_PIN GPIO_Pin_3
#define LED2_PORT GPIOC
#define LED3_PIN GPIO_Pin_0
#define LED3_PORT GPIOA
#define LED4_PIN GPIO_Pin_0
#define LED4_PORT GPIOE
/* user functions */
void delay(unsigned long count);
int main()
{
GPIO_InitTypeDef GPIO_InitStructure;
/* enable clock on GPIOB peripheral */
//RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOE | RCC_APB2Periph_GPIOA, ENABLE);
/* set pin output mode */
GPIO_InitStructure.GPIO_Pin = LED1_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(LED1_PORT, &GPIO_InitStructure);
//LED 2
GPIO_InitStructure.GPIO_Pin = LED2_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(LED2_PORT, &GPIO_InitStructure);
//LED 3
GPIO_InitStructure.GPIO_Pin = LED3_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(LED3_PORT, &GPIO_InitStructure);
//LED 4
GPIO_InitStructure.GPIO_Pin = LED4_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(LED4_PORT, &GPIO_InitStructure);
while(1)
{
GPIO_SetBits(LED1_PORT, LED1_PIN); // set pin high
delay(2000000);
GPIO_ResetBits(LED1_PORT, LED1_PIN); // set pin low
delay(2000000);
GPIO_SetBits(LED2_PORT, LED2_PIN); // set pin high
delay(2000000);
GPIO_ResetBits(LED2_PORT, LED2_PIN); // set pin low
delay(2000000);
GPIO_SetBits(LED3_PORT, LED3_PIN); // set pin high
delay(2000000);
GPIO_ResetBits(LED3_PORT, LED3_PIN); // set pin low
delay(2000000);
GPIO_SetBits(LED4_PORT, LED4_PIN); // set pin high
delay(2000000);
GPIO_ResetBits(LED4_PORT, LED4_PIN); // set pin low
delay(2000000);
}
//return 0;
}
void delay(unsigned long count)
{
while(count--);
}
另请查看非常实惠的 STM32 Discovery 板。在 Github 上获取 texane/stlink 项目的副本,该项目有一个非常有用的教程以及很好的入门软件工具。
你可以在不同的地方得到板子。
http://www.digikey.com/us/en/ph/ST/STM32_value_line_discovery.html
http://www.mouser.com/stm32discovery
http://www.newark.com/jsp/search/productdetail.jsp?SKU=21T4023
这是 Github 上的 stlink 项目。
您可以在此处找到有关 STM32F103 编程的大量信息:
http://www.st.com/internet/mcu/product/164486.jsp
有很多例子。
使用 ST 板之一,您会发现事情变得更容易,例如这个:
http://www.st.com/internet/evalboard/product/250863.jsp
它们非常便宜,并且有大量的文档和示例可用。