-
STM32F1的SPWM逆变器源码
#include "SPWM.h"
#include "led.h"
#include "usart.h"
u16 TimerPeriod = 7200;
u16 DutyFactor = 50;
void TIM_Int_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
NVIC_InitTypeDef NVIC_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB, ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4 | RCC_APB1Periph_TIM3,ENABLE); //时钟使能
/* GPIOA配置:通道PA.6和PA.7作为输出引脚*/
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
&nbs
- 2022-07-26 17:50:34下载
- 积分:1
-
C# 禁止鼠标左键单击的实现源码
C# 禁止鼠标左键单击,附上例子源码,禁止后将不响应鼠标左键消息,当然也可恢复鼠标左键,直接关闭本程序即可恢复,实现方法也很简单,看如下代码:
private void button1_Click(object sender, EventArgs e)
{//禁止鼠标左键单击
Application.AddMessageFilter(this);
MessageBox.Show("鼠标左键已经被禁止,请用Tab键执行操作!", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
private void button2_Click(object sender, EventArgs e)
{//允许鼠标左键单击
Application.RemoveMessageFilter(this);
MessageBox.Show("鼠标左键已经被解禁,可以执行操作!", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
public bool PreFilterMessage(ref System.Windows.Forms.Message MySystemMessage)
{//不响应鼠标左键消息
if (MySystemMessage.Msg >= 513 && MySystemMessage.Msg
- 2022-03-09 09:45:43下载
- 积分:1
-
改善C#的157个建议编写高质量代码_源代码合集
改善C#的157个建议编写高质量代码_源代码合集,这些实例均采用4.0框架,请运行使用Release模式;部分TIP由于简单未给出源码;这157个建议的源码涉及到语言篇、集合和LINQ、泛型、委托和事件、资源管理和序列化、异常与自定义异常、异步、多线程、任务和并行、架构篇成员设计、类型设计、安全性设计、编码规范及习惯、代码整洁、规范开发行为等,每类细分一共形成了157条建议,相信这些建议对于向高深进阶的C#开发者来说,是难得的建议。
- 2022-07-10 03:10:19下载
- 积分:1
-
基于C#的右下角窗体弹出实例+源代码基于C#的右下角窗体弹出实例+源代码基于C#的右下角窗体弹出实例+源代码
基于C#的右下角窗体弹出实例+源代码基于C#的右下角窗体弹出实例+源代码基于C#的右下角窗体弹出实例+源代码基于C#的右下角窗体弹出实例+源代码
- 2022-02-12 22:25:41下载
- 积分:1
-
C# 最经典 简单的progressBar进度条用法示例
这是一个大家都熟悉的实用技巧,用C#制作进度条功能,本代码演示了最简单,且实现方法简单的progressBar进度条用法示例,
单击按钮后,开始演示进度条效果,这部分代码写在按钮事件中:
progressBar1.Value = 0;//设置进度条的初始值
progressBar1.Minimum = 0;//设置progressBar1控件的Minimum值为0
progressBar1.Maximum = 500;//设置progressBar1的Maximum值为500
progressBar1.Step = 1;//设置progressBar1的增值为1
for (int i = 0; i < 500; i++)//调用for语句循环递增
{
progressBar1.PerformStep();//使用PerformStep方法按Step值递增
textBox1.Text = "进度值:" + progressBar1.Value.ToString();
}
- 2022-08-18 01:25:55下载
- 积分:1
-
C# 简单嵌套查询的例子
分享一个C# 简单嵌套查询的例子,查询总分在580分以上的学生信息。具体代码如下:
/// 查询数据库信息
/// 方法返回DataTable对象
private DataTable GetGrade()
{
string P_Str_ConnectionStr = string.Format(//创建数据库连接字符串
@"server=WIN-GI7E47AND9RLS;database=db_TomeTwo;uid=sa;pwd=");
string P_Str_SqlStr = string.Format(//创建SQL查询字符串
@"SELECT 学生姓名,学生编号, 性别,出生年月,年龄,所在学院,所学专业 FROMtb_Student WHERE 学生编号 IN (SELECT 学生编号 FROM tb_Grade WHERE 总分>=580)");
SqlDataAdapter P_SqlDataAdapter = new SqlDataAdapter(//创建数据适配器
P_Str_SqlStr, P_Str_ConnectionStr);
DataTable P_dt = new DataTable();//创建数据表
P_SqlDataAdapter.Fill(P_dt);//填充数据表
return P_dt;//返回数据表
}
- 2022-12-23 02:20:03下载
- 积分:1
-
C# 在程序中使用指针、十字光标、浮动窗口等不安全代码
C# 在程序中使用指针、十字光标、浮动窗口等不安全代码的实例,单击以下按钮会演示出对应功能:
在程序中显示一个浮动帮助窗口
显示等待光标
显示十字光标
对于功能实现,逐一分享源代码如下:在程序中使用指针等不安全代码:
var MyFileName = "C:atlog.txt";
var MyReader = new MyReaderClass(MyFileName);
const int MyBuffSize = 128;
byte[] MyBuffer = new byte[MyBuffSize];
ASCIIEncoding MyEncoder = new ASCIIEncoding();
var MyInfo = MyFileName + "的内容如下:";
while (MyReader.Read(MyBuffer, 0, MyBuffSize) != 0)
MyInfo += "
" + MyEncoder.GetString(MyBuffer);
MessageBox.Show(MyInfo, "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
private void button2_Click(object sender, EventArgs e)
{//在程序中显示一个浮动帮助窗口
Help.ShowPopup(this, "提高程序开发效率、拓展软件应用领域", new Point(300, 350));
}
private void button3_Click(object sender, EventArgs e)
{//显示等待光标
this.Cursor = Cursors.WaitCursor;
}
private void button4_Click(object sender, EventArgs e)
{//显示十字光标
this.Cursor = Cursors.Cross;
}
- 2023-05-20 08:40:02下载
- 积分:1
-
C#使用SqlDataAdapter对象的Fill方法填充DataSet
C#使用SqlDataAdapter对象的Fill方法填充DataSet,具体是调用DataSet的Copy方法复制DataSet中的内容,完成填充的功能:
private void Form1_Load(object sender, EventArgs e)
{
//实例化SqlConnection变量conn,连接数据库
conn = new SqlConnection("server=.;database=db_14;uid=sa;pwd=");
//创建一个SqlCommand对象
SqlCommand cmd = new SqlCommand("select * from tb_test", conn);
SqlDataAdapter sda = new SqlDataAdapter();//创建一个SqlDataAdapter对象
//设置SqlDataAdapter对象的SelectCommand属性,设置执行的SQL语句
sda.SelectCommand = cmd;
ds = new DataSet(); //实例化DataSet
sda.Fill(ds, "test");//使用SqlDataAdapter对象的Fill方法填充DataSet
dataGridView1.DataSource = ds.Tables[0];//设置dataGridView1的数据源
}
private void button1_Click(object sender, EventArgs e)
{
DataSet ds1 = ds.Copy();//调用DataSet的Copy方法复制ds中的内容
dataGridView2.DataSource = ds1.Tables[0];//将ds1作为dataGridView2的数据源
}
- 2022-11-04 09:50:03下载
- 积分:1
-
C# 是行提交方式插入、删除、更新数据库记录
C# 是行提交方式插入、删除、更新数据库记录,本实例小程序主要演示了以行提交方式插入数据库记录、以行提交方式修改数据库记录、以行提交方式删除数据库记录、使用带有列值的Update()方法修改记录、使用带有列值的Delete()方法删除记录、使用带有列值的Insert()方法插入记录,对应的各个功能核心代码如下:
private void button2_Click(object sender, EventArgs e)
{//以行提交方式修改数据库记录(首先以添加新数据源方式新增NorthwindDataSet)
NorthwindDataSet.ShippersRow MyRow;
MyRow = this.northwindDataSet.Shippers.FindByShipperID(1);
MyRow.Phone = "13996060872";
this.shippersTableAdapter.Update(this.northwindDataSet.Shippers);
}
private void button4_Click(object sender, EventArgs e)
{//使用带有列值的Update()方法修改记录
NorthwindDataSetTableAdapters.ShippersTableAdapter MyAdapter =
new MyForm.NorthwindDataSetTableAdapters.ShippersTableAdapter();
MyAdapter.Update("Speedy Express", "13036371686", 1, "Speedy Express", "13996060872");
this.shippersTableAdapter.Fill(this.northwindDataSet.Shippers);
}
private void button3_Click(object sender, EventArgs e)
{//以行提交方式删除数据库记录(首先以添加新数据源方式新增NorthwindDataSet)
Northwi
- 2023-02-24 10:00:04下载
- 积分:1
-
NOR FLASH烧写器
含PROTEL99 PCB资料,原理图资料,芯片资料和C语言源码。
- 2022-03-16 01:40:16下载
- 积分:1