之前一直用arduino对C8T6编程,但是遇到一些有兴趣但又是Keil编程的就不是很方便。
坑迟早要填的,Keil早前51用过一阵子,用过arduino就回不去了。
硬件准备,上面图片里包括:
STM32F103C8T6 ,OLED, 普通LED,ST-Link-v2
软件准备:
Keil uv5 MDK522, ST-Link驱动
和Arduino不同,Keil下每个程序都是一个工程(project),一大堆东西,所以入门大概必须一个模板,这个很多教程都会提供的,注意支持的版本即可。
----------------------------------------------------------------------------------------
Keil 的使用基本就是 写程序,编译,下载到芯片。一开始会遇到各种设置问题,根据报错提示搜一搜都能解决,然后就可以跑个例程了。
假假贴个main.c , 闪个灯先。(板载LED是 PC13)
void Delay(u32 count)
{
u32 i=0;
for(;i<count;i++);
}
int main(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); // 使能 PB 端口时钟
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13; // LED0-->PB.5 端口配置
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; // 推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; // IO口速度为50MHz
GPIO_Init(GPIOC, &GPIO_InitStructure); // 初始化GPIOB.5
while(1)
{
GPIO_ResetBits(GPIOC,GPIO_Pin_13);
Delay(8000000);
GPIO_SetBits(GPIOC,GPIO_Pin_13);
Delay(2000000);
}
}
右图多接了一个TTL,只需要接 Rx Tx 到A9 A10(其他引脚也行), Vcc和Gnd ST-Link 已接。