你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32F072的寄存器LED闪烁

[复制链接]
wambob 发布时间:2015-1-26 15:37
阅读主题, 点击返回1楼
收藏 1 评论15 发布时间:2015-1-26 15:37
15个回答
mmttss 回答时间:2015-1-27 00:40:24
我依样画葫芦下 STM32F429 discovery 也成功了
我先用 STM32CubeMX create 一個空的 STM32F429ZI Project(未规划任何Pins)
用Keil开启 Project

再将 wambob大大的 code 搬上 main.c
最后找出 LED pin 相關的暂存器即可

static unsigned char fac_us;
static unsigned int fac_ms;
void Delay_Init(unsigned char SYSCLK)
{
    SysTick->CTRL&=0xFFFFFFFB;
    fac_us=SYSCLK/8;
    fac_ms=(unsigned int)fac_us*1000;
}
void delay_us(unsigned int nus)
{                                    
        unsigned long temp;                  
        SysTick->LOAD=(unsigned long)nus*fac_us;
        SysTick->VAL =0x00;           //?????
        SysTick->CTRL=0x01 ;          //????  
        do
        {
                temp=SysTick->CTRL;
        }
        while((temp&0x01)&&!(temp&(1<<16)));//??????   
        SysTick->CTRL=0x00;       //?????
        SysTick->VAL =0X00;       //?????                     
}


void delay_ms(unsigned int nms)
{                                    
        unsigned long temp;                  
        SysTick->LOAD=(unsigned long)nms*fac_ms;
        SysTick->VAL =0x00;           //?????
        SysTick->CTRL=0x01 ;          //????  
        do
        {
                temp=SysTick->CTRL;
        }
        while((temp&0x01)&&!(temp&(1<<16)));//??????   
        SysTick->CTRL=0x00;       //?????
        SysTick->VAL =0X00;       //?????                     
}

void LED_Init(void)
{
    RCC->AHB1ENR|=0x40;//1<<17;
    GPIOG->MODER&=0xf0ffffff;
    GPIOG->MODER|=0x04000000;   //怀堤
    GPIOG->OTYPER&=0xffffffef;  //芢侺
    GPIOG->OSPEEDR|=0x00000c00;  //詢厒
}

int main(void)
{

  /* USER CODE BEGIN 1 */

  /* USER CODE END 1 */

  /* MCU Configuration----------------------------------------------------------*/

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* Configure the system clock */
  SystemClock_Config();

  /* Initialize all configured peripherals */

  /* USER CODE BEGIN 2 */

  /* USER CODE END 2 */

  /* USER CODE BEGIN 3 */
  /* Infinite loop */
        Delay_Init(48);
  LED_Init();

  while (1)
  {
    GPIOG->ODR|=0x00002000;
    delay_ms(1000);
    GPIOG->ODR&=0xffffcfff;
    delay_ms(1000);
  }
  /* USER CODE END 3 */

}

led2.zip

下载

4.47 MB, 下载次数: 0

Project

holts1 回答时间:2015-1-27 08:02:32
学习了…………
星辰一方 回答时间:2015-1-27 09:57:54
QianFan 发表于 2015-1-26 17:16
如果不喜欢官方的库,可以自己封装一个。其实感觉官方的IO接口函数配置有点麻烦。自己写一个digitalWrite其 ...

支持digitalwrite
wambob 回答时间:2015-1-27 12:53:30
mmttss 发表于 2015-1-27 00:40
我依样画葫芦下 STM32F429 discovery 也成功了
我先用 STM32CubeMX create 一個空的 STM32F429ZI Project( ...

Delay_Init(48);
参数48是系统时钟,你可以改的,429的时钟是多少呢?
QianFan 回答时间:2015-1-27 13:03:29
wambob 发表于 2015-1-27 12:53
Delay_Init(48);
参数48是系统时钟,你可以改的,429的时钟是多少呢?

标准的是180M
mmttss 回答时间:2015-1-27 13:29:38
wambob 发表于 2015-1-27 12:53
Delay_Init(48);
参数48是系统时钟,你可以改的,429的时钟是多少呢?

我有发现时钟快了些, 第一次直接操作寄存器, 这些细节就忽略了
12

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版