STM32开发环境建立实验报告

..
实验 1STM32 开发环境建立
一、实验目的
1、掌握嵌入式开发环境的搭建。
2、熟悉 MINI STM32 开发板的基本使用。
二、实验内容
1、检查 MINI STM32 开发板的完整性。
( 1)ALIENTEK MINI STM32开发板底板一个。
( 2)ALIENTEK 2.8寸  TFTLCD模块一个。
vea( 3)5P MINI USB 数据线一条。
2、上电检测开发板能否正常工作,注意两个USB口的区别。
3、串口驱动的安装。李汉昌
4、 KEIL C软件的安装和使用。
5、 JLINK驱动的安装。波尔
6、跑马灯的实验。
三、实验设备
硬件:PC 机一台
MINI STM32开发板一套
软件:RVMDK V3.8一套
Windows XP一套
四、实验步骤
1、检查开发板完整、正常与否;
2、安装开发软件及驱动,并调试;
3、熟悉固件库,编写代码实现跑马灯功能。
1)给工程新增HARDWARE组
程序里 main()函数非常简单,先调用 delay_init() 初始化延时,接着就是调用LED_Init()来初始化 GPIOA 和 GPIOD 为输出。最后在死循环里面实现 LED0和 LED1交替闪烁,间隔为300ms。程序见附录倾听生命的呢喃
2) 写好程序以后,就编译,看看有没有错误。如果没有错误的话就下载到STM32
板子上。
五、实验结果和实验总结
实验最后实现了流水灯的运转。
这次实验主要是让我们了解一下 STM32 开发板的基本使用,大部分人都是初次接触这个开
发板和 KEILC 软件,都对软件操作不太了解,希望通过这几次实验能够了解并熟练地使用这个
软件,用这个软件来编程和完成一些功能的实现。
,.
附录 C 语言代码:(主要功能的)
//初始化端口
void LED_Init(void)
{
RCC->APB2ENR|=1<<2;// 使能 PORTA 时钟
RCC->APB2ENR|=1<<5;// 使能 PORTD 时钟
GPIOA->CRH&=0XFFFFFFF0;
GPIOA->CRH|=0X00000003;//PA8推挽输出
GPIOA->ODR|=1<<8;//PA8 输出高
GPIOD->CRL&=0XFFFFF0FF;
GPIOD->CRL|=0X00000300;//PD.2推挽输出
GPIOD->ODR|=1<<2;//PD.2 输出高
}
//延时 nms
void delay_ms(u16 nms)
{
u32 temp;
SysTick->LOAD=(u32)nms*fac_ms;//时间加载(SysTick->LOAD为24bit) SysTick->V AL =0x00;// 清空计数器
SysTick->CTRL=0x01 ;//开始倒数
do
{
temp=SysTick->CTRL;
}
while(temp&0x01&&!(temp&(1<<16)));//等待时间到达
SysTick->CTRL=0x00;//关闭计数器
SysTick->V AL =0X00;// 清空计数器
}
//初始化延迟函数
//SYSTICK的时钟固定为HCLK  时钟的 1/8
//SYSCLK: 系统时钟
void delay_init(u8 SYSCLK)
{
SysTick->CTRL&=0xfffffffb;//bit2 清空 ,选择外部时钟 HCLK/8
fac_us=SYSCLK/8;
fac_ms=(u16)fac_us*1000;
}
//系统时钟初始化函数
void Stm32_Clock_Init(u8 PLL)
{
,.
unsigned char temp=0;
MYRCC_DeInit();// 复位并配置向量表
RCC->CR|=0x00010000;//外部高速时钟使能HSEON
while(!(RCC->CR>>17));// 等待外部时钟就绪 RCC-
>CFGR=0X00000400; //APB1=DIV2;APB2=DIV1;AHB=DIV1; PLL-=2;// 抵消 2 个单位
RCC->CFGR|=PLL<<18;// 设置 PLL 值  2~16
RCC->CFGR|=1<<16;//PLLSRC ON
FLASH->ACR|=0x32;//FLASH 2个延时周期
RCC->CR|=0x01000000;//PLLON
while(!(RCC->CR>>25));//等待PLL锁定
RCC->CFGR|=0x00000002;//PLL作为系统时钟
while(temp!=0x02)// 等待 PLL 作为系统时钟设置成功
office2002{
欧洲理事会temp=RCC->CFGR>>2;
temp&=0x03;
}
}
//主函数
int main(void)
{
Stm32_Clock_Init(9); // 系统时钟设置
delay_init(72);// 延时初始化
LED_Init();//初始化与LED 连接的硬件接口
while(1)
{
LED0=0;
LED1=1;
delay_ms(300);
LED0=1;
LED1=0;
delay_ms(300);
}
}
,.

本文发布于:2024-09-20 19:41:43,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/651425.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:实验   时钟   开发板   软件
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议