文章目录

  • 一、串口协议和RS-232标准,RS232电平与TTL电平的区别,"USB/TTL转232"模块的工作原理
    • 1.串口协议
    • 2.RS-232标准
    • 3.RS232电平与TTL电平的区别
    • 4."USB/TTL转232"模块的工作原理(以CH340芯片为例)
  • 二、USART介绍
    • **1.仪器选择**
    • 2.操作连线
    • 3.软件选取
      • (1)安装CH34_Install_Windows_v3_4(驱动)
      • (2)查看是否存在端口
  • 三、寄存器方式编写hello windows!
    • 1.keil创建项目
    • 2.编写hello.s文件
    • 3.程序烧录
    • 4.串口调试
    • 5.观察波形
  • 四、总结
  • 五、参考资料

一、串口协议和RS-232标准,RS232电平与TTL电平的区别,"USB/TTL转232"模块的工作原理

1.串口协议

串口通信指串口按位(bit)发送和接收字节。尽管比特字节(byte)的串行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。串口通信协议是指规定了数据包的内容,内容包含了起始位、主体数据、校验位及停止位,双方需要约定一致的数据包格式才能正常收发数据的有关规范。在串口通信中,常用的协议包括RS-232、RS-422和RS-485。

2.RS-232标准

介绍
RS-232-C是美国电子工业协会EIA(Electronic Industry Association)制定的一种串行物理接口标准。RS(Recommended Standard)是英文“推荐标准”的缩写,232为标识号,C表示修改次数。RS-232-C总线标准设有25条信号线,包括一个主通道和一个辅助通道。
RS-232-C标准规定,驱动器允许有2500pF的电容负载,通信距离将受此电容限制。例如,采用150pF/m的通信电缆时,最大通信距离为15m;若每米电缆的电容量减小,通信距离可以增加。传输距离短的另一原因是RS-232属单端信号传送,存在共地噪声和不能抑制共模干扰等问题,因此一般用于20m以内的通信。

电气特性
在TxD和RxD上:
逻辑“1”:-3V~-15V
逻辑“0”:+3~+15V
信号和管脚定义



设置
串行通信在软件设置里需要做多项设置,最常见的设置包括波特率(Baud Rate)、奇偶校验(Parity Check)和停止位(Stop Bit)。
1)波特率(Baud Rate):
是指从一设备发到另一设备的波特率,即每秒钟多少比特bits per second (bit/s)。典型的波特率是300, 1200, 2400, 9600, 19200, 115200 等bit/s。一般通信两端设备都要设为相同的波特率,但有些设备也可以设置为自动检测波特率。
2)奇偶校验(Parity Check):
是用来验证数据正确性的。奇偶校验一般不使用,如果使用,那么既可以做奇校验(Odd Parity)也可以做偶校验(Even Parity)。
3)停止位(Stop Bit):
是在每个字节数据传输之后发送的,它用来帮助接收信号方硬件重同步。

3.RS232电平与TTL电平的区别

RS232电平
RS232是美国电子工业协会于1962年发布的串行通信接口标准,其中RS为英文“Recomend Standard”的缩写,中文翻译为“推荐标准”,232为标示号。该标准对串行通信的物理接口及逻辑电平都做了规定。

最简单的RS232通信由三条数据线组成,即TxD、RxD和GND。RS232采用负逻辑电平,即-15V-3V代表逻辑"1",+3V+15V代表逻辑"0"。这里的电平,是TxD线(或者RxD线)相对于GND的电压。(关于物理接口,请参考文章:工业串口通信之掀起串口的盖头)

可见,TTL电平和RS232电平,无论是在电压范围还是在极性上(RS232是负逻辑)都有很大的不同。显然,这两种电平是不能直接相连的。

为了把单片机的TTL电平转换成RS232电平,通常我们需要一个专用的转换芯片,比如TI公司的MAX3232或者ST公司的ST3232。

下面这张图,是MAX3232的外观与引脚图:

MAX3232一端与单片机的引脚相连,另一端与RS232的串口相连,完成了TTL电平到RS232电平的转换。其原理图如下:

TTL电平
TTL电平是TTL电路输出的电平,其中“TTL”是英文“Transistor-Transistor Logic”的缩写,中文翻译为“晶体管-晶体管逻辑”,因此TTL电路就是“晶体管-晶体管逻辑电路”。
在数字电子技术中,使用晶体管(三极管)可以构成不同的逻辑电路,常见的有“TTL与非门电路”、“TTL或非门电路”、“集电极开路与非门电路”等等。下面这张图,是TTL与非门电路的电路图:

在该电路中,当输入端全是高电平(Ua=Ub=Uc=3.6V)时,T2和T5导通,T3微导通,T4截止,输出电压Uy=0.3V;

当输入端有低电平(例如:Ua=0.3V ,Ub=Uc=3.6V)时,T2和T5截止,T3和T4导通,三极管BE结导通压降为0.7v,则Uy=5V-0.7V-0.7V=3.6V。

我们看到,TTL电路的工作电压是5V,它的输出可以是高电平(3.6V)或者低电平(0.3V)。

由于电平是一个连续变化的电压范围,为了用这种模拟量的电压来表示数字量的逻辑1和逻辑0,TTL电平规定:

对于输出电路:电压大于等于(≥)2.4V为逻辑1;电压小于等于(≤)0.4V为逻辑0;
对于输入电路:电压大于等于(≥)2.0V为逻辑1;电压小于等于(≤)0.8V为逻辑0;

4."USB/TTL转232"模块的工作原理(以CH340芯片为例)

CH340G模块原理图

CH340G_VCC:模块供电点
VCC+5V:从USB取出来的5V电源
VCC+3V3:模块稳压出来的3V3电源(3.0V-3.6V)
(短路VCC+5V到CH340G_VCC:CH340G供电为5V,TTL电平为5V)
(短路VCC+3V3到CH340G_VCC:CH340G供电为3V3,TTL电平为3V3)
CH340G_TXD:串行数据输出
CH340G_RXD:串行数据输入
GND:模块接地(与目标系统地相连)
我们通过RTS#和DTR#两个输出信号来控制STM32IC的BOOT0和

BOOT1两引脚来选择启动模式,如下表:

当烧写程序时,我们希望BOOT0=1,BOOT1=0。当烧写完成后我们希望BOOT0=0,BOOT1=0(这个模式BOOT1可以是0可以是1,这里我们让BOOT1拉低,即整个过程BOOT1都为L接地,简化电路设计)。
这里我们只需考虑BOOT0的高低。

二、USART介绍

通用同步异步收发器(Universal Synchronous Asynchronous Receiver and Transmitter)是一个串行通信设备,可以灵活地与外部设备进行全双工数据交换。有别于 USART 还有一个UART(Universal Asynchronous Receiver and Transmitter),它是在 USART 基础上裁剪掉了同步通信功能,只有异步通信。简单区分同步和异步就是看通信时需不需要对外提供时钟输出,我们平时用的串口通信基本都是 UART。
串行通信一般是以帧格式传输数据,即是一帧一帧的传输,每帧包含有起始信号、数据信息、停止信息,可能还有校验信息。USART 就是对这些传输参数有具体规定,当然也不是只有唯一一个参数值,很多参数值都可以自定义设置,只是增强它的兼容性。
USART功能框图

1.仪器选择

  • STM32核心板103F031C8T6一块
  • usb转串口一块
  • 导线若干,面包板一块

2.操作连线

选取接口为GND、RXD、TXD、3V3
STM32核心板选取端口
G、3.3、A9、A10
对应连接:

GND-G
3V3-3.3
RXD-A9
TXD-A10

3.软件选取

