韦东山学习笔记——UART(串口)的使用

基于jz2440的串口使用

  • 搬砖的文章
  • 概述
    • UART的发送和接收
    • 串口之间的数据传输
    • UART的用途
    • 串口的数据帧参数说明
      • 起始位
      • 数据位
      • 奇偶校验位
      • 停止位
      • 波特率
    • 怎么发送一字节数据,比如‘A‘?
    • UART的优缺点
      • 优点
      • 缺点
  • UART相关配置寄存器
    • ULCONn:线路控制寄存器
    • UCONn:控制寄存器
    • UFCONn:FIFO控制寄存器
    • UMCONn:MODEM控制寄存器
    • UTRSTATn:收发状态寄存器
    • UERSTATn:错误状态寄存器
    • UFSTATn:FIFO状态寄存器
    • UMSTATn:Modem状态寄存器
    • UTXHn/URXHn:传输缓冲寄存器
    • UBRDIV:波特率除数寄存器
    • 关于中断
    • FIFO与非FIFO的区别
    • 自动流控制(AFC)
  • UART通讯编程

搬砖的文章

我只是代码的搬运工,为了学习而做的笔记。若是大家有补充的,希望留言,我会一一补充,下面的都是搬砖的文章,都非常优秀,建议查看

1、收藏!了解UART总线工作原理看这一篇就够了!
2、Part4:串口(UART)通信原理与硬件编程
3、韦东山——第011课 Jz2400串口(UART)的使用
4、UART原理
5、ARM硬件结构
6、UART串口异步通信驱动编程
7、s3c2440A开发板UART总结以及UART代码详解(寄存器方面)

概述

UART(Universal Asynchronous Receiver/Transmitter)是一种异步串口IO端口(Asynchronous Serial I/O PORT),每个SOC上可支持多个独立的UART,每个独立的UART的特性如下:
(1)每个UART PORT可基于中断或者DMA来工作,也就是UART可生成中断或者DMA请求,再内存和UART间进行数据的传输;
(2)可编程的波特率、红外传输(接收)、1~2个停止位、5-8个bit数据位宽、校验位(奇偶校验)
(3)主要组成部分是控制单元,接收器、发送器,发送器,波特率生成器

要发送数据时,CPU控制内存要发送的数据通过FIFO传给UART单位,UART里面的移位器,依次将数据发送出去,在发送完成后产生中断提醒CPU传输完成。

接收数据时,获取接收引脚的电平,逐位放进接收移位器,再放入FIFO,写入内存。在接收完成后产生中断提醒CPU传输完成。

UART的发送和接收

UART传输数据依靠的是UART总线,数据总线用于通过CPU,存储器或微控制器等其他设备将数据发送到UART。数据以并行形式从数据总线传输到发送UART。在发送UART从数据总线获得并行数据之后,它将添加起始位,奇偶校验位和停止位,从而创建数据包。接下来,数据包在Tx引脚上逐位串行输出。UART接收端则在其Rx引脚上逐位读取数据包。然后,接收UART将数据转换回并行形式,并删除起始位,奇偶校验位和停止位。最后,接收UART将数据包并行传输到接收端的数据总线。
在这里插入图片描述

串口之间的数据传输

在这里插入图片描述

  • 通过TxD->RxD把ARM开发板要发送的信息发送给PC机。
  • 通过RxD->TxD线把PC机要发送的信息发送给ARM开发板。
  • 最下面的地线统一参考地。

UART的用途

  • 打印调试信息;
  • 外接各种模块:GPS、蓝牙;

串口的数据帧参数说明

UART传输的数据被组织成数据包。每个数据包包含1个起始位,5到9个数据位(取决于UART),可选的奇偶校验位以及1或2个停止位:

在这里插入图片描述

起始位

当UART数据传输线不传输数据时,它通常保持在高电压电平。为了开始数据传输,发送UART将传输线从高电平拉至低电平一个时钟周期。当接收UART检测到高电压到低电压转换时,它开始以波特率的频率读取数据帧中的位。

由1个逻辑 0 的数据位表示
先发出一个逻辑“0”的信号,表示传输字符开始。

数据位

数据框包含要传输的实际数据。如果使用奇偶校验位,则它可以是5位到8位长。如果不使用奇偶校验位,则数据帧可以是9位长。在大多数情况下,数据首先以最低有效位发送。

