找回密码
 立即注册
楼主: ysp5318

原来在这里打卡学习 实验箱已收到!

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:296
  • 最近打卡:2025-05-11 09:10:15
已绑定手机

8

主题

105

回帖

680

积分

高级会员

积分
680
发表于 2024-10-20 08:44:03 | 显示全部楼层
本帖最后由 ysp5318 于 2024-10-20 08:56 编辑

前面已经学了13集收获不小,今天晒下成果,用屠龙刀实现数码管的动态显示。

微信图片_20241020085259.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:296
  • 最近打卡:2025-05-11 09:10:15
已绑定手机

8

主题

105

回帖

680

积分

高级会员

积分
680
发表于 2024-10-20 09:50:26 | 显示全部楼层
在按键数量较多时,为了减少I/O口的占用,将按键排列成矩阵排列的形式的按键阵列称为矩阵按键今天
就来学习第14集《矩阵按键》按键识别原理:端口默认为高电平,实时读取到引脚为低电平是表示按下。
第一步:现将P0.0-P0.3输出低电平,P0.6-P0.7输出高电平,如果有按键按下,按下的那一列的IO就会变
成低电平,就可以判断出哪一列按下了。
第二步:现将P0.0-P0.3输出高电平,P0.6-P0.7输出低电平,如果有按键按下,按下的那一行的IO就会变
成低电平,就可以判断出哪一行按下了。
第三步:行列组合一下就可以判断出是哪个按键按下了。
有个问题要问一下,如果4列用P1.0、P1.1、P1.3、P1.4其中跳过P1.2可以吗?
因为STC32G12K128系列没有P1.2。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:296
  • 最近打卡:2025-05-11 09:10:15
已绑定手机

8

主题

105

回帖

680

积分

高级会员

积分
680
发表于 2024-10-21 11:44:40 | 显示全部楼层
本帖最后由 ysp5318 于 2024-10-22 08:41 编辑

昨天学习第14集《矩阵按键》遇到STC32G12K128系列没有P1.2,如果用P1口做矩阵按键怎么办? 主要是在拉低(高)P1口的电平时要绕开P1.2。应该是用与、或的运算来解决,有点麻烦,求高手指点。
今天开始学习15集《外部中断》关于中断在前面定时器的学习中知道,中断可以在必要的情况下转到当前首先要解决的问题。STC单片机中提供了很多中断源,使我们使用更灵活方便。外部中断是在一个具有外部中断功能的端口上,输入一个高低电平,执行一个中断程序。要注意的是有优先级、要选择上升或下降沿触发、开启关闭总和相应的中断的使能开关等。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:296
  • 最近打卡:2025-05-11 09:10:15
已绑定手机

8

主题

105

回帖

680

积分

高级会员

积分
680
发表于 2024-10-21 16:18:37 | 显示全部楼层
上午学习了《外部中断》现在看了STC-USB大型实战研讨会上冲哥重披战袍的视频回放。讲解的很详细,通俗易懂。确实STC-USB应用USB-CDC虚拟串口,给我们带来许多方便,而实现USB的功能电路只需要轻松的三步即可!!
实际上我们每天正在学的《实验箱演示》中已经运用了USB-CDC虚拟串口的知识。现在看专题讲解使我们有了更进一步的认识。尤其是串口不停电,不需匹配频率下载太方便了。还有USB的中断、基于CDC串口的Printf函数,给我们的串口无限可能!使用起来确很简单。还有通过CDC串口发送特定指令获取参数...等。一言以蔽之就是好。明天继续。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:296
  • 最近打卡:2025-05-11 09:10:15
已绑定手机

8

主题

105

回帖

680

积分

高级会员

积分
680
发表于 2024-10-22 10:14:27 | 显示全部楼层
今天开始学习16集《IO中断》STC单片机中所有IO口都可以中断,据说在单片机中是前所未有的,是STC的独创!这里通过一个范例告诉我们怎么运用,怎么拓展Keil的C代码中断号。注意中断程序中不要有延时!最后的实战小练很有意义,通过实战小练可以进一步掌握其他IO口的中断,以及优先级的使用。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:296
  • 最近打卡:2025-05-11 09:10:15
已绑定手机

8

主题

105

回帖

680

积分

高级会员

积分
680
发表于 2024-10-22 16:26:20 | 显示全部楼层
昨天看了STC-USB大型实战研讨会上冲哥重披战袍的视频回放的第一部分。今天下午学习第二部分USB-CDC虚拟串口应用中基于LIB库的简易USB-CDC转串口。这个可以帮助我们进行一个快速的开发,通过USB-CDC转IIC 、转CAN、转SPI等串口。冲哥演示了用三步实现简易USB-CDC转串。看似简易,但要掌握还需反复揣摩。
第二部分还讲解了CDC转串口的高级运用,可以实现转双(甚至四个)串口。配置的核心步骤如下1.USB硬件初始化2.编写读取函数和写入函数3.配置USB中断4.配置设备的设备描述符,标识符等等5.配置端点输入6.配置端点输出。这部分内容确实是高级,内容繁多,让人眼花缭乱。好在STC有例程包帮助我们去学习使用。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:296
  • 最近打卡:2025-05-11 09:10:15
已绑定手机

8

主题

105

回帖

680

积分

高级会员

