阿杰爱学单片机 发表于 2024-8-24 22:27:12

soma 发表于 2024-8-24 22:21
stc32g数据手册16.3有介绍。

OK,继续研究!

嵌入式之路 发表于 2024-8-25 03:57:06

阿杰爱学单片机 发表于 2024-8-24 22:10
这个单片机最高不是48MHZ吗为啥选24

并不是外部晶振多少 单片机的主频就是多少

嵌入式之路 发表于 2024-8-25 03:57:59

像有的单片机外部晶振8M 但是倍频之后72

阿杰爱学单片机 发表于 2024-8-25 06:06:09

嵌入式之路 发表于 2024-8-25 03:57
像有的单片机外部晶振8M 但是倍频之后72

通透了,原来是这样啊,你说的是STM32吧{:5_286:}

阿杰爱学单片机 发表于 2024-8-25 06:28:14

soma 发表于 2024-8-24 22:21
stc32g数据手册16.3有介绍。

已经弄好了,你简直就是神,膜拜大佬{:victory:}

嵌入式之路 发表于 2024-8-25 20:43:58

阿杰爱学单片机 发表于 2024-8-25 06:06
通透了,原来是这样啊,你说的是STM32吧

哈哈 对的

阿杰爱学单片机 发表于 2024-8-26 07:29:55

本帖最后由 阿杰爱学单片机 于 2024-8-26 11:36 编辑

第四集下(2)

在论坛大佬的帮助下终于解决问题了,也是非常感谢他。
续上集虽然代码没有问题,但我遗漏了一个很重要的点,就是Keill没有设置好,还有就是没看手册(可能我太信任冲哥了,一直觉得是我代码敲漏了),个大家提个建议还是要看看手册。

这是keill的设置截图

这里设置错了,第一个框的data应该改成near,后面57和指令二选一
这是最后实验现象


函数已经被我包装了,可以拿去做成模块,直接用
两种下载代码差不多,就有一个地方需要变动2行代码

//      @阿杰爱学单片机 2024/08/025
//         不停电下载示例:USB-CDC方式,PC端发送指令,触发MCU复位并自动下载
//使用STC-ISP软件,点击发送用户自定义命令并开始下载,
//      或点击下载按钮,即可自动下载,无需按住P3.2和OFF按键(第一次下载需要按P3.2和OFF)
//      实验开发板:STC32G12K128屠龙刀三.1 主频@24MHz

#include <STC32G.H>
#include "usb.h"

#define MAIN_Fosc 24000000UL                //定义主频24MHz

void SYS_Init(void);                                                // STC32初始化设置
void MyUSB_Init(void);                                        //USB不断电下载配置初始化设置
void GPIO_Init(void);                                                //IO口初始化设置

//------USB调试及复位所需定义-----
char *USER_DEVICEDESC = NULL;
char *USER_PRODUCTDESC = NULL;
char *USER_STCISPCMD = "@STCISP#";         //设置自动复位到ISP区的用户接口命令

void main(void)      //主函数(程序从这里执行)
{
      SYS_Init();                                        // STC32初始化
      MyUSB_Init();                              //USB初始化
      GPIO_Init();                              //IO口初始化
      while(1)
      {
                P2=0x00;//P2整体赋值为0,P2整体输出低电平8LED全亮
      }
}

void SYS_Init()
{
      EAXFR = 1;                                                                         // 使能访问 XFR
      CKCON = 0x00;                                                         // 设置外部数据总线速度为最快
      WTST = 0x00;                                                                // 设置程序代码等待参数,等待时间为0个时钟,CPU执行程序速度最快
}

void GPIO_Init(void)
{
      P2M0=0x00;                              //P2设置为准双向口
      P2M1=0x00;
}

void MyUSB_Init(void)
{
      //------USB调试及复位所需代码-----
P3M0 &= ~0x03;
P3M1 |= 0x03;
      
IRC48MCR = 0x80;                                       //使能内部48M高速IRC
while (!(IRC48MCR & 0x01));//等待时钟稳定
      
      //CDC下载需要用下面这两行,若使用HID下载请屏蔽//
         USBCLK = 0x00;
         USBCON = 0x90;
      
      usb_init();                                                               //usb初始化
      //--------------------------------
      EA = 1;                                                      // 使能EA总中断
}

阿杰爱学单片机 发表于 2024-8-26 08:03:23

阿杰爱学单片机 发表于 2024-8-26 07:29
第四集下(2)

在论坛大佬的帮助下终于解决问题了,也是非常感谢他。


这帖子咋在最后面,能调前面去吗

llyymm 发表于 2024-8-26 08:20:02

路过顶一下

阿杰爱学单片机 发表于 2024-8-26 09:52:35

llyymm 发表于 2024-8-26 08:20
路过顶一下

栓Q
页: 1 [2] 3 4 5
查看完整版本: 杰哥的32G12K128学习记录【已送试验箱】