jianzhangx ARM DIY进程贴
LED流水灯程序设计成功视频:[8楼]
LED流水灯程序:[10楼]
串口收发成功:[19楼]
输入中断实验:按键控制LED,S1控制LED3、5翻转,S2控制LED4、6翻转,S3全翻转:[21楼]
PWM控制LED亮变暗、暗变亮的实验视频:[24楼]
EEPROM读写成功:[36楼]
LCD测试成功:[40楼]
AD模数转换结果:[44楼]
SD卡识别结果:[51楼]
RTC实验结果:[58楼]
USB读写SD卡。60楼
订单:
其它元器件都是除了从公司领用外就是自己零散积攒下来的。
今天把基础包上的元件焊到PCB上了。
关键词: jianzhangx 进程
http://player.youku.com/player.php/sid/XMzg0NDE2OTg0/v.swf
附上代码:
#include "stm32f10x_lib.h"
/******************************** 变量定义*********************************/
GPIO_InitTypeDef GPIO_InitStructure;
ErrorStatus HSEStartUpStatus;
/*********************************声明函数*********************************/
void RCC_Configuration(void);
void NVIC_Configuration(void);
void Delay(vu32 nCount);
/*****************************主函数**************************************/
int main(void)
{
u8 Val = 2;
#ifdef DEBUG
debug();
#endif
RCC_Configuration(); //系统时钟配置函数
NVIC_Configuration(); //NVIC配置函数
//使能APB2总线外设时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE, ENABLE);
GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE); //关闭调试 端口重新映射
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5; // 选择管脚
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //配置成推挽式输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //输出模式下 I/O输出速度 50M HZ
GPIO_Init(GPIOE, &GPIO_InitStructure); //初始化PE口
GPIO_Write(GPIOE , 0xFFFF); //输出数据到PE口
while (1)
{
Val=0x04;
while(Val<20)
{
GPIO_Write(GPIOE, ~Val);// | read_val ); //写一个字数据到PE口 04
Delay(0x2FFFFF); // 延时
Val<<=1; // 左移
}
while(Val>4)
{
GPIO_Write(GPIOE, ~Val);// | read_val ); //写一个字数据到PE口 04
Delay(0x2FFFFF); // 延时
Val>>=1; // 左移
}
}
}
/************************** 配置RCC***********************************/
void RCC_Configuration(void)
{
//复位RCC外部设备寄存器到默认值
RCC_DeInit();
//打开外部高速晶振
RCC_HSEConfig(RCC_HSE_ON);
//等待外部高速时钟准备好
HSEStartUpStatus = RCC_WaitForHSEStartUp();
if(HSEStartUpStatus == SUCCESS) //外部高速时钟已经准别好
{
//开启FLASH的预取功能
FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
//FLASH延迟2个周期
FLASH_SetLatency(FLASH_Latency_2);
//配置AHB(HCLK)时钟=SYSCLK
RCC_HCLKConfig(RCC_SYSCLK_Div1);
//配置APB2(PCLK2)钟=AHB时钟
RCC_PCLK2Config(RCC_HCLK_Div1);
//配置APB1(PCLK1)钟=AHB 1/2时钟
RCC_PCLK1Config(RCC_HCLK_Div2);
//配置PLL时钟 == 外部高速晶体时钟*9 PLLCLK = 8MHz * 9 = 72 MHz
RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);
//使能PLL时钟
RCC_PLLCmd(ENABLE);
//等待PLL时钟就绪
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)
{
}
//配置系统时钟 = PLL时钟
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
//检查PLL时钟是否作为系统时钟
while(RCC_GetSYSCLKSource() != 0x08)
{
}
}
}
/*****************NVIC配置函数****************************/
{
#ifdef VECT_TAB_RAM
/* Set the Vector Table base location at 0x20000000 */
NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0);
#else /* VECT_TAB_FLASH */
/* Set the Vector Table base location at 0x08000000 */
NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);
#endif
}
*************************** 延时函数 ***********************/
void Delay(vu32 nCount)
{
for(; nCount != 0; nCount--);
}
#ifdef DEBUG
void assert_failed(u8* file, u32 line)
{
/* User can add his own implementation to report the file name and line number,
ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
/* Infinite loop */
while (1)
{
}
}
#endif
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |