找回密码
 立即注册
查看: 1932|回复: 23

学习stc32的心得和体会

[复制链接]

1

主题

19

回帖

65

积分

注册会员

积分
65
发表于 2023-11-13 10:24:24 | 显示全部楼层 |阅读模式



学习了第一集我的心得和体会:

       我之前有学习51和stm32的经验对指令和结构有一定的了解但是有一些知识还有些欠缺我了解到

       单片机(Single-Chip Microcomputer)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。
       单片机基本就是一个小的功能减少的计算机;能写入用户程序;能读取在输入引脚上的电压信号;能在引脚上输出特定的电平信号,能在特定引脚上输出电压信号,能计算时间,能计数,能做数学运算,能做逻辑运算。能顺序动作,能通信等功能,最概括的来说就是他能做有规律可循的控制应用。
       单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域。
我还了解到对于stc官网有着很多可以利用的资源,多看官网多了解很多实事也不能自己闭关修炼,多看看别人的项目沟通交流

我本人对学习单片机有着浓厚的兴趣
我经常自己做一些小项目
还参加了全国大学生智能车竞赛


回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-01-24 13:47:35

1

主题

19

回帖

101

积分

注册会员

积分
101
发表于 2023-11-13 10:34:04 | 显示全部楼层
1 喜欢他/她就送朵鲜花吧,赠人玫瑰,手有余香!
回复

使用道具 举报 送花

1

主题

19

回帖

65

积分

注册会员

积分
65
发表于 2023-11-13 11:26:38 | 显示全部楼层
学习了第二集我的心得和体会:

由于在之前自己学习过单片机,所以第二节课学习起来也是比较轻松,同时也新学习到了新的以前没有学习过的知识,通过冲哥的讲解也是明白了许多东西看完了上述板子上许许多多的传感器,和使用案例。在正式开始学习写代码之前,我会认真想一想用这个板子做一个什么东西;不需要考虑现在自己的能力能不能做出来,而是兴趣是最好的老师,当有了兴趣,有了目标,就是迈向成功的第一步,我跟学习单片机的各位一起加油!

屏幕截图 2023-11-13 111406.png 屏幕截图 2023-11-13 111450.png




回复 支持 反对

使用道具 举报 送花

1

主题

19

回帖

65

积分

注册会员

积分
65
发表于 2023-11-13 12:59:03 | 显示全部楼层
学习了第三集我的心得和体会:
第三节课没有什么特别需的内容,主要教的就是开发环境的搭建和程序下载和如何使用手册,教了一些学习的小细节串口工具的使用。没有什么特别需要记的实质性的知识。
回复 支持 反对

使用道具 举报 送花

1

主题

19

回帖

65

积分

注册会员

积分
65
发表于 2023-11-13 14:36:36 | 显示全部楼层
第四集的笔记:
第一个实例
             分析led的原理和介绍stc32的引脚功能介绍
             分析电路图得出结论 P4.0 为低, P6口为低 时 led灯会亮
             简单步骤
                    启动项目
                    新建源文件加入项目
                    编译 链接 生成hex
                    
                     下载hex到单片机内部
                     运行

             #include "stc8.h"

             void delay(unsigned long delaycnt)
             {
                     while(delaycnt--);
              }

             void main(void)
             {
                   P4M1 = 0Xff;
                   P4M0 = 0Xff;
                   P6M1 = 0Xff;
                   P6M0 = 0Xff;

                   P40 = 0;

                   while(1)
                    {
                          P60 = 1;

                          delay(30000);
                          P60 = 1;

                          delay(30000);

                    }                                 
              }

              可以看得到运行结果 led灯在闪烁

              为了获得更准确的延时,可以在stc-isp 中生成对应的延时函数
回复 支持 反对

使用道具 举报 送花

1

主题

19

回帖

65

积分

注册会员

积分
65
发表于 2023-11-13 16:34:35 | 显示全部楼层

第五集的笔记:
这节课主要讲了模拟串口输出,这个功能挺好,有问题可以直接调试输出,更方便查看对应变量的值。
剩下的就是C语言的基础知识,包括ASSI码表和格式化字符串,运算符,以及取值范围
还有进制之间的转换以下是补充的对应各种表,方便查看。


*取值范围,double比float大的


也明白了,串口输出的hex数值与文本的对应关系


