CH06函数

告别SD卡模块!用STM32的SPI接口驱动CH376读写U盘,附完整代码和调试技巧 本文详细介绍了如何通过STM32的SPI接口驱动CH376芯片实现低成本U盘存储方案。从硬件设计、驱动移植到FAT32文件操作实战,提供了完整的代码实现和调试技巧,帮助开发者高效替代传统SD卡模块,适用于数据记录、配置存储等多种嵌入式场景。 阅读详情
'''
【课程6.2】  自定义函数

如何创建函数?def语句

'''


# 定义函数

def f(x):
    if x < 5:
        print('输入值小于5')
    else:
        print('输入值大于等于5')  # 定义函数,其中x是参数(局部变量)
f(10)  # 运行函数


# 关于retuen

def f1(x):
    y = 2 ** x  # 没有return


def f2(x):
    y = 2 ** x
    return y  # 含有return


print(f1(2), f2(2))
# return语句退出函数,并返回一个表达式。不带参数值的return语句返回None


# 默认参数

def f(x,n = 2):
    return(x**n)
print(f(10))
print(f(10,3))
# n = 2,这里n的默认值为2,如果不输入则以默认值为主

# 默认参数

def f(x,n = 2):
    return(x**n)
print(f(10))
print(f(10,3))
# n = 2,这里n的默认值为2,如果不输入则以默认值为主


# 可变参数

def f(*x):
    print(x)
    return x
f(1)
f('a','b')
f(1,2,3,[44,33])
print(type(f('a','b')))
# 通过*来定义可变参数
# 默认会把可变参数传入一个元祖!

'''
【课程6.3】  局部变量及全局变量

定义在函数内部的变量拥有一个局部作用域,定义在函数外的拥有全局作用域。

局部变量只能在其被声明的函数内部访问,而全局变量可以在整个程序范围内访问。调用函数时,所有在函数内声明的变量名称都将被加入到作用域中

'''


# 演示案例

def f(m):
    m = '呵呵哒'  # 函数作用:把输入变量指向“呵呵哒”
    print("函数内为局部变量:%s" % m)

a = input('请输入一个数字:')
f(a)
print("函数外为全局变量:%s" % a)
# f(m)中,m是函数的参数,f(x)是吧x的值赋予了m,但x值自己本身不受影响,所以执行函数后,是在函数局部“变化”了x
# 什么是局部变量? → 当函数定义内声明变量的时候,它们与函数外具有相同名称的其他变量没有任何关系!
# 即变量名称对于函数来说是“局部”的。这称为变量的作用域。所有变量的作用域是它们被定义的块,从它们的名称被定义的那点开始。

# global语句 → 把局部变量变为全局变量

def f():
    global a
    a = '呵呵哒'
    print("函数内转为全局变量:%s" % a)


a = input('请输入一个数字:')
print("输入变量值:%s" % a)
f()

'''
【课程6.4】  匿名函数Lambda

lambda 语句创建匿名函数。

'''

# 示例

def fun(a,b,c):
    return a+b+c
print(fun(2,3,4))
# def创建自定义函数,求和

f = lambda a,b,c:a+b+c
print(f(2,3,4))
# lambda作为匿名函数,是不需要函数名的 → 需要一个函数,又不想动脑筋去想名字,这就是匿名函数
# lambda的主体是一个表达式,而不是一个代码块。
# lambda只有一行,仅仅能在lambda表达式中封装有限的逻辑进去。
STM32配置CH375B成HID Host模式读取自定义HID设备的数据 ——STM32配置CH375B接口函数 接着上一篇上传,这个是STM32配置CH375B时用到的接口函数 代码如下: #include "bsp_ch375.h" #include "bsp_init.h" #include "bsp_delay.h" void Bsp_CH375_Write_Cmd(uint8_t cmd ) /* 向CH375的命令端口写入命令*/ { Bsp_DelayUs(5); CH375_CS 阅读详情

相关推荐

16、GNU C++ 调用约定与代码示例解析

本文详细解析了 GNU C++ 的调用约定,并结合三个 NASM 汇编语言示例,深入探讨了参数传递、非易失通用寄存器的使用以及如何从汇编函数调用 C++ 库函数。示例包括整数乘积计算、整数求和、以及使用 `pow` 函数进行体表面积(BSA)计算。文章还对比了 Visual C++ 与 GNU C++ 的调用约定差异,并提供了实际编程中的应用流程与优化建议,帮助开发者更好地理解和应用调用约定,提高代码性能和可维护性。

opencv7vision的博客 55

ch06函数--Functions

ch05控制结构 6.0定义和调用函数-Defining and Calling Functions //在定义函数的时候,你可以选择的定义一个或者多个参数,你也可以选择的定义一个或者多个函数返回值 //每一个函数都有函数名字,它描述了函数要执行什么样的任务,为了使用函数,你一定要调...