在起始位后紧接着的就是有效数据,有效数据的长度常被约定为 5、 6、 7 或 8 位长

奇偶校验位

奇偶校验描述数字的均匀性或奇数。奇偶校验位是接收UART在传输过程中判断是否有任何数据发生变化的一种方法。电磁辐射、不匹配的波特率或长距离传输时,数据都有可能发生变化。接收UART读取数据帧后,它会计算值为1的位数,并检查总数是偶数还是奇数。如果奇偶校验位为0(偶校验),则数据帧中的1位应总计为偶数。如果奇偶校验位是1(奇校验),则数据帧中的1位应总计为奇数。当奇偶校验位与数据匹配时,UART知道传输没有错误。但如果奇偶校验位为0,然而1位应总计为奇数;或者奇偶校验位是1,并且1位应总计是偶数,则数据帧中的位已经改变。

可选,为的是数据的抗干扰性。
校验方法分为:

  • 1、奇校验(odd),有效数据和校验位中“ 1”的个数为奇数
  • 2、偶校验(even) ,有效数据和校验位中“ 1”的个数为偶数
  • 3、0 校验(space),不管有效数据中的内容是什么,校验位总为“ 0”
  • 4、1校验(mark),不管有效数据中的内容是什么,校验位总为“ 1”
  • 5、无校验(noparity)
  • 空闲位,总是保持逻辑1

停止位

为了通知传输数据包的结束,UART发送端会将数据传输线从低电压驱动至高电压至少两位持续时间。它是一个字符数据的结束标志。

由 0.5、 1、 1.5 或 2 个逻辑 1 的数据位表示

波特率

波特率(Baud rate):一般选波特率都会有9600,19200,115200等选项。其实意思就是每秒传输这么多个比特位数(bit)。约定彼此收发数据的频率,即每1bit所占时间的约定
在这里插入图片描述

怎么发送一字节数据,比如‘A‘?

A 的ASCII值是0x41,二进制就是01000001,怎样把这8位数据发送给PC机呢?

  • 双方约定好波特率(每一位占据的时间);
  • 规定传输协议

当UART数据传输线不传输数据时,它通常保持在高电压电平。为了开始数据传输,发送UART将传输线从高电平拉至低电平一个时钟周期。

逻辑电平就是说代表信号1的引脚电平是人为规定的。

  • 注:在xV至5V之间,就认为是逻辑1,在0V至yV之间就为逻辑0。 如图是TTL/CMOS逻辑电平下,传输‘A’时的波形:

在这里插入图片描述

UART的优缺点

优点

  • 只使用两根电线
  • 不需要时钟信号
  • 有一个奇偶校验位
  • 只要双方设置后,就可以改变数据包的结构
  • 有完整的文档并且具有广泛的使用

缺点

  • 数据帧的大小限制为最多9位
  • 不支持多个从属或多个主系统
  • 每个UART的波特率必须在10%之内

UART相关配置寄存器

uart各个寄存器各个位的含义

ULCONn:线路控制寄存器

ULCONn:线路控制寄存器,用于设定线路的字长度、停止位个数、奇偶校验方式、是否使用红外模式。(看的书中翻译成“线性控制寄存器”,我感觉是不正确的)
在这里插入图片描述
我在jz2440里配置为:

  • ①取消红外线模式(Infrared Mode)
  • ②无奇偶校验(Parity Mode)
  • ③一个停止位(Number of Stop Bit)
  • ④八个数据位(Word Length)

UCONn:控制寄存器

UCONn: 控制寄存器,用于设定操作模式(中断或轮询/DMA)、环回模式、中断方式、时钟选择。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
我在jz2440里配置为:

  • 时钟设置为PCLK(Clock Selection)
  • 中断脉冲触发(Tx/Rx Interrupt Type)
  • 接收超时中断不允许(Tx/Rx Error Status Interrupt Enable)
  • 接收超时中断不允许(Rx Time Out Enable)
  • 不产生接收错误中断(Rx Error Status Interrupt Enable)
  • 设置正常模式,不使用环回模式(Loopback Mode)
  • 设置正常模式,不启动间断发送(Send Break Signal)
  • 发送/接收模式设置为中断请求或轮询模式(Transmit/Receive Mode)

