这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » jianzhangx ARM DIY进程贴

共77条 1/8 1 2 3 4 5 6 ›| 跳转至

jianzhangx ARM DIY进程贴

助工
2012-03-29 22:39:30     打赏
PCB焊接完毕,上电测试:[6楼] 
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     进程    

助工
2012-03-30 15:59:04     打赏
2楼
ASM1117-3.3V电源器件封装不对,我把中间管脚与PCB管脚用导线连了

助工
2012-04-04 20:57:35     打赏
3楼

有部分电容、电阻找不到,用一些相近的代替了。


院士
2012-04-05 13:58:07     打赏
4楼
大部分都需要用相近来仰卧代替。
注意几个限流电阻,不要弄得太小了

助工
2012-04-06 08:24:26     打赏
5楼

谢谢提醒!
看到那么多人都开始编程了,我着急啊,落后了。


助工
2012-04-07 21:41:21     打赏
6楼

焊接完毕,上电测试,输入DC5V,电流20mA,晒一下图


电流显示:


不知道正常电流应该多大,我焊接的有无问题,还得继续测试。

 


助工
2012-04-14 17:58:52     打赏
7楼
使用huxiongwei说的串口ISP下载后,程序不运行,经检测发现晶振没起振。后来才发现把boot0、boot1的跳线帽去掉,程序可以正常运行。先下载一个闪烁灯,测试发光二极管没问题。大家看看我的视频:(中间的停顿是按下复位的效果)
http://player.youku.com/player.php/sid/XMzg0NDE2OTg0/v.swf

助工
2012-04-14 22:06:14     打赏
8楼
从左到右的流水灯:

助工
2012-04-15 15:12:54     打赏
9楼

从左到右后再返回到左的流水灯:


助工
2012-04-15 19:45:11     打赏
10楼

附上代码:
#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

 


共77条 1/8 1 2 3 4 5 6 ›| 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]