chixuepei3416的博客 178

17、深入理解运行时调用约定及相关代码示例

本博文深入探讨了运行时调用约定的核心概念及其在Visual C++和GNU C++环境下的实现方式,包括函数序言和尾声的构建、参数传递规则、寄存器使用规范以及栈布局管理。通过示例代码Ch06_04和Ch06_05,展示了如何在MASM和NASM环境下实现符合调用约定的函数,并演示了如何调用C++库函数以及处理参数和非易失性寄存器的保存与恢复。内容还涵盖使用宏简化代码、栈红色区域的用途以及实际编程建议,帮助开发者编写高效、稳定的底层代码。

u0v1w2x3的博客 55

[C++ Primer CH06] 第6章 函数(笔记)

小结: 函数是命名了的计算单元,它对程序(哪怕是不大的程序)的结构化至关重要。每个函数都包含返回类型、名字、(可能为空的)形参列表以及函数体。函数体是一个块,当函数被调用的时候执行该块的内容。此时,传递给函数的实参类型必须与对应的形参类型相容。 在C++语言中,函数可以被重载:同一个名字可以用于定义多个函数,只要这些函数的形参数量或形参类型不同就行。根据调用时所使用的实参,编译器可以自动的选定

xy_cpp的博客 592

单片机实验四 矩阵键盘实验

本实验通过HC6800S开发板实现矩阵键盘按键检测与1602液晶显示功能。实验采用4×4矩阵键盘结构,通过行列扫描方式检测按键值,利用LCD1602显示按键结果。硬件连接包括开发板、矩阵键盘模块和LCD显示屏。软件实现包含按键消抖处理、行列扫描算法和LCD显示控制。实验结果表明,该系统能准确识别按键并显示对应键值,相比独立按键方案提高了IO口利用率。实验还探讨了按键消抖的必要性和矩阵键盘在多键同时按下时的局限性。该实验为嵌入式系统输入输出接口设计提供了实用范例。

m0_51738372的博客 1万+

Python实现支持向量机(SVM)算法源码解析与实战

问题描述对噪声敏感单个异常点可能显著移动超平面无法处理非线性可分存在交叉样本时无可行解缺乏灵活性强制所有样本满足约束因此,引入软间隔成为必要扩展。误差项定义为模型输出与真实标签之差:由于每次更新仅改变少量 $\alpha$,可维护一个误差缓存E_cache来避免重复计算。k_i = kernel_matrix_row(i, X) # 获取第i行核值逻辑分析返回所有 $K(x_j, x_i)$

weixin_33480380的博客 814

笔记 - Lua 程序设计(第 2 版) Ch04~06 语句、函数、深入函数

04 语句 赋值 -- Lua 允许多重赋值 a, b = 10, 2 * 8 -- 并且先对等号右边所有元素求值后再赋值 -- swap可以这样实现 a, b = b, a -- 如果右边个数多于左边,多出来的值会被丢弃 a, b = 10, 2 * 8, 133, 42 -- 如果右边个数少于左边,左边多余的变量会被赋为nil a, b = 1 一般很少会为几个没有关联的变量使用多重赋值。有时会用到: 交换两个变量 收集函数的多个返回值 局部变量与块 j = 10 -- 全局变量 local

Gorgeoustray 264

航测无人机las点云数据生成DEM

“ 做航测的同僚都知道,Pix4D或者CC(ContextCapture)都可以生成DSM,往往高程点提取以及土方计算都需要用到DEM,PhotoScan软件可以提出地面点并只应用地面点连接三角网,然而分类效果差,生成的DEM不管是平整度还是精度,都不理想。而传统等高线生DEM需要耗费较长时间,以下提供一种参考方法,供大家探讨。 ” 1 点云数据 航测类软件大多可以生成点云数据,如Pix4D,PhotoScan,CC等,此次点云数据为citymapper2相片基于CC生产的Las点云。 2 筛选地面点 筛.

qq_43173805的博客 1万+

数据分析入门_PART1python基础语法_CH06函数

''' 【课程6.1】 自定义函数 如何创建函数?牢记4点1def语句2函数名及参数3冒号4缩进 默认参数 def f(x,n = 2): 可变(数量)参数 def f(*x): ''' '\n【课程6.2】 自定义函数\n\n如何创建函数?def语句\n默认参数\ndef f(x,n = 2):\n\n可变参数\ndef f(*x):\n' # 定义函数 #注函数的形式参数def ...

weixin_40974922的博客 1007

IC面试常考题 Verilog三分频电路设计(占空比50%,三分之一,三分之二)

