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

共9条 1/1 1 跳转至

net1234599的ARM DIY 进程贴

工程师
2012-03-11 10:39:11     打赏
坐等PCB



关键词: net1234599     进程    

工程师
2012-03-29 17:45:08     打赏
2楼

工程师
2012-03-29 17:46:27     打赏
3楼
收到PCB,上图,凑元器件中……

工程师
2012-04-11 10:42:09     打赏
4楼
PCB焊好了,还没有测试……

工程师
2012-04-11 10:43:33     打赏
5楼

菜鸟
2012-04-14 14:55:41     打赏
6楼
我的也受到了。。。

工程师
2012-05-10 13:55:08     打赏
7楼

终于有时间做一下了,今天上电试了一下还可以,就开始着手第一个程序,跑马灯,发现有一个灯LED6始终不亮,换了几个也不行,得出结论是很有可能焊接的主芯片这个引脚有问题,但是并不影响其他的灯。
上代码:
1.跑马灯:
#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "led.h"

int main(void)

    u8 i,j,k;    
 Stm32_Clock_Init(9); //系统时钟设置
 delay_init(72);      //延时初始化
 LED_Init();
 while(1)
 {
    for(i=0;i<5;i++)
    {
     {
      LED3=0;
      LED4=0;
      LED5=0;
      LED6=0;
     }
     delay_ms(1000);
     {
      LED3=1;
      LED4=1;
      LED5=1;
      LED6=1;
     }
     delay_ms(1000);
    }
    delay_ms(1000);
    for(j=0;j<4;j++)
    {
       PEout(j+2)=0;
    delay_ms(1000);
    }
    for(k=6;k>2;k--)
    {
       PEout(k)=1;
    delay_ms(1000);
    }
    delay_ms(1000);
    {
     LED3=1;
     LED4=1;
     LED5=1;
     LED6=1;
    }
    delay_ms(1000);
 } 
}

void LED_Init(void)
{
 RCC->APB2ENR|=1<<6;    //使能PORTE时钟       
     
 GPIOE->CRL&=0XFFF0000F;
 GPIOE->CRL|=0X00033330;//PE2-PE5推挽输出    
    GPIOE->ODR|=0X00011110;//PE2-PE5输出高            
}


工程师
2012-05-15 13:45:06     打赏
8楼

2.按键输入
注:有一个按键可能是焊接有问题,没有反应
#include <stm32f10x_lib.h>
#include "sys.h"
#include "usart.h"  
#include "delay.h" 
#include "led.h"
#include "key.h"   
//按键输入实验  
int main(void)
{            
 Stm32_Clock_Init(9); //系统时钟设置
 delay_init(72);      //延时初始化
 LED_Init();      //初始化与LED连接的硬件接口
 KEY_Init();          //初始化与按键连接的硬件接口
 while(1)
 {
    if(S1==1)
      LED3=!LED3;
    else if(S2==0)
      LED4=!LED4;
    else if(S3==0)
      LED5=!LED5;
   else delay_ms(10);
 } 
}
           
//按键初始化函数
void KEY_Init(void)
{
 RCC->APB2ENR|=1<<2;     //使能PORTA时钟
 RCC->APB2ENR|=1<<4;     //使能PORTC时钟
 RCC->APB2ENR|=1<<7;     //使能PORTF时钟
 GPIOA->CRL&=0XFFFFFFF0;//PA0设置成输入  
 GPIOA->CRL|=0X00000008;  
 GPIOC->CRH&=0XFF0FFFFF;//PC13设置成输入  
 GPIOC->CRH|=0X00800000;
 GPIOF->CRH&=0XFFFF0FFF;//PF11设置成输入
 GPIOF->CRH|=0X00008000;       
 GPIOC->ODR|=1<<13;    //PC13上拉,PA0默认下拉
 GPIOF->ODR|=1<<11;    //PF11上拉


工程师
2012-05-16 14:47:18     打赏
9楼

3.串口实验
#include <stm32f10x_lib.h>
#include "sys.h"
#include "usart.h"  
#include "delay.h" 
#include "led.h"
#include "key.h"   
//串口实验 
int main(void)
{   
 u8 t;
 u8 len; 
 u16 times=0; 
 Stm32_Clock_Init(9); //系统时钟设置
 delay_init(72);      //延时初始化
 uart_init(72,9600);  //串口初始化为9600
 LED_Init();      //初始化与LED连接的硬件接口   
 while(1)
 {
  if(USART_RX_STA&0x80)
  {       
   len=USART_RX_STA&0x3f;//得到此次接收到的数据长度
   printf("\nThe message you send:\n");
   for(t=0;t<len;t++)
   {
    USART1->DR=USART_RX_BUF[t];
    while((USART1->SR&0X40)==0);//等待发送结束
   }
   printf("\n\n");//插入换行
   USART_RX_STA=0;
  }else
  {
   times++;
   if(times%1000==0)
   {
       printf("\nwww.eepw.com.cn\n");
    printf("ARM DIY USART\n");
    printf("net1234599\n\n\n");
   }
   if(times%200==0)printf("Please enter message:\n"); 
   if(times%30==0)LED3=!LED3;//闪烁LED,提示系统正在运行.
   delay_ms(10);  
  }
 } 
}


共9条 1/1 1 跳转至

回复

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