📄 ch372v_init_avr.c
字号:
/*********************************************************/
////->>> main.C: CH372V的初始化演示主程序
////->>> CH372V_Init_AVR.C: CH372V的初始化程序
////->>> CH372V_Init_AVR.h
/*********************************************************/
#include <iom128v.h>
#include "CH372V_Init_AVR.h"
#include "delay.h"
unsigned char WatchPoint,temp;
//发送单字节命令
void CH372V_SendCMD1(unsigned char Command) {
CH372V_DIR = 0xFF;
CH372V_OUT = Command; //发送数据
CH372V_WR_LO; //WR有效
CH372V_RD_HI; //RD无效
CH372V_A0_HI; //A0=1命令
CH372V_CS_LO; //CS有效
#asm("NOP");//asm("NOP");asm("NOP");
CH372V_WR_HI; //WR无效
CH372V_CS_HI; //CS无效
}
void CH372V_SendDAT1(unsigned char DAT) {
CH372V_DIR = 0xFF;
CH372V_OUT = DAT; //发送数据
CH372V_RD_HI; //RD无效
CH372V_A0_LO; //A0=0数据
CH372V_WR_LO; //WR有效
CH372V_CS_LO; //CS有效
#asm("NOP");//asm("NOP");asm("NOP");
CH372V_WR_HI; //WR无效
CH372V_CS_HI; //CS无效
}
unsigned char CH372V_ReadDAT1(void)
{
unsigned char DAT=0;
CH372V_DIR = 0x00;
CH372V_A0_LO; //A0=0数据
CH372V_WR_HI; //WR无效
CH372V_CS_LO; //CS有效
CH372V_RD_LO; //RD有效
#asm("NOP");//asm("NOP");asm("NOP");
DAT = CH372V_IN; //读取数据
CH372V_RD_HI; //RD无效
CH372V_CS_HI; //CS无效
CH372V_DIR = 0xFF;
return DAT;
}
//设置VID和PID
void CH372V_SetVIDPID(void)
{
CH372V_SendCMD1(CMD_SET_USB_ID);
temp=(unsigned char)(CH372V_VID&0xff);
CH372V_SendDAT1(temp);
temp=(unsigned char)((CH372V_VID>>8)&0xff);
CH372V_SendDAT1(temp);
temp=(unsigned char)(CH372V_PID&0xff);
CH372V_SendDAT1(temp);
temp=(unsigned char)((CH372V_PID>>8)&0xff);
CH372V_SendDAT1(temp);
}
void CH372V_Init(void) {
//首先初始化端口
CH372V_DIR |= 0xFF;
CH372V_WR_HI; //WR无效
CH372V_WR_DIR |= CH372V_WR;
CH372V_RD_HI; //RD无效
CH372V_RD_DIR |= CH372V_RD;
CH372V_CS_HI; //CS无效
CH372V_CS_DIR |= CH372V_CS;
CH372V_A0_HI; //A0=1命令
CH372V_A0_DIR |= CH372V_A0;
//第一部分硬件复位
CH372V_SendCMD1(CMD_RESET_ALL);
Delay1ms(40); //延时40ms
//第二部分设置VID和PID
CH372V_SetVIDPID();
//第三部分设置USB工作模式
CH372V_SendCMD1(CMD_SET_USB_MODE);
CH372V_SendDAT1(0x02); //内部固件模式
WatchPoint =CH372V_ReadDAT1();
//asm("NOP"); //在这里加入断点观察WatchPoint
CH372V_INT_DIR();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -