⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cp210xbaudratealiasconfigdlg.cpp

📁 cp210x非标波特率设置工具 CP210x Baud Rate Configuration Utility v1.0 Release Notes Copyright (C) 2004 Silicon
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// CP210xBaudRateAliasConfigDlg.cpp : implementation file
//

#include "stdafx.h"
#include "CP210xBaudRateAliasConfig.h"
#include "CP210xBaudRateAliasConfigDlg.h"
#include "EditConfig.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CCP210xBaudRateAliasConfigDlg dialog

CCP210xBaudRateAliasConfigDlg::CCP210xBaudRateAliasConfigDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CCP210xBaudRateAliasConfigDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CCP210xBaudRateAliasConfigDlg)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
	// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

void CCP210xBaudRateAliasConfigDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CCP210xBaudRateAliasConfigDlg)
	DDX_Control(pDX, IDC_LIST_TITLE, m_Title);
	DDX_Control(pDX, IDC_COMBO_DEVICES, m_Devices);
	DDX_Control(pDX, IDC_LIST_BAUDRATEALIAS, m_BaudRateAliasList);
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CCP210xBaudRateAliasConfigDlg, CDialog)
	//{{AFX_MSG_MAP(CCP210xBaudRateAliasConfigDlg)
	ON_WM_PAINT()
	ON_WM_QUERYDRAGICON()
	ON_BN_CLICKED(IDC_BUTTON_GET_CONFIG, OnButtonGetConfig)
	ON_BN_CLICKED(IDC_BUTTON_SET_CONFIG, OnButtonSetConfig)
	ON_BN_CLICKED(IDC_BUTTON_RESTORE, OnButtonRestoreConfig)
	ON_NOTIFY(NM_DBLCLK, IDC_LIST_BAUDRATEALIAS, OnDblclkListBaudratealias)
	ON_BN_CLICKED(IDC_BUTTON_REFRESH, ResetDeviceList)
	ON_BN_CLICKED(IDC_BUTTON_EXPORT, OnButtonExport)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CCP210xBaudRateAliasConfigDlg message handlers

BOOL CCP210xBaudRateAliasConfigDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	// Set the icon for this dialog.  The framework does this automatically
	//  when the application's main window is not a dialog
	SetIcon(m_hIcon, TRUE);			// Set big icon
	SetIcon(m_hIcon, FALSE);		// Set small icon
	
	// TODO: Add extra initialization here


	//All the default data for the part is initialized here
	
	m_DefaultBaudConfigData[0].BaudRate = 15000000;
	m_DefaultBaudConfigData[0].BaudGen = 0xFFF0;
	m_DefaultBaudConfigData[0].Prescaler = 1;
	m_DefaultBaudConfigData[0].Timer0Reload = 0xFFFA;

	m_DefaultBaudConfigData[1].BaudRate = 15000000;
	m_DefaultBaudConfigData[1].BaudGen = 0xFFF0;
	m_DefaultBaudConfigData[1].Prescaler = 1;
	m_DefaultBaudConfigData[1].Timer0Reload = 0xFFFA;

	m_DefaultBaudConfigData[2].BaudRate = 12000000;
	m_DefaultBaudConfigData[2].BaudGen = 0xFFEC;
	m_DefaultBaudConfigData[2].Prescaler = 1;
	m_DefaultBaudConfigData[2].Timer0Reload = 0xFFF8;

	m_DefaultBaudConfigData[3].BaudRate = 921600;
	m_DefaultBaudConfigData[3].BaudGen = 0xFFE6;
	m_DefaultBaudConfigData[3].Prescaler = 1;
	m_DefaultBaudConfigData[3].Timer0Reload = 0xFFF6;

	m_DefaultBaudConfigData[4].BaudRate = 576000;
	m_DefaultBaudConfigData[4].BaudGen = 0xFFD6;
	m_DefaultBaudConfigData[4].Prescaler = 1;
	m_DefaultBaudConfigData[4].Timer0Reload = 0xFFF0;

	m_DefaultBaudConfigData[5].BaudRate = 500000;
	m_DefaultBaudConfigData[5].BaudGen = 0xFFD0;
	m_DefaultBaudConfigData[5].Prescaler = 1;
	m_DefaultBaudConfigData[5].Timer0Reload = 0xFFEE;

	m_DefaultBaudConfigData[6].BaudRate = 460800;
	m_DefaultBaudConfigData[6].BaudGen = 0xFFCC;
	m_DefaultBaudConfigData[6].Prescaler = 1;
	m_DefaultBaudConfigData[6].Timer0Reload = 0xFFEC;

	m_DefaultBaudConfigData[7].BaudRate = 256000;
	m_DefaultBaudConfigData[7].BaudGen = 0xFFA2;
	m_DefaultBaudConfigData[7].Prescaler = 1;
	m_DefaultBaudConfigData[7].Timer0Reload = 0xFFDC;

	m_DefaultBaudConfigData[8].BaudRate = 250000;
	m_DefaultBaudConfigData[8].BaudGen = 0xFFA0;
	m_DefaultBaudConfigData[8].Prescaler = 1;
	m_DefaultBaudConfigData[8].Timer0Reload = 0xFFDC;

	m_DefaultBaudConfigData[9].BaudRate = 230400;
	m_DefaultBaudConfigData[9].BaudGen = 0xFF98;
	m_DefaultBaudConfigData[9].Prescaler = 1;
	m_DefaultBaudConfigData[9].Timer0Reload = 0xFFD9;

	m_DefaultBaudConfigData[10].BaudRate = 153600;
	m_DefaultBaudConfigData[10].BaudGen = 0xFF64;
	m_DefaultBaudConfigData[10].Prescaler = 1;
	m_DefaultBaudConfigData[10].Timer0Reload = 0xFFC5;

	m_DefaultBaudConfigData[11].BaudRate = 128000;
	m_DefaultBaudConfigData[11].BaudGen = 0xFF44; //Originally FF45 in firmware, but changed to FF44 Sep 7 2004
	m_DefaultBaudConfigData[11].Prescaler = 1;
	m_DefaultBaudConfigData[11].Timer0Reload = 0xFFB9;

	m_DefaultBaudConfigData[12].BaudRate = 115200;
	m_DefaultBaudConfigData[12].BaudGen = 0xFF30;
	m_DefaultBaudConfigData[12].Prescaler = 1;
	m_DefaultBaudConfigData[12].Timer0Reload = 0xFFB2;

	m_DefaultBaudConfigData[13].BaudRate = 76800;
	m_DefaultBaudConfigData[13].BaudGen = 0xFEC8;
	m_DefaultBaudConfigData[13].Prescaler = 1;
	m_DefaultBaudConfigData[13].Timer0Reload = 0xFF8B;

	m_DefaultBaudConfigData[14].BaudRate = 64000;
	m_DefaultBaudConfigData[14].BaudGen = 0xFE89;
	m_DefaultBaudConfigData[14].Prescaler = 1;
	m_DefaultBaudConfigData[14].Timer0Reload = 0xFF73;

	m_DefaultBaudConfigData[15].BaudRate = 57600;
	m_DefaultBaudConfigData[15].BaudGen = 0xFE5F;
	m_DefaultBaudConfigData[15].Prescaler = 1;
	m_DefaultBaudConfigData[15].Timer0Reload = 0xFF63;

	m_DefaultBaudConfigData[16].BaudRate = 56000;
	m_DefaultBaudConfigData[16].BaudGen = 0xFE53;
	m_DefaultBaudConfigData[16].Prescaler = 1;
	m_DefaultBaudConfigData[16].Timer0Reload = 0xFF5F;

	m_DefaultBaudConfigData[17].BaudRate = 51200;
	m_DefaultBaudConfigData[17].BaudGen = 0xFE2B;
	m_DefaultBaudConfigData[17].Prescaler = 1;
	m_DefaultBaudConfigData[17].Timer0Reload = 0xFF50;

	m_DefaultBaudConfigData[18].BaudRate = 38400;
	m_DefaultBaudConfigData[18].BaudGen = 0xFD8F;
	m_DefaultBaudConfigData[18].Prescaler = 1;
	m_DefaultBaudConfigData[18].Timer0Reload = 0xFF15;

	m_DefaultBaudConfigData[19].BaudRate = 28800;
	m_DefaultBaudConfigData[19].BaudGen = 0xFCBF;
	m_DefaultBaudConfigData[19].Prescaler = 1;
	m_DefaultBaudConfigData[19].Timer0Reload = 0xFEC7;

	m_DefaultBaudConfigData[20].BaudRate = 19200;
	m_DefaultBaudConfigData[20].BaudGen = 0xFB1E;
	m_DefaultBaudConfigData[20].Prescaler = 1;
	m_DefaultBaudConfigData[20].Timer0Reload = 0xFE2B;

	m_DefaultBaudConfigData[21].BaudRate = 16000;
	m_DefaultBaudConfigData[21].BaudGen = 0xFA24;
	m_DefaultBaudConfigData[21].Prescaler = 1;
	m_DefaultBaudConfigData[21].Timer0Reload = 0xFDCD;

	m_DefaultBaudConfigData[22].BaudRate = 14400;
	m_DefaultBaudConfigData[22].BaudGen = 0xF97D;
	m_DefaultBaudConfigData[22].Prescaler = 1;
	m_DefaultBaudConfigData[22].Timer0Reload = 0xFD8E;

	m_DefaultBaudConfigData[23].BaudRate = 9600;
	m_DefaultBaudConfigData[23].BaudGen = 0xF63C;
	m_DefaultBaudConfigData[23].Prescaler = 1;
	m_DefaultBaudConfigData[23].Timer0Reload = 0xFC56;

	m_DefaultBaudConfigData[24].BaudRate = 7200;
	m_DefaultBaudConfigData[24].BaudGen = 0xF2FB;
	m_DefaultBaudConfigData[24].Prescaler = 1;
	m_DefaultBaudConfigData[24].Timer0Reload = 0xFB1E;

	m_DefaultBaudConfigData[25].BaudRate = 4800;
	m_DefaultBaudConfigData[25].BaudGen = 0xEC78;
	m_DefaultBaudConfigData[25].Prescaler = 1;
	m_DefaultBaudConfigData[25].Timer0Reload = 0xF8AD;

	m_DefaultBaudConfigData[26].BaudRate = 4000;
	m_DefaultBaudConfigData[26].BaudGen = 0xE890;
	m_DefaultBaudConfigData[26].Prescaler = 1;
	m_DefaultBaudConfigData[26].Timer0Reload = 0xF736;

	m_DefaultBaudConfigData[27].BaudRate = 2400;
	m_DefaultBaudConfigData[27].BaudGen = 0xD8F0;
	m_DefaultBaudConfigData[27].Prescaler = 1;
	m_DefaultBaudConfigData[27].Timer0Reload = 0xF15A;

	m_DefaultBaudConfigData[28].BaudRate = 1800;
	m_DefaultBaudConfigData[28].BaudGen = 0xCBEB;
	m_DefaultBaudConfigData[28].Prescaler = 1;
	m_DefaultBaudConfigData[28].Timer0Reload = 0xEC78;

	m_DefaultBaudConfigData[29].BaudRate = 1200;
	m_DefaultBaudConfigData[29].BaudGen = 0xB1E0;
	m_DefaultBaudConfigData[29].Prescaler = 1;
	m_DefaultBaudConfigData[29].Timer0Reload = 0xE2B4;

	m_DefaultBaudConfigData[30].BaudRate = 600;
	m_DefaultBaudConfigData[30].BaudGen = 0x63C0;
	m_DefaultBaudConfigData[30].Prescaler = 1;
	m_DefaultBaudConfigData[30].Timer0Reload = 0xC568;

	m_DefaultBaudConfigData[31].BaudRate = 300;
	m_DefaultBaudConfigData[31].BaudGen = 0xB1E0;
	m_DefaultBaudConfigData[31].Prescaler = 4;
	m_DefaultBaudConfigData[31].Timer0Reload = 0x8AD0;

	// Setup for the header column labels
	m_Title.InsertColumn(0, "", LVCFMT_CENTER, 20);
	m_Title.InsertColumn(1, "Application Requested Baud Rate Range", LVCFMT_CENTER, 210);
	m_Title.InsertColumn(2, "UART Baud Rate", LVCFMT_CENTER, 210);

	// Setup for the main column labels
	m_BaudRateAliasList.InsertColumn(0, "#", LVCFMT_CENTER, 20);
	m_BaudRateAliasList.InsertColumn(1, "High", LVCFMT_CENTER, 105);
	m_BaudRateAliasList.InsertColumn(2, "Low", LVCFMT_CENTER, 105);
	m_BaudRateAliasList.InsertColumn(3, "Desired", LVCFMT_CENTER, 105);
	m_BaudRateAliasList.InsertColumn(4, "Actual", LVCFMT_CENTER, 105);
		
	ListView_SetExtendedListViewStyleEx(m_BaudRateAliasList.m_hWnd, LVS_EX_FULLROWSELECT, LVS_EX_FULLROWSELECT);

	// Reset the device list to obtain all connected CP210x devices
	ResetDeviceList();
	
	// Obtain the configuration of the selected item
	OnButtonGetConfig();
	
	return TRUE;  // return TRUE  unless you set the focus to a control
}

// If you add a minimize button to your dialog, you will need the code below
//  to draw the icon.  For MFC applications using the document/view model,
//  this is automatically done for you by the framework.

void CCP210xBaudRateAliasConfigDlg::OnPaint() 
{
	if (IsIconic())
	{
		CPaintDC dc(this); // device context for painting

		SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -