找回密码
 立即注册
查看: 9078|回复: 37

冲哥STC32G单片机学习笔记

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:359
  • 最近打卡:2025-05-04 11:02:22

2

主题

87

回帖

898

积分

高级会员

积分
898
发表于 2023-9-4 14:45:44 | 显示全部楼层 |阅读模式

第一课:认识单片机


1.什么是单片机
    具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM,多种I/O和中断系统、定时器/计数器等功能


2.单片机功能
    基本就是一个功能减小的计算机,能写入用户程序,读取输入引脚的电压信号,能在引脚上输出特定的电平信号,能在特定引脚上输出电压信   号,能计算时间,能计数,做数学运算,逻辑运算、能顺序动作,能通信等功能


3.为什么选这款芯片
  • 最新
  • 功能全
  • 价格还行   

回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:12
  • 最近打卡:2023-12-18 15:13:58

4

主题

216

回帖

886

积分

高级会员

积分
886
发表于 2023-9-4 17:21:08 | 显示全部楼层
楼主可继续打卡学习
发表更详细的上课感受
可获赠实验箱+包邮



回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:359
  • 最近打卡:2025-05-04 11:02:22

2

主题

87

回帖

898

积分

高级会员

积分
898
发表于 2023-9-4 19:09:23 | 显示全部楼层
第二课:了解硬件



硬件描述

硬件描述




这一课冲哥主要讲解了本系列课程所用到的开发板


外设很多,红外发送、接收,数码管,NTC,18B20,24C02,矩阵键盘,LCD,232,FLASH等。


基本I\O,ADC,DCA,PWM,I2C,SPI都有涉及,这下终于有个完整的视频可以对着文档走了。


之前看文档看的晕晕乎乎的,设这个寄存器那个寄存器的,头都大了。期待能入门学好单片机
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:359
  • 最近打卡:2025-05-04 11:02:22

2

主题

87

回帖

898

积分

高级会员

积分
898
发表于 2023-9-4 21:25:56 | 显示全部楼层
第三课:开发环境搭建和程序下载


1. STC-ISP软件下载

    这个软件是STC单片机必须的软件,下载地址:https://stcai.com/gjrj,下载完整版
截图202309042100287417.jpg


2. STC32手册下载
    手册里面有详细软件安装,添加项目和头文件图文步骤。
    下载地址:https://www.stcai.com/filedownload/729692


3. PDF阅读器下载


4. C251环境搭建,是C251,不是C51,直接看手册安装
  地址:https://www.keil.com/download/product/


5. 软件包下载地址
截图202309042116388883.jpg


大概步骤:
1. 下载STC-ISP
2. 下载C251
3. 添加型号和头文件
截图202309042119211080.jpg

4, 打开实验箱程序,运行编译
5. 烧录程序
    实验箱 9.6 使用硬件 USB 接口下载。进入 USB 下载模式需要先按住实验箱上的 P3.2/INT0 按 键/接地,然后按一下 ON/OFF 电源按键/断电,接着松开 ON/OFF 电源按键/上电,最后可松开 P3.2/INT0 按键。正常情况下就能识别出“STC USB Writer (HID1)”设备。

   详见:实验箱使用说明,https://www.stcai.com/filedownload/689637
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:359
  • 最近打卡:2025-05-04 11:02:22

2

主题

87

回帖

898

积分

高级会员

积分
898
发表于 2023-9-5 15:57:18 | 显示全部楼层
本帖最后由 noonezero 于 2023-9-9 17:30 编辑

第四课:建立工程点亮第一颗LED
------------------------------------------------------------
补充说明,
USB自动下载头文件引入和视频中不一样了,具体可以见程序包中 76示例
截图202309091709146943.jpg
具体可以看我附件程序,正常点灯,以后不用新建工程,直接复制一份用就可以

------------------------------------------------------------

1.新建工程注意事项
  • 新建以后要手动添加.c文件,加入项目
  • 勾选创建.hex文件,编码对应一致
  • 截图202309051300131404.jpg


2. 下载程序注意事项
  • 时钟频率暂时先选24M
  • 和第三课一样,记得识别出“STC USB Writer (HID1)”设备




3.I/O口模式设置
    STC32G系列单片机所有I/O口均有四种工作模式,准双向口/弱上拉(旧C51只有这种模式),推挽输出/强上拉,高阻输入(电流既不能流入也不能流出),开漏输出。
    根据寄存器控制引脚模式,下图代码中,就是准双向口
  
PnM1.x PnM0.x Pn.x口工作模式
0 0 准双向口
0 1 推挽输出
1 0 高阻输入
1 1 开漏输出

  
4. 点灯
  • 电路图

截图202309051512192980.jpg




首先一个NPN三极管开关,低电压三极管导通,所以P4^0设置为0低电压
P6^0为二极管负极,需要设置为0


  • 代码:按电路图无需设置P0端口,可以正常点灯

  1. // 设置P4端口以及端口模式配置寄存器
  2. sfr P4 = 0xC0;
  3. sfr P4M0 = 0xB4;
  4. sfr P4M1 = 0xB3;
  5. // 设置P6端口以及端口模式配置寄存器
  6. sfr P6 = 0xE8;
  7. sfr P6M0 = 0xCC;
  8. sfr P6M1 = 0xCB;
  9. // 设置P40 为P4组中第0位
  10. sbit P40 = P4^0;
  11. // 设置P60 为P6组中第0位
  12. sbit P60 = P6^0;
  13. void main()
  14. {
  15.         // 设置P4为准双向口
  16.         P4M0 = 0x00;
  17.         P4M1 = 0x00;
  18.         
  19.         // 设置P6为准双向口
  20.         P6M0 = 0x00;
  21.         P6M1 = 0x00;
  22.         
  23.         // 第0位都设置低电平
  24.         P40 = 0;
  25.         P60 = 0;
  26.         
  27.         while(1){
  28.                ;
  29.         }
  30. }
复制代码



5. USB自动下崽(不是错别字)
截图202309051533378852.jpg


大概写以下,具体需要看STC32G说明 5.14.2章节,具体页码185
  • STC-ISP软件要最新版
  • 选择正确的单片机信号,32G的话看是
  • 打开“收到用户命令后复位到ISP监控程序区”选项页
  • 选择“USB(HID)模式”,并设置USB设备的VID和PID,STC范例中的VID为“34BF”,PID为“FF01”
  • 选择HEX模式或者文本模式
  • 自定义下载命令需要和代码中的自定义命令相一致
  • 选择好后STC-ISP下载软件便会自动发送复位命令,自动开始USB模式的ISP下载
  • 需要添加对应的代码库“stc_usb_hid.lib”到项目中,并设置自定义下载命令

截图202309051542518431.jpg




**具体可以看演示程序76,平时用的时候直接复制一份,不用多次配置


6. CDC自动下载,以后补充




最后作业,点亮全部灯
P60 = 0; 改成 P6 = 0x00;  应该就可以了

USB模式下自动下载并点灯.zip (107.99 KB, 下载次数: 247)



回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:359
  • 最近打卡:2025-05-04 11:02:22

2

主题

87

回帖

898

积分

高级会员

积分
898
发表于 2023-9-5 17:35:59 | 显示全部楼层
本帖最后由 noonezero 于 2023-9-5 17:45 编辑

第五课:C语言运算符和进制数入门

这节课主要讲了模拟串口输出,这个功能挺好,有问题可以直接调试输出,更方便查看对应变量的值。

剩下的就是C语言的基础知识,包括ASSI码表和格式化字符串,运算符,以及取值范围
还有进制之间的转换以下是补充的对应各种表,方便查看。


*取值范围,double应该是比float还大的,冲哥应该是写错了


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


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


常规用法:
printf("来了,老弟!");

printf("室内温度:%.2f\r\n", 11.2);




2. ASSI码表和格式化字符串

