baggiolord

    1. ARM学习报告(经典之作) 140/35536 ARM技术 2012-06-06
      :victory: :kiss: :) :Mad:
    2. 迷茫中,在开始中:)
    3. 下载看了 很不错哈
    4. 周立功-arm工程-快速入门.pdf 137/54061 ARM技术 2012-06-06
      感谢楼主分享,共同进步,祝您愉快!
    5. 感谢楼主分享
    6. #include "stm32f10x_lib.h"#include "math.h" ErrorStatus HSEStartUpStatus;GPIO_InitTypeDef GPIO_DA;GPIO_InitTypeDef GPIO_InitStructure; #define  DA_CS   GPIO_Pin_14#define  DA_SCLK  GPIO_Pin_15#define  DA_SDI  GPIO_Pin_13#define  DA_LDAC  GPIO_Pin_12        #define  Key_up  GPIO_Pin_0#define  Key_down GPIO_Pin_8 void RCC_Configuration(void);void NVIC_Configuration(void);void Delay(vu32 nCount);void da_cnverter(vu16 data); int main(){ vu16 da_value = 0; vu16 i; vu16 Sine16bit[32] = { 0x7FFF,0x98F8,0xB0FB,0xC71C,       0xDA81,0xEA6C,0xF640,0xFD89,       0xFFFE,0xFD89,0xF640,0xEA6C,       0xDA81,0xC71C,0xB0FB,0x98F8,       0x7FFF,0x6706,0x4F03,0x38E2,       0x257D,0x1592,0x09BE,0x0275,       0x0000,0x0275,0x09BE,0x1592,       0x257D,0x38E2,0x4F03,0x6706};  RCC_Configuration(); NVIC_Configuration(); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB |                         RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD |                         RCC_APB2Periph_GPIOE | RCC_APB2Periph_GPIOF, ENABLE); // CS GPIO_DA.GPIO_Pin   = DA_CS; GPIO_DA.GPIO_Speed = GPIO_Speed_50MHz; GPIO_DA.GPIO_Mode  = GPIO_Mode_Out_PP; GPIO_Init(GPIOB,&GPIO_DA); // SCLK GPIO_DA.GPIO_Pin   = DA_SCLK; GPIO_DA.GPIO_Speed = GPIO_Speed_50MHz; GPIO_DA.GPIO_Mode  = GPIO_Mode_Out_PP; GPIO_Init(GPIOB,&GPIO_DA); // SDI GPIO_DA.GPIO_Pin   = DA_SDI; GPIO_DA.GPIO_Speed = GPIO_Speed_50MHz; GPIO_DA.GPIO_Mode  = GPIO_Mode_Out_PP; GPIO_Init(GPIOB,&GPIO_DA); // LDAC GPIO_DA.GPIO_Pin   = DA_LDAC; GPIO_DA.GPIO_Speed = GPIO_Speed_50MHz; GPIO_DA.GPIO_Mode  = GPIO_Mode_Out_PP; GPIO_Init(GPIOB,&GPIO_DA); // Key_up GPIO_DA.GPIO_Pin   = Key_up; GPIO_DA.GPIO_Speed = GPIO_Speed_50MHz; GPIO_DA.GPIO_Mode  = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOA,&GPIO_DA); // Key_down GPIO_DA.GPIO_Pin   = Key_down; GPIO_DA.GPIO_Speed = GPIO_Speed_50MHz; GPIO_DA.GPIO_Mode  = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOA,&GPIO_DA); // led GPIO_DA.GPIO_Pin   = GPIO_Pin_6; GPIO_DA.GPIO_Speed = GPIO_Speed_50MHz; GPIO_DA.GPIO_Mode  = GPIO_Mode_Out_PP; GPIO_Init(GPIOF,&GPIO_DA); // led GPIO_DA.GPIO_Pin   = GPIO_Pin_7; GPIO_DA.GPIO_Speed = GPIO_Speed_50MHz; GPIO_DA.GPIO_Mode  = GPIO_Mode_Out_PP; GPIO_Init(GPIOF,&GPIO_DA); //GPIO_ResetBits(GPIOF, GPIO_Pin_6); // 输出0 亮 //GPIO_SetBits(GPIOF, GPIO_Pin_6); // 输出1 灭 //GPIO_WriteBit(GPIOF,GPIO_Pin_6,RESET);  while(1) {  GPIO_SetBits(GPIOF, GPIO_Pin_6); // 输出1 灭 GPIO_SetBits(GPIOF, GPIO_Pin_7); // 输出1 灭 /* if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0)==0)  {   da_value = da_value + 1;   GPIO_ResetBits(GPIOF, GPIO_Pin_6); // 输出0 亮  }     if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_8)==0)  {   da_value = da_value - 1;   GPIO_ResetBits(GPIOF, GPIO_Pin_7); // 输出0 亮  }  */  for(i=0;i<32;i++)    da_cnverter((Sine16bit)/10);      }// return 0;}void RCC_Configuration(void){     /* RCC system reset(for debug purpose) */  RCC_DeInit();   /* Enable HSE */  RCC_HSEConfig(RCC_HSE_ON);   /* Wait till HSE is ready */  HSEStartUpStatus = RCC_WaitForHSEStartUp();   if(HSEStartUpStatus == SUCCESS)  {    /* Enable Prefetch Buffer */    FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);     /* Flash 2 wait state */    FLASH_SetLatency(FLASH_Latency_2);      /* HCLK = SYSCLK */    RCC_HCLKConfig(RCC_SYSCLK_Div1);       /* PCLK2 = HCLK */    RCC_PCLK2Config(RCC_HCLK_Div1);     /* PCLK1 = HCLK/2 */    RCC_PCLK1Config(RCC_HCLK_Div2);     /* PLLCLK = 8MHz * 9 = 72 MHz */    RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);     /* Enable PLL */     RCC_PLLCmd(ENABLE);     /* Wait till PLL is ready */    while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)    {     }     /* Select PLL as system clock source */    RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);     /* Wait till PLL is used as system clock source */    while(RCC_GetSYSCLKSource() != 0x08)    {    }  }}void NVIC_Configuration(void){#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--);}void da_cnverter(vu16 data){ vu16 i; GPIO_ResetBits(GPIOB, DA_CS);   // CS置0    GPIO_ResetBits(GPIOB, DA_LDAC);    // LDAC一直为0 GPIO_SetBits(GPIOB, DA_SCLK);   // clk置1  for(i = 0;i < 16;i ++) {  if(data & 0x8000)   GPIO_SetBits(GPIOB, DA_SDI);  else   GPIO_ResetBits(GPIOB, DA_SDI);  Delay(10);  GPIO_ResetBits(GPIOB, DA_SCLK); // 时钟线置0  data = data << 1;  GPIO_SetBits(GPIOB, DA_SCLK);  // 时钟线置1   } GPIO_SetBits(GPIOB, DA_CS);   // CS置1}   这是我现在代码。

最近访客

< 1/1 >

统计信息

已有254人来访过

  • 芯积分:--
  • 好友:--
  • 主题:2
  • 回复:6

留言

你需要登录后才可以留言 登录 | 注册


现在还没有留言