找回密码
 立即注册
查看: 546|回复: 4

屠龙刀开发板评测+学习笔记

[复制链接]
  • 打卡等级:偶尔看看II
  • 打卡总天数:21
  • 最近打卡:2025-01-19 13:42:05

7

主题

39

回帖

99

积分

注册会员

积分
99
发表于 2024-7-14 22:46:16 | 显示全部楼层 |阅读模式
本帖最后由 asys 于 2024-7-16 00:10 编辑

大家好 ,我申请的stc32屠龙刀开发板到了  如图1
从左到右为屠龙刀,我自己做的开发板,stm32最小系统板
我觉得stc32相比于stm32最大的优势是可以直接虚拟串口,
可以直接usb下载,这点对小白真的很有好。还省去了一个link的钱。
还有就是stc32的外围电路真的很少 ,最小系统板就比stm32简介了很多

拿到板子插电  按住p3.2之后按一下rst就可以进usb下载模式了如图2


这里衔接我上次发的学习笔记
截图202407142239566074.jpg
截图202407142245476663.jpg
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:21
  • 最近打卡:2025-01-19 13:42:05

7

主题

39

回帖

99

积分

注册会员

积分
99
发表于 2024-7-14 23:23:18 | 显示全部楼层
接下来是第八集是蜂鸣器的应用
第一个是蜂鸣器的区别
区别1、有源蜂鸣器内部带震荡源,所以只要一通电就会叫,而无源内部不带震荡源,所以如果用直流信号无法令其鸣叫。
2、价格不同,有源蜂鸣器要比无源蜂鸣器贵,贵在里面多了震荡源。
第二个是蜂鸣器的控制原理
  使用三极管来当作开关 这里用的是三极管的开关作用(截至时断开 ,饱和时闭合)
视频中为pnp三极管

V基极<V发射极为饱和状态  集电极与发射极之间的电压降应该很小通常小于0.2至0.3伏特
当单片机io为低电平的时候则蜂鸣器启动
当单片机io为高电平的时候则蜂鸣器关闭

接下来用了蜂鸣器来做了一个电磁炉的按键提示音

大概是这样  在一个活动完成之后就可以控制蜂鸣器发出一个声音   来表示走到这一步了

可以用这个来调试  在存疑的地方放一个提示音  来看是否代码会跳到这里

截图202407142320399652.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:21
  • 最近打卡:2025-01-19 13:42:05

7

主题

39

回帖

99

积分

注册会员

积分
99
发表于 2024-7-14 23:43:54 | 显示全部楼层
我看后面需要用数码管emmm我没有数码管emmm  唯一有数码管的51开发板还在家里面emmm只有往下做了
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:21
  • 最近打卡:2025-01-19 13:42:05

7

主题

39

回帖

99

积分

注册会员

积分
99
发表于 2024-7-16 00:04:54 | 显示全部楼层
本帖最后由 asys 于 2024-7-16 00:10 编辑

今天看了冲哥讲定时器
非常生动有趣的引入了  定时器的概念  
  

图1

图1

定时器是定时器和计数器的统称。
1)设置为定时器时,可实现硬件计时,或者使程序每隔一固定时间完成一项操作
2)设置为计数器时候能够对脉冲进行计数
3)替代长时间的delay,提高CPU的运行效率和处理速度,能及时的响应某个事件
这里可以看手册的介绍
STC32G 系列单片机内部设置了 5 个 24 位定时器/计数器(8 位预分频+16 位计数),5 个 16 位定时器
T0、T1、T2、T3 和 T4 都具有计数方式和定时方式两种工作方式

在特殊功能寄存器 TMOD 中相对应的控制位 C/T 来选择 T0 或 T1 为定时器还是计数器。

对定时器/计数器 T2,用特殊功能寄存器 AUXR中的控制位T2_C/T 来选择T2为定时器还是计数器

定时器/计数器的核 心部件是一个加法计数器,其本质是对脉冲进行计数。只是计数脉冲来源不同
   
辅助寄存器auxr可以设置12分频或者不分频  如果分频的话  那来十二个时钟脉冲才是计数1  因为auxr只提供了12分频和1分频两个选项

通过框图(图3)

图3

图3




我们可以看到cpu时钟先通过定时器的8 位预分频寄存器  

图2

图2

再通过auxr辅助寄存器进行分频   也就是  它通过了俩个分频   
当 C/T=0 时,多路开关连接到系统时钟的分频输出
这个时候使用内部时钟的脉冲来计数
T1 工作在 1T 模式(AUXR.6/T1x12=1)
时的输出时钟频率 = (SYSclk)/(TM1PS+1)/(256-TH1)/2
T1 工作在 12T 模式(AUXR.6/T1x12=0)时的输出时钟频率 = (SYSclk)/(TM1PS+1)/12/(256-TH1)/2


通过手册我们可以看到当T1 工作在 12T 模式下时  其实是格外的又进行了12分频

这里可以对比一下arm定时器的结构框图  看图4

图4

图4

arm和stc的区别就体现出来了  这里stc多了一个aurx   而arm的。内部时钟路径是
内部时钟源  到  psc预分频    到计数器   计数器的数与arr自动重载计数器比较  
可以在超过时清零并向cpu发起中断请求

我们可以通过写入定时器 0 计数寄存器的来自己设定   计算公式参考


图6

图6

图6


计数的多少  
当定时器 1 在16 位自动重装载模式时,[TH1,TL1]的溢出不仅置位 TF1,
而且会自动 将[RL_TH1,RL_TL1]的内容重新装入[TH1,TL1]

图5

图5



上面你已经学会了计数器的使用
现在我们来学习如何开启定时器

我们现在看图7

图7

图7

为定时器的控制寄存器
TR1:定时器T1的运行控制位。  当GATE(TMOD.7)=1,TR1=1且INT1输入高电平时,才允许T1 计数。
TF0:T0溢出中断标志。  定时器溢出时置1    我们可以在中断服务函数里刚开始就把这个位置0  

现在不加中断的一个完整的定时器设置是这样的
1设置定时器的时钟系统
2设置定时器模式

3设置定时初始值
4清除中断标志

5定时器开始计时



现在我们来学习如何向cpu发起中断请求  
一条完整的中断线连接是怎么样的   还是来看手册  看到图3



在TF0之后中断信号走向了interrupt 那之后呢  
看手册STC32G 中断及中断优先级结构图  (图8)

图8

图8


我们可以看见定时器0的中断允许控制是ET0    同时我们还可以对中断的优先级进行配置    原理就拨动对开关来连接中断线
在最后我们开启EA总中断  到此为止整个中断线已经完全打通  
对应操作为        ET0 = 1;          EA=1;
最后处理中断函数部分
void 函数名称(void) interrupt 中断号
{
清中断标志;
}


函数名称可以随便写  但是中断号不行
中断号位于STC32G 系列中断向量地址及同级中断优先级中断查询次序表

图9

图9


我们可以在这里看次序  这个就是中断号

注意中断号超过31的C语言中断服务程序不能直接用interrupt声明,
请参考“开发环境的建 立与ISP下载”章节中的“关于中断号大于31在Keil中编译出错的处理”小节的处理方 法
。汇编语言不受影响

到此定时器部分到此结束

我又跑回去看来一下stc32g的手册  才写出来的emmmm


回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:75
  • 最近打卡:2025-01-05 14:16:57

30

主题

132

回帖

214

积分

中级会员

积分
214
发表于 2024-10-6 22:57:53 | 显示全部楼层
as*** 发表于 2024-7-16 00:04
今天看了冲哥讲定时器
非常生动有趣的引入了  定时器的概念  
  

总结的很认真
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-9 06:19 , Processed in 0.125299 second(s), 76 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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