UFCONn:FIFO控制寄存器

UFCONn:FIFO控制寄存器,用于控制FIFO操作方式,如是否使用FIFO以及触发级别。
在这里插入图片描述
这里我们不使用FIFO不用设置,默认即可。

由于我们需要大量数据的传输时,才使用FIFO,若是传输几个字节的数据时,不必启用FIFO。

UMCONn:MODEM控制寄存器

UMCONn:Modem控制寄存器,用于设置是否使用AFC(自动流控制)和RTS。TTL2是不支持流控制的,所以没有UMCON2寄存器。
在这里插入图片描述
我们不设置,所以就默认值就好。

UTRSTATn:收发状态寄存器

UTRSTATn:收发状态寄存器,可从中读取收发保持寄存器的状态,即是否有数据,仅在非FIFO模式下使用。
在这里插入图片描述

在这里插入图片描述
我们判断在[2]位是否存在数据

UERSTATn:错误状态寄存器

UERSTATn:错误状态寄存器,可从中读取接收错误状态。
在这里插入图片描述
我们不设置,所以就默认值就好。

UFSTATn:FIFO状态寄存器

UFSTATn:FIFO状态寄存器,可从中读取FIFO状态信息,用于FIFO模式。
在这里插入图片描述
我们不设置,所以就默认值就好。

UMSTATn:Modem状态寄存器

UMSTATn:Modem状态寄存器,可从中读取Modem状态,即CTS信号状态。TTL2不支持流控制,所以没有UMSTAT2寄存器。
在这里插入图片描述
我们不设置,所以就默认值就好。

UTXHn/URXHn:传输缓冲寄存器

UTXHn和URXHn:收发保持(对非FIFO模式)和缓冲(对FIFO模式)寄存器,用于收发数据。

在UART块中有三个UART传输缓冲区寄存器,包括UTXH0、UTXH1和UTXH2。UTXHn有一个用于传输数据的8位数据。
在这里插入图片描述
在这里插入图片描述

UBRDIV:波特率除数寄存器

UBRDIV:波特率除数寄存器,用于设定串口通信波特率。
在这里插入图片描述
我们根据波特率以及一些参数算出最终的值写入这个寄存器即可。

关于中断

  • 边沿(脉冲?)触发:一旦(as soon as)Tx缓冲区变为(becomes)空(非FIFO模式)或者达到(reaches)Tx FIFO触发级别(FIFO模式),则请求中断。注意,这里的“一旦”不仅限定前半句(非FIFO模式),也限定后半句(FIFO模式)。“一旦”与“变为”和“达到”连接起来,表示的是一个时间点,一个变化过程,是变为空或者达到触发级别的时间点或者说变化过程中请求中断。这个时间点过后,或者变化完成后,就不再请求中断了。只要处理中断后,清除源未决寄存器(SRCPND)和中断寄存器(INTPND)的相关位,就不会再有中断发生了。

  • 电平触发:当(while)Tx缓冲区为空(非FIFO模式)或者达到Tx FIFO触发级别,则请求中断。这里的“当”限定前半句和后半句。“当”表示的是一种状态,是处于缓冲区空或者达到Tx FIFO触发级别的状态的时候,就请求中断。处理中断后,即使清除了源未决寄存器(SRCPND)和中断寄存器(INTPND)的相关位,只要这种状态存在,就一直请求中断,即会再次发起中断请求。只有不存在这种状态了,才不会再发起中断请求。

FIFO与非FIFO的区别

  • S3C2440A的UART内部对于接收和发送各有64字节的缓冲区,当使用FIFO模式时,UART将使用这个缓冲区进行数据暂存操作,这样可以增加数据吞吐量,提高传输速率。其实,非FIFO模式也可以看作是特殊的FIFO模式,即只有一个字节缓冲区的FIFO模式。二者的主要不同在于读取缓冲区状态的方式:非FIFO模式下,通过UTRSTAT寄存器得知收发缓冲区状态;FIFO模式下,则从UFSTAT寄存器获得缓冲区状态。要注意的是,在FIFO模式下,只有达到触发级别后才会发起Rx或Tx中断。比如说,如果设置接收触发级别为16字节,则只有在接收缓冲区中有16个字节以上数据时,才会发起Rx中断请求。如果需要进行输入回显,则可能导致不能立即回显用户在串口工具中输入的字符。