实现三分频电路最简单的是: 利用计数器实现。 时序图分析(本人比较懒,平常科研忙,所以直接手画时序图了,懒得用软件画了): 直接上图分析:利用计数器每隔三个周期信号翻转一次,同时在不同的计数下翻转得到的同步信号 clk_1和clk_2,再利用异或即可实现出一个不同占空比的三分频信号(同样的方法也可扩展到其他奇数分频设计中)。 例如占空比50%: module Div_three( input clk, input rst_n, output div_three ); reg

qq_41884662的博客 1万+

PowerDesigner16.5下载和安装教程

一、软件下载 1.下载地址(不用复制,直接点击下载链接即可):链接:https://pan.baidu.com/s/1MSnWHWt3SO2Uz5dt9AANAg提取码:z9kk 二、软件安装 1.下载安装包(包含安装文件、汉化包、注册文件) 2.下载后文件内容如下 3....

cicong2374的博客 10万+

c语言函数名单独出现代表,C语言程序设计教程ch06.pdf

第6章 函数第6章 函数(时间:2次课,4学时)/webnew/第6章 函数第6章 函数本章主要内容1. 了解模块化程序设计的概念及优越性2. 了解C函数的特点及其在模块化设计中的应用,3. 掌握函数的定义及调用方式,包括嵌套调用和递归调用4. 熟练掌握函数间数据传递的方法:虚实结合、函数返回值和全局变量传递5. 掌握main()函数的参数和返回值/webnew/6.1 C程序的模块结构6.1...

weixin_29281915的博客 139

R语言计算植物群落重要值:从基础概念到优势种判定

在植被生态学研究中,重要值是衡量物种在群落中地位的核心指标,它综合了相对多度、相对频度与相对显著度三个维度,能够客观反映物种的数量优势、分布广度与空间占据能力。理解重要值的生态学逻辑,是开展群落分类、优势种判定及多样性分析的基础。而R语言凭借其批量处理、可复现和与后续多元统计无缝衔接的优势,成为生态学研究者处理样方数据的高效工具。从野外记录的宽表到标准化长表,再到分组汇总计算相对指标,R语言能够显著提升数据处理效率与准确性。本文以实测群落数据为例,系统梳理重要值的两种算法口径、基于dplyr和tidyr的完

weixin_42634811的博客 267

c语言周林答案,C语言程序设计实训教程教学课件作者周林ch06函数课件.ppt