积分
680
发表于 2024-10-23 10:44:11 | 显示全部楼层
今天开始学习17集《模数转换器ADC》通常是指一个将模拟信号转变为数字信号的电子元件。冲哥用了一个视频非常简明形象告诉我们怎么把模拟信号  ->  电压,转换成数字信号  ->  0和1组成的二进制数。STC32G给提供15个可供使用的ADC转换通道。在使用ADC功能时有Vref引脚的单片机千万千万千万不能悬空,必须接外部参考电压源或者VCC!!!我们关注的是如何实现ADC转换的操作。有查询和中断两种方式,用的比较多的方式是查询,首先选择输入引脚,注意用ISP软件把输入引脚设为高阻。之后和以前的程序一样,参考说明书中ADC使用原理定义、声明、调用。
ADC初始化
        P1M0 = 0x00;                         //设置P10为高阻输入
        P1M1 = 0x01;

        ADCTIM = 0X3F;                        //
        ADCCFG = 0X2F;                        //数据右对齐,时钟选择位SYSCLK/2/16最慢
        ADC_POWER = 1;                                        //打开adc电源
读取指定通道的adc电压
        u16 adcval;                        //adc数值保存变量
        ADC_CONTR &= 0xf0;                //清空通道
        ADC_CONTR |= no;                //选择通道
        ADC_START = 1;                        //开启ADC转化
        _nop_();                        //空操作指令
        _nop_();                       
        while(!ADC_FLAG);                //等待ADC转换结束
        ADC_FLAG = 0;               
        adcval = (ADC_RES << 8)  + ADC_RESL;        //计算adc的数值
        adc_val = adcval;
        return adcval;
将adc数值换算成电源电压
        return num*2.5*1000 /4096;
还有预编译的知识可以方便的变换查询或者中断方式。
根据老师的详细讲解模数转换是可以尽快掌握的。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:296
  • 最近打卡:2025-05-11 09:10:15
已绑定手机

8

主题

105

回帖

680

积分

高级会员

积分
680
发表于 2024-10-23 17:22:47 | 显示全部楼层
上午学习了17集《模数转换器ADC》
今天下午学习STC-USB大型实战研讨会上冲哥重披战袍的视频回放的第三部分USB-HID通信。
就是通过直接修改CDC代码,实现USB-HID通信。和CDC比较其具体差异,需要配置的核心步骤:
1.修改设备符等信息,新增HID信息标识
2.替换HID的class类
3.std请求增加HID标识符信息
4.删除串口相关函数
5.usb端点1改为输出
6.增加读取和输出函数
通过修改设备符等信息,修改HID信息标识,修改接收函数并控制LED作为键盘指示灯,增加HID发送键盘码表函数,可以实现HID键盘
通过修改设备符等信息,新增HID信息标识,std请求增加对应信息,修改vendor信息,修改主函数,实现WINUSB通信,但注意WINUSB使用的限制条件。
STC-USB大型实战研讨会上冲哥重披战袍的视频回放的三个部分都看了一遍,比教授级别的要通俗易懂的多。
但还是只能说了解一些皮毛,要想真正掌握还要继续学习。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:296
  • 最近打卡:2025-05-11 09:10:15
已绑定手机

8

主题

105

回帖

680

积分

高级会员

积分
680
发表于 2024-10-24 15:38:34 | 显示全部楼层
本帖最后由 ysp5318 于 2024-10-24 15:39 编辑

今天开始学习20集《串口通信》,串口通信是指外设和计算机间,通过数据信号线 、地线、控制线等,按位进行传输数据的一种通讯方式。
一,有同步和异步之分。
异步通讯就是,①以字符为单位传送信息。②相邻两字符间的间隔是任意长。③因为一个字符中的比特位长度有限,所以需 要的接收时钟和发送时钟只要相近就可以。④异步方式特点简单的说就是:字符间异步,字符内部各位同步。
同步通讯就是,①以数据块为单位传送信息。②在一个数据块(信息帧)内,字符与字符间无间隔。③因为一次传输的数据块中包含的数据较多,所以接收时钟与发送进钟严格同步,通常要有同步时钟。
二,有全双工,半双工,单工之分。
全双工是接收和发送方可以同时发送和接收对方的数据。
半双工是接收和发送方都可以发送和接收对方的数据,但是一方在发送时另一方只能接收。
三,串口通信的基础知识要掌握,波特率,数据位,校验位,停止位。这个需要通讯双方保持一致。
四,通过相关芯片可以增加传送距离,可以扩展单片机的使用功能比如串口转以太网、WIFI、蓝牙、zigbee等。
实现STC32的串口通信,1,引脚选择 2,模式选择 3,编写串口通信程序,这个可以按照手册上的范例去定义函数,然后声明,调用。
感谢冲哥几乎是手把手的详细讲解如何把范例变成编译成功,实现通讯的视频。下面把学习《矩阵按键》后的实践图片晒一下。
微信图片_20241024144017.jpg 硬件用屠龙刀,软件参考了布丁橘长的74HC595级联驱动数码管的程序,冲哥《矩阵按键》的程序。

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:296
  • 最近打卡:2025-05-11 09:10:15
已绑定手机

8

主题

105

回帖

680

积分

高级会员

积分
680
发表于 2024-10-25 15:49:29 | 显示全部楼层
今天开始学习21集《串口应用》首先学串口与PC通信的接线,芯片与芯片之间的通讯:如果通信协议和电平都一样,直接TX和RX链接就可以通信。如果串口与PC通信的接线就需要USB转232通讯线和USB转TTL工具。正好我已经买了一箭双雕转USB双串口的板子,就差实验箱了。下面就是利用实验箱示例代码移植驱动程序。注意1)查找试验箱里面和我们的功能最接近的程序。2)先测试示例程序是否正常。3)分析哪些代码与我们的功能有用。4)新建文件,开始移植。
学会移植可以使我们收到事倍功半的效果。《串口应用》下集开始学习串口通信实战,通过做一个简易串口控制器,用ISP控制实验箱。非常实用。
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-11 20:41 , Processed in 0.144142 second(s), 99 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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