一乐电子

一乐电子百科

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

快捷登录

手机号码,快捷登录

搜索
楼主: xjw01
收起左侧

stm32怎么学

  [复制链接]
发表于 2012-12-1 10:12 | 显示全部楼层
许老师 stm32肯定要比stc的51快,而且ram大,可以随意折腾,想折腾我建议用stm32f103rct6.有256kflash 48k ram     ram都赶上stc的 flash大小了。有时间您可以看看
f0主要是低功耗,低成本,但是不建议您直接就用低功耗做,高起点,然后后期移植很简单的,好多寄存器,参数值都是兼容 的。
64引脚的stm32f103rc是目前性价比比较好的 15元左右,但是付出得到的回报却是不一样的。
发表于 2012-12-1 10:29 | 显示全部楼层
发表于 2012-12-1 10:38 | 显示全部楼层
stm32是M3系列的,ARMv7架构,远比51复杂得多。

     而耐心地读手册是必走的第一步。至于软件开发是否决定用库是第二步。
 楼主| 发表于 2012-12-1 16:05 | 显示全部楼层
本帖最后由 xjw01 于 2012-12-1 16:32 编辑

我使和ST的ISP下载,提示下载成功。
试验在PA2上输出闪烁灯,不过没有反应,是高阻端口。
是在一个F103c8的最小电路板上实验的,不知是何问题。
#include "stm32f10x.h"
void RCC_Configuration(void)
{
        SystemInit();        
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1 | RCC_APB2Periph_GPIOA
                           |RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC
                           |RCC_APB2Periph_GPIOD | RCC_APB2Periph_GPIOE
                                                   |RCC_APB2Periph_ADC1  | RCC_APB2Periph_AFIO
                           |RCC_APB2Periph_SPI1, ENABLE );
}

void Delay(vu32 nCount)
{
  for(; nCount != 0; nCount--);
}

int main(void)
{  
        //Init_All_Periph();
        GPIO_InitTypeDef GPIO_InitStructure;
        RCC_Configuration();        
          GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;                 //第二脚
          GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推勉输出
          GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//速度
          GPIO_Init(GPIOA, &GPIO_InitStructure);                         //初始经PA
        while(1)
          {
            GPIO_SetBits(GPIOA, GPIO_Pin_2); //开
            Delay(65535);
            GPIO_ResetBits(GPIOA, GPIO_Pin_2); //关
            Delay(65535);
          }
}
 楼主| 发表于 2012-12-1 16:07 | 显示全部楼层
本帖最后由 xjw01 于 2012-12-1 16:12 编辑

不知道那里弄错了。
发表于 2012-12-1 17:55 | 显示全部楼层
回复 48# xjw01
    STM的手册确实比较乱,特别是库的说明和示例文档不容易理解。只好参照例程看。它的IO速度好像比STC高,SCT是四个时钟周期,STM是一个时钟周期
 楼主| 发表于 2012-12-1 20:37 | 显示全部楼层
回复 53# 倪大德


    谢谢。看来我得认真研究一下手册。
发表于 2012-12-1 21:23 | 显示全部楼层
回复 57# xjw01


    建议您更换为8mhz晶振,默认rcc设置是外部8mhz晶振 9倍频的。假如24mhz很可能不行啊。
发表于 2012-12-1 21:55 | 显示全部楼层
stm32是M3系列的,ARMv7架构,远比51复杂得多。

     而耐心地读手册是必走的第一步。至于软件开发是否决 ...
倪大德 发表于 2012-12-1 10:38 https://www.yleee.com.cn/images/common/back.gif



    STM32 第一步肯定不是耐心读手册了。。。这么长的手册。。。
第一步就是找例程上,最好是用库的例程,然后如果有必要,再慢慢改直接操作寄存器

简单来说就是用到啥学啥。
发表于 2012-12-1 21:56 | 显示全部楼层
时钟初始化错误,修改外部晶振为8mhz     
void RCC_Configuration(void)
{
        SystemInit();      
是表示使用系统默认参数设置时钟 外部8mhz晶体振荡器 内部9倍频。
需要外部8mhz晶振,而且stm32f103系列只支持4mhz~16mhz外部晶振。内部pll倍频。

本版积分规则

QQ|一淘宝店|手机版|商店|电子DIY套件|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2024-4-24 06:05 , Processed in 0.063747 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表