keil 5
野火多功能调试助手
CH34_Install_Windows_v3_4
mcuisp

(1)安装CH34_Install_Windows_v3_4(驱动)

(2)查看是否存在端口

将USB转串口连接到电脑上,打开设备管理器

三、寄存器方式编写hello windows!

1.keil创建项目

具体见:搭建并配置Keil嵌入式开发环境,完成一个基于STM32汇编程序的编写
1)芯片选择STM32F103C8
2)当出现下图时,直接叉掉,不做选择

在文件夹下新建hello.s文件:

2.编写hello.s文件

;RCC寄存器地址映像
RCC_BASE            EQU    0x40021000
RCC_CR              EQU    (RCC_BASE + 0x00)
RCC_CFGR            EQU    (RCC_BASE + 0x04)
RCC_CIR             EQU    (RCC_BASE + 0x08)
RCC_APB2RSTR        EQU    (RCC_BASE + 0x0C)
RCC_APB1RSTR        EQU    (RCC_BASE + 0x10)
RCC_AHBENR          EQU    (RCC_BASE + 0x14)
RCC_APB2ENR         EQU    (RCC_BASE + 0x18)
RCC_APB1ENR         EQU    (RCC_BASE + 0x1C)
RCC_BDCR            EQU    (RCC_BASE + 0x20)
RCC_CSR             EQU    (RCC_BASE + 0x24) ;AFIO寄存器地址映像
AFIO_BASE           EQU    0x40010000
AFIO_EVCR           EQU    (AFIO_BASE + 0x00)
AFIO_MAPR           EQU    (AFIO_BASE + 0x04)
AFIO_EXTICR1        EQU    (AFIO_BASE + 0x08)
AFIO_EXTICR2        EQU    (AFIO_BASE + 0x0C)
AFIO_EXTICR3        EQU    (AFIO_BASE + 0x10)
AFIO_EXTICR4        EQU    (AFIO_BASE + 0x14) ;GPIOA寄存器地址映像
GPIOA_BASE          EQU    0x40010800
GPIOA_CRL           EQU    (GPIOA_BASE + 0x00)
GPIOA_CRH           EQU    (GPIOA_BASE + 0x04)
GPIOA_IDR           EQU    (GPIOA_BASE + 0x08)
GPIOA_ODR           EQU    (GPIOA_BASE + 0x0C)
GPIOA_BSRR          EQU    (GPIOA_BASE + 0x10)
GPIOA_BRR           EQU    (GPIOA_BASE + 0x14)
GPIOA_LCKR          EQU    (GPIOA_BASE + 0x18) ;GPIO C口控制
GPIOC_BASE          EQU    0x40011000
GPIOC_CRL           EQU    (GPIOC_BASE + 0x00)
GPIOC_CRH           EQU    (GPIOC_BASE + 0x04)
GPIOC_IDR           EQU    (GPIOC_BASE + 0x08)
GPIOC_ODR           EQU    (GPIOC_BASE + 0x0C)
GPIOC_BSRR          EQU    (GPIOC_BASE + 0x10)
GPIOC_BRR           EQU    (GPIOC_BASE + 0x14)
GPIOC_LCKR          EQU    (GPIOC_BASE + 0x18) ;串口1控制
USART1_BASE         EQU    0x40013800
USART1_SR           EQU    (USART1_BASE + 0x00)
USART1_DR           EQU    (USART1_BASE + 0x04)
USART1_BRR          EQU    (USART1_BASE + 0x08)
USART1_CR1          EQU    (USART1_BASE + 0x0c)
USART1_CR2          EQU    (USART1_BASE + 0x10)
USART1_CR3          EQU    (USART1_BASE + 0x14)
USART1_GTPR         EQU    (USART1_BASE + 0x18) ;NVIC寄存器地址
NVIC_BASE           EQU    0xE000E000
NVIC_SETEN          EQU    (NVIC_BASE + 0x0010)
;SETENA寄存器阵列的起始地址
NVIC_IRQPRI         EQU    (NVIC_BASE + 0x0400)
;中断优先级寄存器阵列的起始地址
NVIC_VECTTBL        EQU    (NVIC_BASE + 0x0D08)
;向量表偏移寄存器的地址
NVIC_AIRCR          EQU    (NVIC_BASE + 0x0D0C)
;应用程序中断及复位控制寄存器的地址
SETENA0             EQU    0xE000E100
SETENA1             EQU    0xE000E104 ;SysTick寄存器地址
SysTick_BASE        EQU    0xE000E010
SYSTICKCSR          EQU    (SysTick_BASE + 0x00)
SYSTICKRVR          EQU    (SysTick_BASE + 0x04) ;FLASH缓冲寄存器地址映像
FLASH_ACR           EQU    0x40022000 ;SCB_BASE           EQU    (SCS_BASE + 0x0D00) MSP_TOP             EQU    0x20005000
;主堆栈起始值
PSP_TOP             EQU    0x20004E00
;进程堆栈起始值             BitAlias_BASE       EQU    0x22000000
;位带别名区起始地址
Flag1               EQU    0x20000200
b_flas              EQU    (BitAlias_BASE + (0x200*32) + (0*4))
;位地址
b_05s               EQU    (BitAlias_BASE + (0x200*32) + (1*4))
;位地址
DlyI                EQU    0x20000204
DlyJ                EQU    0x20000208
DlyK                EQU    0x2000020C
SysTim              EQU    0x20000210 ;常数定义
Bit0                EQU    0x00000001
Bit1                EQU    0x00000002
Bit2                EQU    0x00000004
Bit3                EQU    0x00000008
Bit4                EQU    0x00000010
Bit5                EQU    0x00000020
Bit6                EQU    0x00000040
Bit7                EQU    0x00000080
Bit8                EQU    0x00000100
Bit9                EQU    0x00000200
Bit10               EQU    0x00000400
Bit11               EQU    0x00000800
Bit12               EQU    0x00001000
Bit13               EQU    0x00002000
Bit14               EQU    0x00004000
Bit15               EQU    0x00008000
Bit16               EQU    0x00010000
Bit17               EQU    0x00020000
Bit18               EQU    0x00040000
Bit19               EQU    0x00080000
Bit20               EQU    0x00100000
Bit21               EQU    0x00200000
Bit22               EQU    0x00400000
Bit23               EQU    0x00800000
Bit24               EQU    0x01000000
Bit25               EQU    0x02000000
Bit26               EQU    0x04000000
Bit27               EQU    0x08000000
Bit28               EQU    0x10000000
Bit29               EQU    0x20000000
Bit30               EQU    0x40000000
Bit31               EQU    0x80000000 ;向量表 AREA RESET, DATA, READONLY DCD    MSP_TOP            ;初始化主堆栈 DCD    Start              ;复位向量 DCD    NMI_Handler        ;NMI Handler DCD    HardFault_Handler  ;Hard Fault Handler DCD    0                   DCD    0 DCD    0 DCD    0 DCD    0 DCD    0 DCD    0 DCD    0 DCD    0 DCD    0 DCD    0 DCD    SysTick_Handler    ;SysTick Handler SPACE  20                 ;预留空间20字节 ;代码段 AREA |.text|, CODE, READONLY ;主程序开始 ENTRY                            ;指示程序从这里开始执行
Start ;时钟系统设置 ldr    r0, =RCC_CR ldr    r1, [r0] orr    r1, #Bit16 str    r1, [r0] ;开启外部晶振使能  ;启动外部8M晶振 ClkOk           ldr    r1, [r0] ands   r1, #Bit17 beq    ClkOk ;等待外部晶振就绪 ldr    r1,[r0] orr    r1,#Bit17 str    r1,[r0] ;FLASH缓冲器 ldr    r0, =FLASH_ACR mov    r1, #0x00000032 str    r1, [r0] ;设置PLL锁相环倍率为7,HSE输入不分频 ldr    r0, =RCC_CFGR ldr    r1, [r0] orr    r1, #(Bit18 :OR: Bit19 :OR: Bit20 :OR: Bit16 :OR: Bit14) orr    r1, #Bit10 str    r1, [r0] ;启动PLL锁相环 ldr    r0, =RCC_CR ldr    r1, [r0] orr    r1, #Bit24 str    r1, [r0]
PllOk ldr    r1, [r0] ands   r1, #Bit25 beq    PllOk ;选择PLL时钟作为系统时钟 ldr    r0, =RCC_CFGR ldr    r1, [r0] orr    r1, #(Bit18 :OR: Bit19 :OR: Bit20 :OR: Bit16 :OR: Bit14) orr    r1, #Bit10 orr    r1, #Bit1 str    r1, [r0] ;其它RCC相关设置 ldr    r0, =RCC_APB2ENR mov    r1, #(Bit14 :OR: Bit4 :OR: Bit2) str    r1, [r0]      ;IO端口设置 ldr    r0, =GPIOC_CRL ldr    r1, [r0] orr    r1, #(Bit28 :OR: Bit29)          ;PC.7输出模式,最大速度50MHz  and    r1, #(~Bit30 & ~Bit31)   ;PC.7通用推挽输出模式 str    r1, [r0] ;PA9串口0发射脚 ldr    r0, =GPIOA_CRH ldr    r1, [r0] orr    r1, #(Bit4 :OR: Bit5)          ;PA.9输出模式,最大速度50MHz  orr    r1, #Bit7 and    r1, #~Bit6 ;10:复用功能推挽输出模式 str    r1, [r0]    ldr    r0, =USART1_BRR   mov    r1, #0x271 str    r1, [r0] ;配置波特率-> 115200 ldr    r0, =USART1_CR1   mov    r1, #0x200c str    r1, [r0] ;USART模块总使能 发送与接收使能 ;71 02 00 00   2c 20 00 00 ;AFIO 参数设置             ;Systick 参数设置 ldr    r0, =SYSTICKRVR           ;Systick装初值 mov    r1, #9000 str    r1, [r0] ldr    r0, =SYSTICKCSR           ;设定,启动Systick mov    r1, #0x03 str    r1, [r0] ;NVIC                     ;ldr   r0, =SETENA0 ;mov   r1, 0x00800000 ;str   r1, [r0] ;ldr   r0, =SETENA1 ;mov   r1, #0x00000100 ;str   r1, [r0] ;切换成用户级线程序模式 ldr    r0, =PSP_TOP                   ;初始化线程堆栈 msr    psp, r0 mov    r0, #3 msr    control, r0 ;初始化SRAM寄存器 mov    r1, #0 ldr    r0, =Flag1 str    r1, [r0] ldr    r0, =DlyI str    r1, [r0] ldr    r0, =DlyJ str    r1, [r0] ldr    r0, =DlyK str    r1, [r0] ldr    r0, =SysTim str    r1, [r0] ;主循环
main            ldr    r0, =Flag1 ldr    r1, [r0] tst    r1, #Bit1                 ;SysTick产生0.5s,置位bit 1 beq    main                  ;0.5s标志还没有置位       ;0.5s标志已经置位 ldr    r0, =b_05s                ;位带操作清零0.5s标志 mov    r1, #0 str    r1, [r0] bl     LedFlas mov    r0, #'H' bl     send_a_charmov    r0, #'e' bl     send_a_charmov    r0, #'l' bl     send_a_charmov    r0, #'l' bl     send_a_charmov    r0, #'o' bl     send_a_charmov    r0, #' ' bl     send_a_charmov    r0, #'w' bl     send_a_charmov    r0, #'i' bl     send_a_charmov    r0, #'n' bl     send_a_charmov    r0, #'d' bl     send_a_charmov    r0, #'o' bl     send_a_charmov    r0, #'w' bl     send_a_charmov    r0, #'s' bl     send_a_charmov    r0, #'!' bl     send_a_charmov    r0, #'\n' bl     send_a_charb      main;子程序 串口1发送一个字符
send_a_char push   {r0 - r3} ldr    r2, =USART1_DR   str    r0, [r2]
b1 ldr    r2, =USART1_SR  ldr    r2, [r2] tst    r2, #0x40 beq    b1 ;发送完成(Transmission complete)等待 pop    {r0 - r3} bx     lr ;子程序 led闪烁
LedFlas      push   {r0 - r3} ldr    r0, =Flag1 ldr    r1, [r0] tst    r1, #Bit0 ;bit0 闪烁标志位 beq    ONLED        ;为0 打开led灯 ;为1 关闭led灯 ldr    r0, =b_flas mov    r1, #0 str    r1, [r0] ;闪烁标志位置为0,下一状态为打开灯 ;PC.7输出0 ldr    r0, =GPIOC_BRR ldr    r1, [r0] orr    r1, #Bit7 str    r1, [r0] b      LedEx
ONLED       ;为0 打开led灯 ldr    r0, =b_flas mov    r1, #1 str    r1, [r0] ;闪烁标志位置为1,下一状态为关闭灯 ;PC.7输出1 ldr    r0, =GPIOC_BSRR ldr    r1, [r0] orr    r1, #Bit7 str    r1, [r0]
LedEx        pop    {r0 - r3} bx     lr ;异常程序
NMI_Handler bx     lr HardFault_Handler bx     lr SysTick_Handler ldr    r0, =SysTim ldr    r1, [r0] add    r1, #1 str    r1, [r0] cmp    r1, #500 bcc    TickExit mov    r1, #0 str    r1, [r0] ldr    r0, =b_05s  ;大于等于500次 清零时钟滴答计数器 设置0.5s标志位 ;位带操作置1 mov    r1, #1 str    r1, [r0]
TickExit    bx     lr ALIGN            ;通过用零或空指令NOP填充,来使当前位置与一个指定的边界对齐 END

编译,没有错误:

3.程序烧录

创建.hex文件:

BOOT0置1,BOOT1置0,,打开mcuisp,选择文件路径,进行烧录:

4.串口调试

BOOT0置0,BOOT1置1,打开野火多功能调试助手:

5.观察波形

设置参数:

添加要观察的引脚:

观察波形:

四、总结

通过这次实验,让我对串口通信有了初步的认识,但是汇编的代码是借鉴的别人的,还需要加强学习和实验

五、参考资料

https://blog.csdn.net/qq_43279579/article/details/112213196
https://blog.csdn.net/qq_43279579/article/details/112233696
https://blog.csdn.net/ssj925319/article/details/111984002
https://blog.csdn.net/vic_to_ry/article/details/110451036

STM32最小核心板F103串口通信USART相关推荐

  1. C语言使用stm32最小开发板点亮流水灯

    目录 一.实验准备 二.寻找地址 三.编写程序 1.打开keil5创建一个工程选择芯片(我这里用的stm32F103c8) 2.设置芯片参数 3.添加函数文件 4.编写代码 5.编译,生成hex文件 ...

  2. STM32串口通信USART练习

    文章目录 一.STM32的USART介绍 二.USART串口通信实践 1.任务要求 2.所用器材 3.主要代码 4.代码解析 三.效果展示 四.总结 五.参考资料 一.STM32的USART介绍 通用 ...

  3. STM32最小系统核心板(STM32F103C8T6)实现流水灯

    文章目录 一.题目要求 二.STM32简介 三.GPIO初始化 1.输入输出模式和输出速率设置 (1)找到GPIOA.GPIOB.GPIOC的地址 (2)配置对应引脚寄存器,基地址+偏移量 (3)设置 ...

  4. 安卓开发板之串口通信,通过modbus Rtu协议控制下位机

    安卓开发板之串口通信,通过modbus Rtu协议控制下位机 1.环境准备 2.编写串口操作核心类 3.编写测试类 前言:因为公司最近有个人脸识别门禁的项目,这个项目主要业务是实现远程人脸注册,管理员 ...

  5. linux gpio 模拟串口,STM32的GPIO口模拟串口通信.rar

    [实例简介] 利用GPIO.EXTI外部中断.TIM定时器实现URAT串口,该例子来自21IC网,未做改动,明天自己调试,看看效果 完全是根据UART协议编写 [实例截图] [核心代码] STM32的 ...

  6. Proteus模拟STM32F103R6微控制器之串口通信USART的方法

    Proteus模拟STM32F103R6微控制器之串口通信USART的方法,实验环境如下: 模拟软件:Proteus 8.11 SP0 开发环境:Keil MDK 5.33 参考资料:ST公司官方参考 ...

  7. Proteus仿真stm32和51单片机,串口通信调试过程记录

    前言 本文所用Proteus版本为8.10,主要内容为在Proteus中仿真stm32和51单片机进行串口通信,记录了仿真过程中遇到的问题和解决办法.        这里要注意的是,在Proteus中 ...

  8. 从0到1入门STM32最小系统板(0)——前言

    从0到1入门STM32最小系统板--前言 这个系列的文章将从0开始制作一个STM32最小系统板,大概分为如下几个部分: 元件简述: 原理图绘制: PCB布局: 打板焊接: 本篇文章主要讲解一下最小系统 ...

  9. PCB设计之STM32最小系统板

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 PCB设计之STM32最小系统板 文章目录 文章目录 一.AD版本 二.PCB之原理图绘制步骤 1.STM32F103C8T6最小系统 ...