自动流控制(AFC)

  • AFC(Auto Flow Control):自动流控制。S3C44BoX中的UART用nRTS(发送请求信号)和nCTS(清除发送信号)来支持自动流控制,以此实现UART之间的互联。

  • 自动流控制涉及到RTS和CTS,我查了下相关缩写的含义:

  • DTE:Data Terminal Equipment,数据终端设备,一般指计算机。

  • DCE:Data Communication Equipment,数据通信设备,一般是调制解调器(Modem)。

  • DTR:Data Terminal Ready,数据终端就绪,DTE向DCE发送这个信号表示已经准备就绪。

  • DSR:Data Set Ready,数据设备就绪,DCE向DTE发送这个信号表示已经准备就绪。

  • RTS:Request To Send,请求发送,DTE向DCE请求发送数据。

  • CTS:Clear To Send,清除发送,DCE向DTE表示准备就绪,可以接收数据了。

UART通讯编程

我们所使用的时RX0/TX0,所对应的引脚位GPH2、GPH3。
在这里插入图片描述
在这里插入图片描述
这里的GPHCON 之类的变量是自己定义的宏定义,比如把指针地址直接定义为一些宏定义,这样就方便以及隐藏地址,本质还是地址

在这里插入图片描述

代码如下:

#include "s3c2440.h"void uart0_init(){/* 设置引脚用于串口 *//* GPH2,3用于TxD0, RxD0 */GPHCON &= ~((3<<4)|(3<<6));GPHCON |= ((1<<4)|(1<<6));GPHUP &= ~((1<<2)|(1<<3));	//使能内部上拉/* * ULCONn:线路控制寄存器* 根据寄存器的[7:0]的数据位的配置可知为:000011也就是3*/ULCON0 = 0x03;/** UCONn:控制寄存器* 根据寄存器的[15:0]的数据位可知的配置位:0000 00 0 0 0 0 0 0 01 01也就是5*/UCON0 = 0x05;/* UFCONn:FIFO控制寄存器* * ->因为我们还没有使用FIFO,所以就暂时不设置<-*//* UMCONn:MODEM控制寄存器* * ->因为我们还没有使用MODEM,所以就暂时不设置<-*//* UERSTATn:错误状态寄存器* * ->因为我们还没有用到,所以就暂时不设置<-*//* UFSTATn:FIFO状态寄存器* * ->因为我们还没有用到,所以就暂时不设置<-*//* UMSTATn:Modem状态寄存器* * ->因为我们还没有用到,所以就暂时不设置<-*//* UBRDIV:波特率除数寄存器* * 设置波特率* UBRDIVn = (int)( UART clock / ( buad rate x 16) ) –1* UART clock = 50M* UBRDIVn = (int)( 50000000 / ( 115200 x 16) ) –1 = 26**/UBRDIV0 = 26;}/** UTXHn/URXHn:传输缓冲寄存器 ,用来发送接收数据的缓冲区。这里的UTXH0_B,以及UTXH0_L表示采用大尾端还是小尾端**判断UTRSTAT0里的[2]是否为1:若是为1,则表示里面的发送缓冲和发送移位寄存器时为空,则表示可以出发送数据,若是为0,表明有数据,死循环等待。* L是指尾端(endian)模式是小尾端模式* B是指尾端(endian)模式是大尾端模式* 大小尾端:大尾端是指数据的低位(就是权值较小的后面那几位)保存在内存的高地址中,而数据的高位,保存在内存的低地址中。小尾端反之*/
int putchar(char c){while(!(UTRSTAT0 & (1<<2));UTXH0_STR_B = (unsigned char)c;//这里的UTXH0_STR_B也就是传输缓冲寄存器}int getchar(void){while(!(UTRSTAT0 & (1<<0)));return URXH0_STR_B;//这里的URXH0_STR_B也就是传输缓冲寄存器}int putstring(const char *c){while (*s){putchar(*s);s++;}}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/36242.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

来自韦神的降维打击

我是卢松松&#xff0c;点点上面的头像&#xff0c;欢迎关注我哦&#xff01; 能与这样一个不修边幅的&#xff0c;如此年轻的大神&#xff0c;生活在一个时代&#xff0c;听他的故事是一种享受。网传近日韦神帮6个博士团队解决了4个多月都没有解决的难题。 大家应该都听说北…

分享一些新型AI工具让你大开眼界

我打赌99%的人都不熟悉这些工具中的任何一个 在数字化时代&#xff0c;人工智能已经成为推动企业成功的关键驱动力。因此&#xff0c;越来越多的企业正在探索如何将AI技术应用于他们的业务中。随着人工智能技术的不断发展&#xff0c;AI相关的工具和技术的应用场景也变得越来越…

微软 Office 全家桶被 GPT-4 革新:Word 一键变成 PPT,打工人的春天来了!

作者 | 屠敏 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 这一周的科技圈异常地热闹&#xff0c;且多数都是大模型给的&#xff1a; 周二晚间&#xff0c;OpenAI 突然上线 GPT-4 最强大模型&#xff0c;以多模态的能力震惊四座&#xff1b; 周四下午&#x…

同样将AI装进“办公全家桶”,Microsoft 与 Google有何不同?

继GPT-4发布之后&#xff0c;北美时间3月16日&#xff0c;微软在“The Future of Work With AI”大会上发布了Microsoft 365 Copilot&#xff0c;再次掀起一股科技圈浪潮。 据介绍&#xff0c;Microsoft 365 Copilot是一种基于大语言模型开发的AI产品&#xff0c;功能类似ChatG…

【无标题】ONLYOFFICE7.3版本新函数CHOOSEROWS和CHOOSECOLS的正确使用方法

有很多朋友在工作中都会遇到函数公式不会做或者忘记的问题&#xff0c;今天就来给大家看一看ONLYOFFICE7.3版本更新后的新函数CHOOSEROWS和CHOOSECOLS的正确使用方法&#xff0c;全程干货记得保存。 ONLYOFFICE ONLYOFFICE是一款国际开源的免费办公软件&#xff0c;不仅支持日常…

分享一下自己做电影解说的步骤流程和经验,小白必看!

因为工作的关系&#xff0c;视频制作剪辑之类的工作那是经常做&#xff0c;看到有不少朋友好像对这个挺感兴趣的就给大家分享一下&#xff0c;希望可以帮助大家。 文章涉及三个部分&#xff1a; 目录 一、整体流程 二、我遇见过的难点和解决办法 三、整理的工具汇总 一、整…

chatgpt赋能python:Python从后往前读文件:如何处理大数据文件

Python 从后往前读文件: 如何处理大数据文件 Python 是一种非常流行的编程语言&#xff0c;常用于处理大量的数据。在处理大数据文件时&#xff0c;Python提供了一种读取文件的方法&#xff0c;可以从后往前读取文件&#xff0c;这种方法在处理大量数据时非常有用。本文将介绍…

微信称不会推出「已读」功能;马斯克宣布成立 AI 公司 xAI;GPT-4 架构曝光,有 1.8 万亿参数|极客头条...

「极客头条」—— 技术人员的新闻圈&#xff01; CSDN 的读者朋友们早上好哇&#xff0c;「极客头条」来啦&#xff0c;快来看今天都有哪些值得我们技术人关注的重要新闻吧。 整理 | 梦依丹 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 一分钟速览新闻点&#…

亚马逊裁员9000人、OpenAI估值已达290亿美元、首例涉虚拟数字人侵权案

一、2023-04-27&#xff0c; 亚马逊裁员9000人 这是亚马逊第二次裁员了。亚马逊的第一次裁员始于去年11月&#xff0c;持续两个多月&#xff0c;裁员了18000人&#xff0c;规模在所有IT公司里面是最大的。 但是这样一次裁员&#xff0c;造成了很多内部高层领导的不满。因为亚马…

为什么对ChatGPT、ChatGLM这样的大语言模型说“你是某某领域专家”,它的回答会有效得多?(二)...

“ 介绍神经网络的基本概念和结构&#xff0c;讨论训练实践、技巧以及网络规模的大小对模型能力的影响。同时介绍嵌入&#xff08;Embeddings&#xff09;概念&#xff0c;将高维数据映射到低维空间。通过本文&#xff0c;您将对神经网络有更深入的理解&#xff0c;有助于后面理…

给ChatGPT搞双眼睛,《流浪地球2》MOSS有影儿了

允中 发自 凹非寺量子位 | 公众号 QbitAI 上线不到一周日活跃用户破百万&#xff0c;2个月破亿…… OpenAI的AI聊天机器人ChatGPT火爆全球&#xff0c;成为现象级消费类AI应用&#xff0c;并由此引发新一轮的AI竞赛。 率先卷起来地&#xff0c;当属搜索赛道&#xff1a; 谷歌发…

影视解说文案哪里找?

找到电影解说文案有以下几种方法 1、自己撰写电影解说文案 需要一定的写作水平&#xff0c;如果水平不高&#xff0c;即使辛辛苦苦花大量时间写出来也很难上热门。 2、找专业写手代写解说文案 这种方式两个字烧钱&#xff0c;找别人写解说文案稿2000字~3000字&#xff0c;大…

RM奖励模型

本篇将介绍InstructGPT的RM过程&#xff0c;也就是reward model的训练&#xff0c;废话不多说&#xff0c;直接上干货。 RM(Reward Model)模型 这里引入RM模型的作用是对生成的文本进行打分排序&#xff0c;让模型生成的结果更加符合人类的日常理解习惯&#xff0c;更加符合人…

藏在GPT背后的治理分歧:那些赞同和反对的人们|AI百态(下篇)

AGI的火种正在燎原。 一面是无可否认的AI生产力&#xff0c;正在赋能千行百业&#xff1b;而另一面&#xff0c;这团火似乎烧向了我们不可控的隐秘角落。 在《AI百态&#xff08;上篇&#xff09;——ChatGPT的“N宗罪”》中&#xff0c;我们提到监管重锤在落下&#xff0c;意大…

人工智能写恋爱情话,省时不费脑,也用心(带教程)

用ChatGPT写情话就是让电脑来帮你写一些浪漫的话&#xff0c;比如表达你对恋人的爱意、想念之情等等。这种技术叫做自然语言生成&#xff0c;它会根据你给出的主题、口吻和语气等因素&#xff0c;自动生成一段与之匹配的情话或情书。 借助ChatGPT写情话&#xff0c;可以让普通人…

chatgpt赋能python:Python语录:解读Python最流行的语言之一

Python语录&#xff1a;解读Python最流行的语言之一 Python是一种简单易用、高效的编程语言&#xff0c;它在全球范围内广泛应用&#xff0c;是最流行的编程语言之一。使用Python进行编程可以提高生产力、节省时间和精力。Python语言有许多优秀的开发者、工程师、爱好者和用户…

英语学习-29190410雅思图表作文写作--line grapgh

主要参考来源&#xff1a;https://www.bilibili.com/video/av23014883?p2 Simon雅思 四段式&#xff1a;introduction overview details details 【no conclusion or opinions】 introduction:直接阐述图描述的内容 overview:找最直观的。一般两句 details:对于曲…

雅思写作大小作文能考到7分是什么样的概念?

雅思7分是什么概念&#xff1f;如何区分雅思作文的分数&#xff1f;雅思写作7分对于很多基础不好的同学来说可能是遥不可及的。对于很多6.5分的同学来说&#xff0c;只是差了一点看不到而已&#xff0c;但总是拿不到7分。接下来小站边肖就和大家分享一下雅思写作达到7分是什么水…

亚马逊跨境电商靠谱吗?需要代运营来入手?进来看就知道了!

亚马逊跨境电商靠谱吗&#xff1f;需要代运营来入手&#xff1f;进来看就知道了&#xff01; 很多人可能不了解亚马逊跨境电商就想着去怎么怎么干&#xff0c;这样是错误的。我们首先要先了解亚马逊&#xff0c;才能更好的了解并走入亚马逊跨境电商&#xff0c;从而走上致富之路…

武汉星起航跨境:亚马逊运营之手动广告的投放方法

首先&#xff0c;一个广告活动&#xff0c;一个广告组&#xff0c;只放一个关键词或一个ASIN&#xff0c;只放一种匹配模式 只有一种竞价策略。就是说一个广告活动里面只放一个关键词&#xff0c;而且只能打开一种匹配模式&#xff0c;竞价策略只有一种。这个对于有一定搜索量有…