STC32G 打卡
第一集1、新收获
STC-ISP下载软件“资料下载”选项内可以下载STC公司各种芯片的用户手册以及库函数
2、点灯
与15不同的是,stc32g在操作IO口前要先对IO口所在寄存器进行地址的定义,然后才能以端口名对IO口进行整体赋值。不同的IO口寄存器对应不同的地址,寻找地址时需要查找数据手册。
在8位单片机C语言编程中,sfr用来定义特殊功能寄存器,一般占一个字节,8位;sbit用来定义特殊功能寄存器中可以位寻址的位,占1位。
注意:在对IO口进行赋值前要先设置IO口的工作模式:分为准双向口、推挽输出、高阻输入、开漏模式四种工作模式。
编写点灯代码时运用的是准双向口模式,该模式下IO口既可以输出高低电平,也可以读取高低电平。根据原理图,点亮LED灯需要用到P4口和P6口,将P4口和P6口都赋低电平即可点亮LED灯。
代码:
// 定义将要使用的寄存器
sfr P4 = 0xC0;
sfr P4M1 = 0xB3;
sfr P4M0 = 0xB4;
第二集
1.算数运算符
运算符有优先级,在一个表达式中优先级高的运算符先运算。
赋值运算符(=)可以将右边的值赋值给左边,优先级较低,低于算数运算符。
自增(++)和自减(–)运算符用来对操作数进行加1/减1操作。
他们都是单目运算符,每个运算符都有两种使用方法:前操作和后操作。
前操作的优先级非常高,往往在一个表达式中最先执行;后操作的优先级非常低,往往在一个表达式中最后执行。
注:不要在一个表达式中进行多次自增/自减运算,容易造成歧义。
双目算数运算符(+ - * / %)可以和赋值运算符(=)组合形成复合赋值运算符(+= -= /= *= %=),当我们希望将运算的结果保存到某个操作数就可以使用复合赋值运算符。
注:复合赋值运算符的优先级和赋值运算符一样低。
2.关系运算符
关系逻辑运算的结果是一个布尔值,布尔值只包含真(true)和假(false)。计算机中用1表示真,0表示假。所有的数字除了0表示假,其他都是真。
注:关系运算符的优先级低于算数运算符,如果对运算符的优先级不确定,可以使用小括号将希望先运算的部分括起来
3.逻辑运算符
! 是一个单目逻辑运算符,作用将一个布尔值取反
&&是逻辑与运算符,操作数应该是布尔值(逻辑表示式),运算规则如下
真 && 真 ----------- 真
真 && 假 ----------- 假
假 && 真 ----------- 假
假 && 假 ----------- 假
||是逻辑或运算符,操作数应该是布尔值(逻辑表示式),运算规则如下
真 || 真 ----------- 真
真 || 假 ----------- 真
假 || 真 ----------- 真
假 || 假 ----------- 假
逻辑与和逻辑或的优先级低于关系运算符,使用逻辑与和逻辑或可以组成复杂的逻辑表达式。逻辑与(&&)和逻辑或(||)具有短路特性,如果前一个表达式的结果已经可以决定整个表达式的结果,那么后面的表达式将不会被执行
4.类型转换
(1)隐式类型转换:C语言中如果一个表达式中包含多个不同的数据类型,计算机会先将他们转换成同一种数据类型再进行运算,这个转换是自动转换的,也叫作隐式类型转换
转换规则:
如果不同数据类型所占空间大小不同,将所占空间小的类型转换成所占空间大的类型;
如果不同数据类型所占空间大小相同,将整数类型转换成浮点类型,把有符号类型转换成无符号类型。
(2)强制类型转换:在程序中任意给数据指定类型,这种方式叫做强制类型转换
语法:(指定类型)数据;
强制类型转换不受任何规则的限制,可能造成数据丢失,强转的原理是计算机临时生成一个数据,新数据的数值来自于原数据,类型由程序指定。强转不会改变原数据
5.运算符优先级总结
attach://36787.jpg 第三集
使用屠龙刀的范例程序能够运行串口打印,但是把程序迁移到我的项目里就会多5个警告并且只能发送无法接收,我觉得是头文件的版本问题。
在这集视频中理解了printf和运算符的使用。
看完视频同时在我的板子上成功运行小灯闪烁,理解了while与do-while的运行流程,也理解了--a与a--使用上的区别。
本帖最后由 2841742604 于 2024-3-4 16:13 编辑
第四集
外设都是挂载在总线上的,外设的使用都需要时钟,所以在使用外设前都必须要先使能该外设对应的时钟。在编写程序时一定要对照着原理图编写,看好所需要的外设接的是哪个引脚,由于屠龙刀和视频中的实验箱原理图不同,所以不能一味照抄视频中的代码,否则很容易出错。
学会了按键的原理,明白了灯的熄灭可以通过IO口的电平取反实现,还学会了如何实现按键点灯。
请问那个COMM文件夹在哪里啊到底
第五集
了解了什么是蜂鸣器,且有源蜂鸣器只要通电就会响,但由于它的频率源是固定的,所以它响的时候的频率是固定的;无源蜂鸣器没有频率源,它的频率需要用户用软件生成然后给它,所以用户可以通过软件生成不同频率的信号给蜂鸣器,从而实现蜂鸣器不同频率和音调的鸣叫;
有源蜂鸣器比无源蜂鸣器多出了震荡源。 第六集
主题是数码管的静态使用,首先认识了什么是数码管。数码管分共阳数码管和共阴数码管;
了解了其中的控制原理,其本质是LED灯,若为共阳数码管,则引脚给低电平数码管亮,若为共阴数码管,则引脚给高电平数码管亮;
同时知道了如何利用数码管来实现0-9的显示 第七集
学习了数码管动态刷新的原理:由于数码管硬件上的连接,软件在控制数码管亮灭时一次只能控制一位,若要实现多位数码管同时显示,可以利用人眼视觉的滞留性,人眼所能看到的频率是有限的,若数码管切换显示的速度够快,就能够使人眼看到多位数码管同时显示的效果。
也了解了其中的控制原理:先控制一个数码管显示数字,隔5ms之后再切换至显示下一个数码管,同时将上一个数码管关闭,以此类推显示其他所有数码管。
还知道如何实现8位数码管同时点亮 第八集
学习了定时器的作用和意义,另外也学习了STC32G单片机定时器使用原理,还学习了定时器的简单应用和快速使用方法。
在使用定时器前首先要对定时器的模式进行配置,将对应的寄存器配置成定时器模式,配置时要看好配置的是否是自动重装模式,若是自动重装模式,则定时器内部计数器在溢出后定时器会自动将初值重装,若不是自动重装模式,则需要用户手动给计数器重新赋值。还要注意定时器的时钟频率,时钟频率即计数器数值加一所经过的时间,T=1/f。在配置完定时器模式后,别忘了打开总中断和定时器对应的中断开关。
冲哥的视频真的不错,就算是小白也能听懂。打call!!! 第九集
了解了计数器的用途。计数器可以用于脉冲的计数,捕获,测量频率等等
学习了计数器的配置。在配置计数器时,要严格翻看芯片的数据手册,按照手册上的说明进行配置,在配置时要配置计数器的时钟,同时要选择是否进行分频,若进行分频,则频率会减小,计数器自增一次的时间会变长。
还学会了如何应用计数器 第十集
这一集的时长较长,首先回顾了前十二节课所学,还学习了应用模块化的编程.(.c + .h);模块化编程的应用能够使工程更加清晰
还学习了工程文件编写。冲哥讲的细致入微,爱了爱了。
页:
[1]
2