最新文章

  1. 万字干货:如何从零开始构建企业级推荐系统?
  2. 2018年阿里妈妈搜索广告转化预测
  3. CISCO路由器ADSL拨号配置
  4. MySQL数据备份方式,及热备与冷备的优缺点
  5. 如何编写第一个 ngrx Effect 类
  6. 记一次小程序富文本的小小优化
  7. MySQL主从复制故障解决
  8. hive - 解析 json
  9. B样条曲线介绍和实现(等值线平滑)
  10. 美团的大数据产品,互联网的数字化转型,如何从0做到100?
  11. 对比学习Python实现
  12. 深入浅出数据分析 - 数据分析引言
  13. Nessus下载离线升级包all-2.0 .tar.gz方法
  14. win11右键菜单缺少“新建“选项解决办法
  15. 027. 从从门槛和可复制性聊聊生意模式
  16. 如何提高用户粘性,增强活跃度?
  17. us news2017计算机科学,2017年USNews最新美国大学计算机专业研究生排名TOP120
  18. 英语语音篇 - 特殊发音记录
  19. 蓝牙bluetoothGatt.disconnect()和bluetoothGatt.close()两个方法的区别
  20. 【GitHub学生包优惠申请】学生党“白嫖”GitHub攻略2022年6月

热门文章

  1. 千瓜深度解读:2020小红书双十一全行业“种草”、“拔草”投放攻略
  2. 机器学习实战二:波士顿房价预测 Boston Housing
  3. phpyun 模板判断
  4. Linux部署Python项目
  5. 宝塔面板上行下行,总发送总接收是什么意思?
  6. python试卷(有答案版本、个人答案不是官方答案)_python试卷(有答案版本,个人答案不是官方答案)...
  7. 这谁顶得住啊,数学运算原来是这样实现的
  8. 实现浏览器支持各种视频格式文件播放
  9. Jetson Xavier NX设备上利用opencv进行多海康摄像头的捕获的部署方法
  10. html+css制作3D旋转正方体特效