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

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扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版