C语言程序设计实训教程教学课件作者周林ch06函数课件.ppt1)自动变量(auto变量) 局部变量,如果不专门声明存储类别,都是动态地分配存储空间的 调用函数时,系统会给局部变量分配存储空间,调用结束时就自动释放空间。因此这类局部变量称为自动变量 自动变量用关键字auto作存储类别的声明 2. 局部变量 第六章 函 数 6.6 变量的存储类型及作用域 2)静态局部变量(static局部变...

weixin_42507411的博客 147

Test软件:Keysight二次开发_(1).Keysight软件开发概述

VISA(Virtual Instrument Software Architecture)库是Keysight提供的一种标准化的仪器控制接口,支持多种编程语言和开发环境。仪器通信:通过GPIB、USB、以太网等接口与仪器进行通信。数据采集:从仪器中获取测量数据。命令发送:向仪器发送控制命令。错误处理:处理通信过程中可能出现的错误。测试自动化是指通过编写脚本或程序来自动执行测试任务,从而提高测试效率和减少人为错误。Keysight的测试设备和仪器支持多种编程语言和开发环境,使得测试自动化变得相对容易。

2401_87715305的博客 1359

飞牛fnNAS存储模式RAID 5数据恢复

中介绍了fnNAS存储空间的几个模式,细心的网友应该能感受到,我是非常推崇RAID 5的。但我认为,一般人出现1块硬盘损坏后,就能够赶紧采取处理措施了,再高的容灾等级也无法满足这个用户的需求了。》就完成了飞牛NAS存储空间的说明,包括了如何创建、怎么选择空间模式、RAID 5 硬盘故障后的更换、系统更换/重装后数据盘的恢复等等。在VMware中新建虚拟机,安装好fnNAS后,再向虚拟机添加“已有硬盘”(这就是所谓崩溃虚拟机的数据盘),此时新的fnNAS出现提示。在“选择要添加的硬盘”中,选择刚添加硬盘。

dgnankai的专栏 3010

OpenCV-Python-Tutorial/ch06-绘图函数/Drawing_UTF-8_strings.py

原网址:https://github.com/makelove/OpenCV-Python-Tutorial/blob/master/ch06-%E7%BB%98%E5%9B%BE%E5%87%BD%E6%95%B0/Drawing_UTF-8_strings.py # -*- coding: utf-8 -*- # @Time : 2017/7/23 下午9:1...

张伟的专栏 511

Python 爬虫实战:爬虫代码打包为可执行文件

本文详细介绍了使用PyInstaller工具将Python爬虫打包为可执行文件的全过程。以豆瓣电影Top250爬虫为例,首先对比了主流打包工具,推荐选择跨平台的PyInstaller。通过编写完整的爬虫代码(包含异常处理和数据保存功能),演示了从环境准备、代码测试到打包配置的具体步骤。重点讲解了单文件打包、自定义图标等高级功能,并针对常见的"找不到模块"、文件体积过大等问题提供了解决方案。文章还说明了跨平台打包的注意事项,帮助开发者实现爬虫程序的无环境依赖部署,大幅提升程序的易用性和部署

2503_91057718的博客 2216

Segmentation fault 0x00000035bb44812c in vfprintf () from /lib64/libc.so.6

调试随书代码ch06-searchemp.c,gcc编译后的程序执行时会报段错误,然后gdb调试core发现是在用printf打印ctime函数的返回值时程序崩溃,而且报错是"#0  0x00000035bb44812c in vfprintf () from /lib64/libc.so.6",后来对比了下ch06-sortemp.c文件,发现报错是没有引入ctime函数所在的头文件,然后#in

wangxinhe1018的专栏 3159

【Unity3D框架】GameFramework框架完全教程《全网最全》-专栏文章目录

最近准备学习框架,了解到GameFramework框架是国产Unity3D框架,准备学习一下,但是奈何全网关于这个框架的教程实在太少。为了让自己学习方便一些,也为了让后来者乘凉。将框架以自己的理解整理目录,并且补全教程。觉得教程有帮助别忘了一键三连哦。

优快云博客专家,Unity3D高级软件工程师,《Unity 3D从入门到实战》作者。 2万+

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Mostly Adequate Guide 函数式编程练习指南:exercises 目录的结构、运行与校验机制

本篇指南以开源仓库 mostly-adequate-guide(《JavaScript 函数式编程指南》)中 [exercises/README.md](https://link.gitcode.com/i/dd38644e47005d2c17148e7f3c9f7e6c) 为核心,系统讲解该仓库内置练习体系的设计思路:练习(exercise)、解答(solution)、校验(validation

gitblog_00699的博客 254

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

02.CH59x入门指南——点亮LED

本文主要介绍了如何使用CH59x(主要为CH592F)点亮LED。

liujiahao_的博客 3520

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

ch06 题目参考思路

使用组合计数的乘法原理进行分步计算,依次计算男生的排列方案数、老师的排列方案数和女生的排列方案数,再将三者相乘。用排除法,先求出不可能越狱的方案数,总数 - 不可能越狱的方案数 = 可能越狱方案数。种选择,后面的每个房间为了与前一个房间选择不同,有。用排除法,先求出老师任意排列且女生不相邻的方案,记作。再减去老师一定连续且女生不相邻的方案,记作。不可能越狱的方案数:第一个房间有。注意:本题没有取模,答案会很大,知识点:组合计数、计数模型。知识点:组合计数、计数模型。知识点:组合计数、计数模型。

qq_43359992的博客 1146

ch06 课堂参考代码

今天的课程可先直接使用循环求解阶乘,不使用以下预处理的方法。

qq_43359992的博客 928

ch06 题解

使用组合计数的乘法原理进行分步计算,依次计算男生的排列方案数、老师的排列方案数和女生的排列方案数,再将三者相乘。用排除法,先求出不可能越狱的方案数,总数 - 不可能越狱的方案数 = 可能越狱方案数。种选择,后面的每个房间为了与前一个房间选择不同,有。用排除法,先求出老师任意排列且女生不相邻的方案,记作。再减去老师一定连续且女生不相邻的方案,记作。不可能越狱的方案数:第一个房间有。知识点:组合计数、计数模型。知识点:组合计数、计数模型。知识点:组合计数、计数模型。知识点:组合计数、计数模型。

qq_43359992的博客 387

AI全栈实战 | 3.9-01 爬虫入门:requests 加 BeautifulSoup 三分钟跑通,但 90% 的人栽在这 4 个“礼貌“问题上

⚠️:本文内容仅用于。请遵守目标站点的服务条款与相关法律法规,不得对目标服务造成负担,不得采集、传播个人隐私数据。技术是中性的,边界在你手里。爬虫的入门技术(requests 发请求 + BeautifulSoup 解析)三分钟就能学会。真正区分"会用爬虫"和"会做爬虫的人"的,是这篇我们跑通"请求→解析→存储"的最小闭环,然后重点把"合规与礼貌"这根弦给你绷上。

源码获取 | 运行部署 | 定制二开修改,如果回复不及时请耐心等待,请见谅。 413
上一篇: 抖音短视频运营方法和技巧
下一篇: CH07模块与包
一凡888
博客等级 码龄7年 1755粉丝 217原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一凡888

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值