二进制十进制十六进制字符/缩写解释
00000000000NUL (NULL)空字符
00000001101SOH (Start Of Headling)标题开始
00000010202STX (Start Of Text)正文开始
00000011303ETX (End Of Text)正文结束
00000100404EOT (End Of Transmission)传输结束
00000101505ENQ (Enquiry)请求
00000110606ACK (Acknowledge)回应/响应/收到通知
00000111707BEL (Bell)响铃
00001000808BS (Backspace)退格
00001001909HT (Horizontal Tab)水平制表符
00001010100ALF/NL(Line Feed/New Line)换行键
00001011110BVT (Vertical Tab)垂直制表符
00001100120CFF/NP (Form Feed/New Page)换页键
00001101130DCR (Carriage Return)回车键
00001110140ESO (Shift Out)不用切换
00001111150FSI (Shift In)启用切换
000100001610DLE (Data Link Escape)数据链路转义
000100011711DC1/XON
(Device Control 1/Transmission On)
设备控制1/传输开始
000100101812DC2 (Device Control 2)设备控制2
000100111913DC3/XOFF
(Device Control 3/Transmission Off)
设备控制3/传输中断
000101002014DC4 (Device Control 4)设备控制4
000101012115NAK (Negative Acknowledge)无响应/非正常响应/拒绝接收
000101102216SYN (Synchronous Idle)同步空闲
000101112317ETB (End of Transmission Block)传输块结束/块传输终止
000110002418CAN (Cancel)取消
000110012519EM (End of Medium)已到介质末端/介质存储已满/介质中断
00011010261ASUB (Substitute)替补/替换
00011011271BESC (Escape)逃离/取消
00011100281CFS (File Separator)文件分割符
00011101291DGS (Group Separator)组分隔符/分组符
00011110301ERS (Record Separator)记录分离符
00011111311FUS (Unit Separator)单元分隔符
001000003220(Space)空格
001000013321!
001000103422"
001000113523#
001001003624$
001001013725%
001001103826&
001001113927'
001010004028(
001010014129)
00101010422A*
00101011432B+
00101100442C,
00101101452D-
00101110462E.
00101111472F/
0011000048300
0011000149311
0011001050322
0011001151333
0011010052344
0011010153355
0011011054366
0011011155377
0011100056388
0011100157399
00111010583A:
00111011593B;
00111100603C<
00111101613D=
00111110623E>
00111111633F?
010000006440@
010000016541A
010000106642B
010000116743C
010001006844D
010001016945E
010001107046F
010001117147G
010010007248H
010010017349I
01001010744AJ
01001011754BK
01001100764CL
01001101774DM
01001110784EN
01001111794FO
010100008050P
010100018151Q
010100108252R
010100118353S
010101008454T
010101018555U
010101108656V
010101118757W
010110008858X
010110018959Y
01011010905AZ
01011011915B[
01011100925C\
01011101935D
01011110945E^
01011111955F_
011000009660`
011000019761a
011000109862b
011000119963c
0110010010064d
0110010110165e
0110011010266f
0110011110367g
0110100010468h
0110100110569i
011010101066Aj
011010111076Bk
011011001086Cl
011011011096Dm
011011101106En
011011111116Fo
0111000011270p
0111000111371q
0111001011472r
0111001111573s
0111010011674t
0111010111775u
0111011011876v
0111011111977w
0111100012078x
0111100112179y
011110101227Az
011110111237B{
011111001247C|
011111011257D}
011111101267E~
011111111277FDEL (Delete)删除



  • 格式化字符

type 说明
%d, %i 以十进制输出一个整数
%o, %O 分别用大小写以八进制输出一个整数
%x, %X 分别用大小写以十六进制输出一个整数
%f 输出一个浮点数(单精度)
%c 输出一个字符
%s 输出一个字符串
%e 以科学计数法输出一个浮点数(双精度)
%g 自动选择合适的表示法输出(会自动去掉多余的零)
%u 输出一个无符号整数
%p 打印地址
%%, %” 打印百分号或引号


3. 进制转换
二进制 十进制 十六进制
0000 0 0
0001 1 1
0010 2 2
0011 3 3
0100 4 4
0101 5 5
0110 6 6
0111 7 7
1000 8 8
1001 9 9
1010 10 A
1011 11 B
1100 12 C
1101 13 D
1110 14 E
1111 15 F


4. 二进制的运算
加减乘除,取余等算术运算符,还有位与,位或,取反,以及位左移右移


5. C语言的取值范围
数据类型 Bits bytes value range
bit 1 0 / 1
char 8 1 -128 - 127
unsigned char 8 1 0 - 255
enum 8 / 16 1 / 2  -128 - 127 / -32768 - 32767
short int 16 2 -32768 - 32767
unsigned short int 16 2 0 - 65535
int 16 2 -32768 - 32767
unsigned int 16 2 0 - 65535
long int 32 4 -2147483648 - 2147483647
unsigned long int 32 4 0 - 4294967295
float 32 4 -3.4*10^38~+3.4*10^38
double 64 8 -1.7*10^-308 - 1.7*10^308
sbit 1 0 / 1
sfr 8 1 0 - 255
sfr16 16 2 0 - 65535





回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:359
  • 最近打卡:2025-05-04 11:02:22

2

主题

87

回帖

898

积分

高级会员

积分
898
发表于 2023-9-5 21:59:41 | 显示全部楼层
第六课:LED闪烁和花式点灯

这节课主要讲了 delay() 函数的用法,借此引出如何自己编写函数

有了函数,就开始模块化编程,把同类型功能函数放在一起,单独新建一个 .c .h文件,哪个工程要用可以单独引入

1.while 和 do...while 的区别

截图202309052149484601.jpg


2. 函数使用
  • 函数定义


返回值 函数名称( 形参 )

{
    函数要执行的功能;
}
@返回值:没有返回值就是void
@函数名称:要避开关键字,不重复,非特殊字符
@形参:类型+名称,多个参数用 “,”分开


  • 函数声明

返回值 函数名称 ( 形参 );



  • 函数调用

函数名称( 实参 );



3. 模块化编程
xxoo.h文件格式
// 这里定义 __XXOO_H 是为了防止交叉引用,以及定义了这个,说明文件已经引用,无需再次引入
#ifndef __XXOO_H
#define __XXOO_H
调用头文件
函数声明
#endif


xxoo.c文件格式

#include "xxoo.h"
函数定义




**添加文件一定要记得引用路径添加到工程里
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:359
  • 最近打卡:2025-05-04 11:02:22

2

主题

87

回帖

898

积分

高级会员

积分
898
发表于 2023-9-6 09:16:04 | 显示全部楼层
本帖最后由 noonezero 于 2023-9-9 21:24 编辑

第七课:按键点灯

这节课主要讲解了按键控制灯做不同状态,以下代码加自己理解实现,等板子回来在做验证

截图202309060827231361.jpg 截图202309060829299475.jpg 截图202309060928191554.jpg

  1. #include <STC32G.H>
  2. #include <intrins.h>
  3. #include "COMM/stc32_stc8_usb.h"
  4. void sys_init();
  5. //USB调试及复位所需定义
  6. char *USER_DEVICEDESC = NULL;
  7. char *USER_PRODUCTDESC = NULL;
  8. char *USER_STCISPCMD = "@STCISP#";                      //设置自动复位到ISP区的用户接口命令
  9. #define KEY1 P32
  10. #define KEY2 P33
  11. void Delay_ms(int x)        //@24.000MHz
  12. {
  13.         unsigned long edata i;
  14.         for(; x > 0; x--)
  15.         {
  16.         _nop_();
  17.         _nop_();
  18.         _nop_();
  19.         i = 5998UL;
  20.                 while (i) i--;
  21.         }
  22. }
  23. void main()
  24. {
  25.         u8 ledtype = 0x01;
  26.         P40 = 0;
  27.         
  28.         sys_init();
  29.         usb_init();  //USB初始化
  30.         EA = 1;
  31.         
  32.         
  33.         while(1){
  34.                 /* 按键点亮熄灭*/
  35.                 // 按键按下LED点亮,松开熄灭
  36. //                if(KEY1 == 0)
  37. //                {
  38. //                        Delay_ms(10);  // 软件消抖
  39. //                        if(KEY1 == 0)
  40. //                        {
  41. //                                        P6 = 0x00;
  42. //                        }
  43. //                }
  44. //                else{
  45. //                        P6 = 0xFF;
  46. //                }
  47.                
  48.                 // 按键按下LED熄灭,松开点亮
  49. //                if(KEY2 == 0)
  50. //                {
  51. //                        Delay_ms(10);  // 软件消抖
  52. //                        if(KEY2 == 0)
  53. //                        {
  54. //                                P6 = 0xFF;
  55. //                        }
  56. //                }
  57. //                else{
  58. //                        P6 = 0x00;
  59. //                }
  60.                
  61.                
  62.                 /* 按键按下一次,LED状态改变一次*/
  63. //                if(KEY1 == 0)
  64. //                {
  65. //                        Delay_ms(10);  // 软件消抖
  66. //                        if(KEY1 == 0)
  67. //                        {
  68. //                                P6 = ~P6;
  69. //                        }
  70. //                }
  71.                
  72.                 /* 按键按下一次,LED左移*/
  73.                 if(KEY2 == 0)
  74.                 {
  75.                         Delay_ms(10);  // 软件消抖
  76.                         if(KEY2 == 0)
  77.                         {
  78.                                 ledtype = ledtype << 1;
  79.                                 if(ledtype == 0x00)
  80.                                 {
  81.                                         ledtype = 0x01;
  82.                                 }
  83.                                 P6 = ~ledtype;
  84.                         }
  85.                         Delay_ms(500);  // 软件消抖
  86.                 }
  87.                         
  88.         }
  89. }
  90. void sys_init()
  91. {
  92.     WTST = 0;  //设置程序指令延时参数,赋值为0可将CPU执行指令的速度设置为最快
  93.     EAXFR = 1; //扩展寄存器(XFR)访问使能
  94.     CKCON = 0; //提高访问XRAM速度
  95.     P0M1 = 0x30;   P0M0 = 0x30;   //设置P0.4、P0.5为漏极开路(实验箱加了上拉电阻到3.3V)
  96.     P1M1 = 0x32;   P1M0 = 0x32;   //设置P1.1、P1.4、P1.5为漏极开路(实验箱加了上拉电阻到3.3V), P1.1在PWM当DAC电路通过电阻串联到P2.3
  97.     P2M1 = 0x3c;   P2M0 = 0x3c;   //设置P2.2~P2.5为漏极开路(实验箱加了上拉电阻到3.3V),设置开漏模式需要断开PWM当DAC电路中的R2电阻
  98.     P3M1 = 0x50;   P3M0 = 0x50;   //设置P3.4、P3.6为漏极开路(实验箱加了上拉电阻到3.3V)
  99.     P4M1 = 0x3c;   P4M0 = 0x3c;   //设置P4.2~P4.5为漏极开路(实验箱加了上拉电阻到3.3V)
  100.     P5M1 = 0x0c;   P5M0 = 0x0c;   //设置P5.2、P5.3为漏极开路(实验箱加了上拉电阻到3.3V)
  101.     P6M1 = 0xff;   P6M0 = 0xff;   //设置为漏极开路(实验箱加了上拉电阻到3.3V)
  102.     P7M1 = 0x00;   P7M0 = 0x00;   //设置为准双向口
  103. }
复制代码






回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:359
  • 最近打卡:2025-05-04 11:02:22

2

主题

87

回帖

898

积分

高级会员

积分
898
发表于 2023-9-6 21:31:17 | 显示全部楼层
本帖最后由 noonezero 于 2023-9-9 21:37 编辑

第八课:蜂鸣器的应用


通过按键实现开机,功能选择,功能选中功能。
第三个作业做错了,看作业视频 想简单了,确实
收到板子补


  1. #include <STC32G.H>
  2. #include <intrins.h>
  3. #include "COMM/stc32_stc8_usb.h"
  4. void sys_init();
  5. //USB调试及复位所需定义
  6. char *USER_DEVICEDESC = NULL;
  7. char *USER_PRODUCTDESC = NULL;
  8. char *USER_STCISPCMD = "@STCISP#";                      //设置自动复位到ISP区的用户接口命令
  9. #define KEY1 P32
  10. #define KEY2 P33
  11. #define BEEP P54
  12. void Delay_ms(int x)        //@24.000MHz
  13. {
  14.         unsigned long edata i;
  15.         for(; x > 0; x--)
  16.         {
  17.         _nop_();
  18.         _nop_();
  19.         _nop_();
  20.         i = 5998UL;
  21.                 while (i) i--;
  22.         }
  23. }
  24. void main()
  25. {
  26.         u8 ledtype = 0x01;
  27.         P40 = 0;
  28.        
  29.         sys_init();
  30.         usb_init();  //USB初始化
  31.         EA = 1;
  32.        
  33.        
  34.         while(1){
  35.                 /* 按键点亮熄灭*/
  36.                 // 按键按下LED点亮,松开熄灭
  37. //                if(KEY1 == 0)
  38. //                {
  39. //                        BEEP = 0;               
  40. //                        Delay_ms(10);  // 软件消抖
  41. //                        if(KEY1 == 0)
  42. //                        {
  43. //                                        P6 = 0x00;
  44. //                        }
  45. //                        BEEP = 1;
  46. //                }
  47. //                else{
  48. //                        P6 = 0xFF;
  49. //                }
  50.                
  51.                 // 按键按下LED熄灭,松开点亮
  52. //                if(KEY2 == 0)
  53. //                {
  54. //                        BEEP = 0;
  55. //                        Delay_ms(10);  // 软件消抖
  56. //                        if(KEY2 == 0)
  57. //                        {
  58. //                                P6 = 0xFF;
  59. //                        }
  60. //                        BEEP = 1;
  61. //                }
  62. //                else{
  63. //                        P6 = 0x00;
  64. //                }
  65.                
  66.                
  67.                 /* 按键按下一次,LED状态改变一次*/
  68. //                if(KEY1 == 0)
  69. //                {
  70. //                        BEEP = 0;
  71. //                        Delay_ms(10);  // 软件消抖
  72. //                        if(KEY1 == 0)
  73. //                        {
  74. //                                P6 = ~P6;
  75. //                        }
  76. //      BEEP = 1;
  77. //                }
  78.                
  79.                 /* 按键按下一次,LED状态改变一次*/
  80.                 if(KEY2 == 0)
  81.                 {
  82.                         BEEP = 0;
  83.                         Delay_ms(10);  // 软件消抖
  84.                         if(KEY2 == 0)
  85.                         {
  86.                                 ledtype = ledtype << 1;
  87.                                 if(ledtype == 0x00)
  88.                                 {
  89.                                         ledtype = 0x01;
  90.                                 }
  91.                                 P6 = ~ledtype;
  92.                         }
  93.                         Delay_ms(500);  // 软件消抖
  94.                         BEEP = 1;
  95.                 }
  96.                        
  97.         }
  98. }
  99. void sys_init()
  100. {
  101.     WTST = 0;  //设置程序指令延时参数,赋值为0可将CPU执行指令的速度设置为最快
  102.     EAXFR = 1; //扩展寄存器(XFR)访问使能
  103.     CKCON = 0; //提高访问XRAM速度
  104.     P0M1 = 0x30;   P0M0 = 0x30;   //设置P0.4、P0.5为漏极开路(实验箱加了上拉电阻到3.3V)
  105.     P1M1 = 0x32;   P1M0 = 0x32;   //设置P1.1、P1.4、P1.5为漏极开路(实验箱加了上拉电阻到3.3V), P1.1在PWM当DAC电路通过电阻串联到P2.3
  106.     P2M1 = 0x3c;   P2M0 = 0x3c;   //设置P2.2~P2.5为漏极开路(实验箱加了上拉电阻到3.3V),设置开漏模式需要断开PWM当DAC电路中的R2电阻
  107.     P3M1 = 0x50;   P3M0 = 0x50;   //设置P3.4、P3.6为漏极开路(实验箱加了上拉电阻到3.3V)
  108.     P4M1 = 0x3c;   P4M0 = 0x3c;   //设置P4.2~P4.5为漏极开路(实验箱加了上拉电阻到3.3V)
  109.     P5M1 = 0x0c;   P5M0 = 0x0c;   //设置P5.2、P5.3为漏极开路(实验箱加了上拉电阻到3.3V)
  110.     P6M1 = 0xff;   P6M0 = 0xff;   //设置为漏极开路(实验箱加了上拉电阻到3.3V)
  111.     P7M1 = 0x00;   P7M0 = 0x00;   //设置为准双向口
  112. }
复制代码








回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:15
  • 最近打卡:2025-05-06 15:23:14

19

主题

386

回帖

2516

积分

版主

积分
2516
QQ
发表于 2023-9-7 08:56:50 | 显示全部楼层
建议爱学习的小伙伴直接联系我们客服小姐姐,以便更快的获的实验箱,
同时也希望能看到小伙伴后面更详细的学习感悟,一起提升大家的学习热情
【免费+包邮】 送/申样/采购 可加 如下 QQ或微信联系
加STC华南区客服刘经理QQ: 3398500488 ;微信:18106296592  要求 【免费+包邮】 送, 还免费教仿真  
加STC华南区客服曹经理QQ:1933892258 ;微信:18106296595 要求 【免费+包邮】 送, 还免费教仿真
加STC华东区客服聂经理QQ:2593903262;微信:18106296598  要求 【免费+包邮】 送, 还免费教仿真
加STC西北区客服孙经理QQ: 1347154513 ;微信:18106296593  要求 【免费+包邮】 送, 还免费教仿真
加STC华北区客服石经理QQ: 1638975601 ;微信:19952583876  要求 【免费+包邮】 送, 还免费教仿真
加STC华中区客服唐经理QQ:2571301708 ;微信:18106296589 要求 【免费+包邮】 送, 还免费教仿真
加STC东北区客服张经理QQ:3141888640 ;微信:19952583265   要求 【免费+包邮】 送, 还免费教仿真
加STC西南区客服张经理QQ:3141888640 ;微信:19952583265   要求 【免费+包邮】 送, 还免费教仿真
工作时间:  8:30-12:00,13:00-17:30(周一 到 周五, 法定节假日除外)

【免费+包邮】 送/申样/采购传统电话热线:0513-55012928、0513-55012929、0513-55012966
工作时间:  8:30-12:00,13:00-17:30(周一 到 周五, 法定节假日除外)
QQ:1463035472,微信:19952583954
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-7 11:49 , Processed in 0.167909 second(s), 110 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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