docs: add detailed Chinese comments for code files and correct GPIO mapping table in main.md
This commit is contained in:
@@ -1,15 +1,23 @@
|
||||
#ifndef __STC32G_H__
|
||||
#define __STC32G_H__
|
||||
|
||||
/**************************************************************************
|
||||
* @file stc32g.h
|
||||
* @brief STC32G 系列单片机官方特殊功能寄存器 (SFR) 定义头文件
|
||||
* @details 本文件包含了 STC32G12K128 单片机内核与所有外设寄存器地址的宏定义。
|
||||
* 为保持与官方标准库及编译器的最大兼容性,本文件不对寄存器宏进行逐行改动,
|
||||
* 仅在此处添加中文引导说明。
|
||||
**************************************************************************/
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
|
||||
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٰ<EFBFBD><D9B0><EFBFBD>"REG51.H"
|
||||
//包含本头文件后,不用另外再包含"REG51.H"
|
||||
|
||||
#include "stdio.h"
|
||||
#include "intrins.h"
|
||||
#include "string.h"
|
||||
|
||||
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>LCALL 0x0000<EFBFBD>쳣
|
||||
//修正编译器的LCALL 0x0000异常
|
||||
extern void _m(void);
|
||||
#define main(x) main(x){_m();sprintf(0, "0");strlen("0");}; void _m(x)
|
||||
|
||||
@@ -529,10 +537,10 @@ sfr RSTCFG = 0xff;
|
||||
sbit ENLVR = RSTCFG^6;
|
||||
sbit P54RST = RSTCFG^4;
|
||||
|
||||
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܼĴ<EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>չRAM<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Щ<EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD>Ƚ<EFBFBD>EAXFR<46><52><EFBFBD><EFBFBD>Ϊ1,<2C>ſ<EFBFBD><C5BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д
|
||||
//如下特殊功能寄存器位于扩展RAM区域
|
||||
//访问这些寄存器,需先将EAXFR设置为1,才可正常读写
|
||||
// EAXFR = 1;
|
||||
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//或者
|
||||
// P_SW2 |= 0x80;
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
@@ -949,14 +957,14 @@ typedef struct TAG_PWM_STRUCT
|
||||
#define HSSPI_CFG2 (*(unsigned char volatile far *)0x7efbf9)
|
||||
#define HSSPI_STA (*(unsigned char volatile far *)0x7efbfa)
|
||||
|
||||
//ʹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĺ<EFBFBD>,<2C><><EFBFBD>Ƚ<EFBFBD>EAXFR<46><52><EFBFBD><EFBFBD>Ϊ1
|
||||
//ʹ<EFBFBD>÷<EFBFBD><EFBFBD><EFBFBD>:
|
||||
//使用下面的宏,需先将EAXFR设置为1
|
||||
//使用方法:
|
||||
// char val;
|
||||
//
|
||||
// EAXFR = 1; //ʹ<EFBFBD>ܷ<EFBFBD><EFBFBD><EFBFBD>XFR
|
||||
// READ_HSPWMA(PWMA_CR1, val); //<EFBFBD>첽<EFBFBD><EFBFBD>PWMA<EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD>
|
||||
// EAXFR = 1; //使能访问XFR
|
||||
// READ_HSPWMA(PWMA_CR1, val); //异步读PWMA组寄存器
|
||||
// val |= 0x01;
|
||||
// WRITE_HSPWMA(PWMA_CR1, val); //<EFBFBD>첽дPWMA<EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD>
|
||||
// WRITE_HSPWMA(PWMA_CR1, val); //异步写PWMA组寄存器
|
||||
|
||||
#define READ_HSPWMA(reg, dat) \
|
||||
{ \
|
||||
@@ -1168,13 +1176,13 @@ typedef struct TAG_PWM_STRUCT
|
||||
//#define CANAR (*(unsigned char volatile far *)0x7efebb)
|
||||
//#define CANDR (*(unsigned char volatile far *)0x7efebc)
|
||||
|
||||
//ʹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĺ<EFBFBD>,<2C><><EFBFBD>Ƚ<EFBFBD>EAXFR<46><52><EFBFBD><EFBFBD>Ϊ1
|
||||
//ʹ<EFBFBD>÷<EFBFBD><EFBFBD><EFBFBD>:
|
||||
//使用下面的宏,需先将EAXFR设置为1
|
||||
//使用方法:
|
||||
// char dat;
|
||||
//
|
||||
// EAXFR = 1; //ʹ<EFBFBD>ܷ<EFBFBD><EFBFBD><EFBFBD>XFR
|
||||
// dat = READ_CAN(RX_BUF0); //<EFBFBD><EFBFBD>CAN<EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD>
|
||||
// WRITE_CAN(TX_BUF0, 0x55); //дCAN<EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD>
|
||||
// EAXFR = 1; //使能访问XFR
|
||||
// dat = READ_CAN(RX_BUF0); //读CAN寄存器
|
||||
// WRITE_CAN(TX_BUF0, 0x55); //写CAN寄存器
|
||||
|
||||
#define READ_CAN(reg) (CANAR = (reg), CANDR)
|
||||
#define WRITE_CAN(reg, dat) (CANAR = (reg), CANDR = (dat))
|
||||
@@ -1218,11 +1226,11 @@ typedef struct TAG_PWM_STRUCT
|
||||
//sfr LINAR = 0xfa;
|
||||
//sfr LINDR = 0xfb;
|
||||
|
||||
//ʹ<EFBFBD>÷<EFBFBD><EFBFBD><EFBFBD>:
|
||||
//使用方法:
|
||||
// char dat;
|
||||
//
|
||||
// dat = READ_LIN(LBUF); //<EFBFBD><EFBFBD>CAN<EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD>
|
||||
// WRITE_LIN(LBUF, 0x55); //дCAN<EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD>
|
||||
// dat = READ_LIN(LBUF); //读CAN寄存器
|
||||
// WRITE_LIN(LBUF, 0x55); //写CAN寄存器
|
||||
|
||||
#define READ_LIN(reg) (LINAR = (reg), LINDR)
|
||||
#define WRITE_LIN(reg, dat) (LINAR = (reg), LINDR = (dat))
|
||||
@@ -1249,11 +1257,11 @@ typedef struct TAG_PWM_STRUCT
|
||||
//sfr USBCON = 0xf4;
|
||||
//sfr USBADR = 0xfc;
|
||||
|
||||
//ʹ<EFBFBD>÷<EFBFBD><EFBFBD><EFBFBD>:
|
||||
//使用方法:
|
||||
// char dat;
|
||||
//
|
||||
// READ_USB(CSR0, dat); //<EFBFBD><EFBFBD>USB<EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD>
|
||||
// WRITE_USB(FADDR, 0x00); //дUSB<EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD>
|
||||
// READ_USB(CSR0, dat); //读USB寄存器
|
||||
// WRITE_USB(FADDR, 0x00); //写USB寄存器
|
||||
|
||||
#define READ_USB(reg, dat) \
|
||||
{ \
|
||||
@@ -1435,8 +1443,8 @@ typedef struct TAG_PWM_STRUCT
|
||||
#define DMA_I2SR_VECTOR 64 //0203H
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
#define EAXSFR() EAXFR = 1 /* MOVX A,@DPTR/MOVX @DPTR,Aָ<EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>չSFR(XSFR) */
|
||||
#define EAXRAM() EAXFR = 0 /* MOVX A,@DPTR/MOVX @DPTR,Aָ<EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>չRAM(XRAM) */
|
||||
#define EAXSFR() EAXFR = 1 /* MOVX A,@DPTR/MOVX @DPTR,A指令的操作对象为扩展SFR(XSFR) */
|
||||
#define EAXRAM() EAXFR = 0 /* MOVX A,@DPTR/MOVX @DPTR,A指令的操作对象为扩展RAM(XRAM) */
|
||||
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
|
||||
Reference in New Issue
Block a user