1. 实现模拟串口输出
if(DeviceState != DEVSTATE_CONFIGURED){
    continue;
}
if(bUsbOutReady){
    usb_OUT_done(); // 接收应答固定格式
}


常规用法:
printf("黑乌鸦!");
printf("室内温度:%.2f\r\n", 11.2);
知道了进制之间的转换关系
知道了ASSI码表的含义
还有c语言的取值范围
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2025-03-14 15:41:37
已绑定手机

18

主题

25

回帖

162

积分

注册会员

积分
162
发表于 2023-11-13 16:56:14 | 显示全部楼层
加油,一起学习
回复 支持 1 反对 0

使用道具 举报 送花

1

主题

19

回帖

65

积分

注册会员

积分
65
发表于 2023-11-13 21:21:20 | 显示全部楼层
第六课讲的内容:
   
    这节课主要讲了 delay() 函数的用法,借此引出如何自己编写函数
有了函数,就开始模块化编程,把同类型功能函数放在一起,单独新建一个 .c .h文件,哪个工程要用可以单独引入

while 和 do...while 的区别

函数定义返回值 函数名称( 形参 )

函数声明函数调用

模块化编程(就是封装函数)
#include "xxoo.h"
函数定义

总结:
1.跟着冲哥学点灯,从易到难;
2.delay函数的实现,调试;
3.模块化编程。
回复 支持 反对

使用道具 举报 送花

1

主题

19

回帖

65

积分

注册会员

积分
65
发表于 2023-11-13 21:27:25 | 显示全部楼层
第七集学习打卡
本次学习的中心围绕按键
1、按键的原理
(1)按键通常为两个引脚

按照如图按键结构,通过检测p3.2的电平来判断按键状态。
按键SW17松开,电路处于断开,VCC电压全部分到P3.2,检测高电平,断开
按键SW17按下,电路连通,VCC电压分流,检测低电平,导通
所以,获取按键状态,只需要获得对应引脚的电平,如P32为引脚p3.2对应的按键,0为低电平表示按下,1为高电平表示松开
#define KEY P32
(2)机械开关
根据机械开关抖动的特性,获取机械开关状态时,需要进行消抖
if (KEY==0){
Delay_ms(10);---->消抖核心,观察10ms后是否仍是按下状态
if(KEY==0)
{
执行功能
}
}
2、按键功能应用
(1)按键按下LED点亮,松开熄灭
if(KEY==0){
Delay_ms(10);
if(KEY==0){
P67=0;//灯组第七个点亮
}else{
P67=1;//灯组第七个熄灭
}
}
(2)按键按下LED熄灭,松开点亮
if(KEY==0){
Delay_ms(10);
if(KEY==0){
P67=1;//灯组第七个熄灭
}else{
P67=0;//灯组第七个点亮
}
}
(3)按下按键一次,LED状态改变一次
if(KEY==0){
Delay_ms(10);
if(KEY==0){
while(KEY==0);//防止状态频繁切换,按下一次只做一次操作
p67=!p67;//电平翻转,状态也翻转
}
(4)按键按下一次,LED向左走一次
int LED_Data=0xFE;//1111 1110
if(KEY==0){
delay_ms(10);
if(KEY==0){
LED_Data=((LED_Data<<1)+1);//使置零位向左移一位,并用1补位
if(LED_Data==0xFF)//1111 1111代表灯光已经移到最左,需要移到最右
LED_Data=0xFE;
P6=LED_Data//P6代表整个灯组的信号状态,0位点亮,1位熄灭
while(KEY==0);
}
3、针对上面的向左移动灯光的情况,也可以使用数组,将灯光的可能状态对应二进制按顺序存入数组,使用时根据下标调用
即int *LED[]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F};
。。。
num=0;
f(KEY==0){
delay_ms(10);
if(KEY==0){
num++;
if(num==7)//1111 1111代表灯光已经移到最左,需要移到最右
num=0;
P6=LED[num]//P6代表整个灯组的信号状态,0位点亮,1位熄灭
while(KEY==0);
}
}
总结


第七节课:
按键的工作原理,消抖是关键
按键的应用场景
代码的实现过程和数组的使用

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:8
  • 最近打卡:2023-12-05 19:37:53

3

主题

324

回帖

363

积分

禁止发言

积分
363
发表于 2023-11-13 23:42:12 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-7 12:11 , Processed in 0.155816 second(s), 113 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表