整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

SAST Weekly|如何在电设前夕假装自己入门了STM32智能小车

SAST weekly是由电子工程系学生科协推出的科技系列推送,内容涵盖信息领域技术科普、研究前沿热点介绍、科技新闻跟进探索等多个方面,帮助同学们增长姿势,开拓眼界,每周更新,欢迎关注,欢迎愿意分享知识的同学投稿

你是否对刚刚过去的硬件设计大赛意犹未尽?你是否面对即将到来的电子设计大赛蠢蠢欲动却又害怕刚起跑就跌倒?别担心,我们特意准备了这样一篇推送来告诉你如何在电设前夕快速假装自己入门STM32智能小车

提示:代码部分如果看不清可以在底部百度云中找到工程的压缩包

百度网盘文件写入失败_百度网盘文件写入失败原因_百度云不能打开要写入的文件

Chapter 0

假装自己有STM32开发板和模块

本教程使用的STM32开发板芯片型号为,涉及到的模块包括红外对管模块、超声波测距模块(HC-SR04),舵机模块(SG90),电机驱动模块(L293D)。获取这些模块的方式包括但不限于:找学长学姐借、给马云爸爸氪金、加入电子系科协硬件部、参加电子设计大赛。

百度云不能打开要写入的文件_百度网盘文件写入失败原因_百度网盘文件写入失败

Chapter 1:

假装自己搭好了开发环境

配好了工程模板

Keil是单片机程序开发常用的IDE,集成了C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器。开发STM32要做的第一件事就是安装(并破解)Keil,具体操作步骤请借助搜索引擎。

百度云不能打开要写入的文件_百度网盘文件写入失败_百度网盘文件写入失败原因

下一步需要配置与芯片相符的固件库,固件库可以在keil官网上找到,具体的下载安装方法受限于篇幅,大家可以借助搜索引擎寻找相关教程。

之后需要建立对应自己芯片型号的工程模板,该模板可以用于之后此开发板上的各种工程,可以说是一次配置终身受用。需要注意正确配置魔术棒中的相关选项,大部分找不到头文件、无法烧录等问题均是没有正确配置魔术棒导致的,具体操作受限于篇幅,请借助搜索引擎(建议搜索关键词:STM32+新建工程模板)。

最后一步,在配置好工程模板之后需要尝试烧录以测试模板是否建立成功。将工程模板烧入开发板中,需要用到烧录器。这里以ST-LINK作为例子,具体接线方式:SWD-VCC接ST-LINK-3.3V,SWD-GND接ST-LINK-GND, SWD-SWDIO接ST-LINK-SWDIO,SWD-SWCLK接ST-LINK-SWCLK。如果烧录成功就说明工程模板建立完成了。

百度网盘文件写入失败原因_百度云不能打开要写入的文件_百度网盘文件写入失败

百度云不能打开要写入的文件_百度网盘文件写入失败原因_百度网盘文件写入失败

Chapter 2

假装自己会调试串口通信

主要涉及内容:USART

需要的材料:开发板+USB转TTL

难度:

GPIO简要介绍:初学者可以简单理解为芯片对外提供的端口,承担着输入输出的功能,是整个开发板的眼与手。

百度云不能打开要写入的文件_百度网盘文件写入失败原因_百度网盘文件写入失败

我是你的眼(图片来自网络)

USART简要介绍:通用同步/异步串行接收/发送器,通过对USART相关寄存器的设置可以配置波特率、数据位宽、停止位、奇偶校验;通过对GPIO的配置可以定义串口输入、输出引脚。正确配置与接线后可以实现电脑与单片机的串口通信,是调试单片机的重要方式。

USART相关配置

(左侧为头文件部分,右侧为源文件部分)

百度云不能打开要写入的文件_百度网盘文件写入失败原因_百度网盘文件写入失败

若看不清可以在底部百度云链接中找到工程压缩包

代码解读:

定义了GPIO,USART,NVIC的初始化结构体

使能了GPIO和USART的时钟

向结构体写入GPIO配置,TX管脚为悬空输入模式(刚刚讲过悬空是什么@国林gg),RX管脚为推挽复用模式(推挽模式能够真正输出高低电平,由于不是GPIO的基本输入输出而是使用了USART的功能,所以使用复用模式)

向NVIC写入channel和优先级并使能

向结构体写入波特率、数据位宽、停止位、奇偶校验并使能

打开接收中断,打开串口,清除中断标志位。

配置成功接口之后,重定向fputc函数就可以使用熟悉的printf来打印内容了~

百度网盘文件写入失败_百度云不能打开要写入的文件_百度网盘文件写入失败原因

这里需要注意使用printf需要使用头文件stdio.h,keil中对缺省C库进行了高度优化,打开魔术棒->target->Use 就可以使用一些常用的C库函数了。

百度网盘文件写入失败原因_百度网盘文件写入失败_百度云不能打开要写入的文件

中断服务函数配置(即中断后调用的函数):

百度云不能打开要写入的文件_百度网盘文件写入失败_百度网盘文件写入失败原因

if语句确认接受缓冲区非空后可以执行一系列任务,本函数用于返回刚刚收到的指令。

具体效果如下,示例工程为压缩包中的

百度云不能打开要写入的文件_百度网盘文件写入失败_百度网盘文件写入失败原因

百度网盘文件写入失败_百度网盘文件写入失败原因_百度云不能打开要写入的文件

Chapter 3

假装自己会调试红外对管模块

主要涉及内容:GPIO输入

需要的材料:开发板+红外对管模块+USB转TTL

难度:

红外对管模块的简要介绍:当检测到检测距离内存在障碍物时,红外对管上的LED点亮同时OUT引脚持续输出低电平,通过刚刚提到的GPIO的输入功能检测OUT引脚的电平就能够判断障碍物情况。另外,调节对管上的电位器可以调节检测距离。

GPIO相关配置:

百度网盘文件写入失败_百度网盘文件写入失败原因_百度云不能打开要写入的文件

代码解读:

由于存在障碍物时红外对管将与之相连的引脚拉低,因此,引脚应当在未拉低的情况下保持高电平,即将引脚设置为上拉输入模式(这样红外对管没有拉低引脚时引脚就是高电平)

读引脚电平:

百度云不能打开要写入的文件_百度网盘文件写入失败_百度网盘文件写入失败原因

宏定义的是STM32库函数t(,)来读取引脚的电平,如果检测到引脚低电平即红外对管检测范围内存在障碍物就会持续打印“1“,在主循环中调用这个函数就能实现障碍物检测的功能。

示例工程为压缩包中的

Chapter 4

假装自己会调试超声波测距模块

主要涉及内容:GPIO输入输出、EXTI、TIM计时

需要的材料:开发板+超声波测距模块+USB转TTL

难度:

超声测距模块简要介绍:

百度网盘文件写入失败_百度云不能打开要写入的文件_百度网盘文件写入失败原因

来自HC-SR04数据手册

使用这个模块需要首先给TRIG提供>10us的高电平,然后在外部中断中配置ECHO对应引脚下跳沿中断,然后读TIM的计时信息就可以计算出障碍物的距离

EXTI简要介绍:外部中断在正确配置之后可以捕捉对应引脚的上升沿、下降沿信号,并产生中断。

TIM简要介绍:TIM的基本功能是计数:TIM每周期计数值发生一次变化(以向上计数模式为例),当计数值超过寄存器中存储的数据时,产生一次溢出中断。通过对TIM频率、计数值、溢出次数的计算就能得到计时值

ECHO相关配置(左侧为源文件部分,右侧为头文件部分)

百度网盘文件写入失败_百度云不能打开要写入的文件_百度网盘文件写入失败原因

代码解读:

定义结构体+使能时钟

设置引脚:将ECHO引脚设置为输入上拉模式(为了检测传感器拉低电平),将TRIG引脚设置为推挽输出模式(为了输出10us的触发信号)

设置外部中断的中断源、中断线、中断事件(由于接收到信号后拉低所以配置为下跳沿出发中断)、使能中断

配置中断向量表(外部中断)

配置TIM:打开溢出中断,计数器向上计数,TIM预分频72,TIM周期20000,即时钟频率72MHz时,TIM频率1MHz,即每1us对计数器+1,当计数器从0加到20000时产生溢出中断并清零,可以通过()函数获得的计数值,再加上溢出的次数*20000,就能得到从发出信号到收到信号经过的时间,单位us。

配置中断向量表(溢出中断)

使能中断、使能TIM

发送触发信号函数:

百度网盘文件写入失败原因_百度网盘文件写入失败_百度云不能打开要写入的文件

初始化所有计数值,然后将TRIG引脚拉高10us

在溢出中断中调用计数函数,以获取溢出次数。

百度云不能打开要写入的文件_百度网盘文件写入失败_百度网盘文件写入失败原因

当ECHO引脚拉低后进入外部中断服务函数,调用函数得到总计数值并计算距离。

百度云不能打开要写入的文件_百度网盘文件写入失败_百度网盘文件写入失败原因

具体效果如下,数据单位为mm,示例工程为压缩包中的

百度云不能打开要写入的文件_百度网盘文件写入失败_百度网盘文件写入失败原因

Chapter 5

百度网盘文件写入失败_百度网盘文件写入失败原因_百度云不能打开要写入的文件

假装自己会调试舵机模块

主要涉及内容:GPIO输入输出、TIM的PWM输出

需要的材料:开发板+舵机模块

难度:

SG90基本介绍:SG90是一款模拟舵机,需要持续提供周期为20ms的PWM波,根据占空比调整舵机角度

百度网盘文件写入失败_百度网盘文件写入失败原因_百度云不能打开要写入的文件

图片来自网络

TIM的PWM输出模式基本介绍:在TIM基本计数功能的基础上(TIM的基本计数配置可以调整PWM的周期),可以控制TIM的多个通道按照一定占空比输出PWM波。以通用定时器PWM输出模式1为例,当TIM的计数值低于比较计时器中存入的值时对应通道输出有效电平,反之亦反。从而可以通过控制比较寄存器中装入的值来改变输出PWM的占空比。

舵机模块初始化代码:

百度云不能打开要写入的文件_百度网盘文件写入失败原因_百度网盘文件写入失败

代码解读:

定义结构体并使能相关时钟

将定时器周期设置为20ms(解读见ECHO部分TIM解读)

将TIM设置为PWM输出模式1(低于比较寄存器中的数值输出有效电平),比较输出使能,在比较寄存器内装入值,设置有效电平为高电平,使能PWM输出通道3(1个TIM可以有多个PWM输出通道)

预装载寄存器使能,重载寄存器使能

改变占空比调整舵机角度函数:

百度云不能打开要写入的文件_百度网盘文件写入失败_百度网盘文件写入失败原因

先将输入角度换算成占空比,然后改变TIM比较寄存器中的值,从而改变舵机角度

具体效果如下,示例工程为压缩包中的

百度网盘文件写入失败原因_百度云不能打开要写入的文件_百度网盘文件写入失败

Chapter 6

假装自己会调试电机驱动模块

主要涉及内容:GPIO输入输出、TIM的PWM输出

需要的材料:开发板+电机驱动模块

难度:

L293D简单介绍:共3路输入,IN1,IN2,EN,IN1和IN2同时高电平或低电平时,不输出电流,电机不转动;IN1,IN2一高一低时电机上有某一方向的电流流过,可以由此控制电机的顺、逆时针转动。EN端口接入高电平使能,可以接入PWM信号,从而实现电机调速。如果配合码盘使用,则可以实现PID等控制算法。

电机驱动模块初始化代码(左边为源文件,右边为头文件):

百度网盘文件写入失败_百度网盘文件写入失败原因_百度云不能打开要写入的文件

代码分析:

配置3路GPIO,IN1,IN2配置为推挽输出,EN配置为复用推挽(由TIM输出PWM)

配置TIM相关内容(参考舵机模块PWM输出配置分析)

控制占空比函数:

百度云不能打开要写入的文件_百度网盘文件写入失败_百度网盘文件写入失败原因

通过调整比较寄存器内装入的数据实现改变PWM波占空比的功能

具体效果如下,示例工程为压缩包中的

百度网盘文件写入失败_百度网盘文件写入失败原因_百度云不能打开要写入的文件

Chapter 7

假装自己有百度云可以下载工程文件压缩包

链接:

密码:01fs

百度云不能打开要写入的文件_百度网盘文件写入失败原因_百度网盘文件写入失败

撰稿:吴俊辰

审核:许璀杰

百度网盘文件写入失败原因_百度网盘文件写入失败_百度云不能打开要写入的文件

淘宝开直通车没有品牌资质如何推广?品牌授权怎么弄?

淘宝商家们可以使用淘宝直通车这种推广方式,使用这个推广方式的话,需要去设置一些相关的信息,淘宝商品都是有品牌资质要求的,如果没有品牌资质的话,怎么进行推广呢?

淘宝开直通车没有品牌资质如何推广?

1、现在淘宝直通车推广品牌商品需要类目品牌的授权以后才能使用,其中包含有相关的营业执照和商标注册或者商标授权书。没有相应的品牌资质是无法通过淘宝直通车进行推广的,且商品标题中的品牌关键词和商品属性品牌信不一致的情况下,还会违反“品牌不一致”的风险,商家在上传商品时正确的填写自己的品牌信息。

2、若商家的品牌商品是通过代销或者分销等渠道拿货,可以让上级供销商提供商品相关的品牌授权证书,然后通过资质审核以后即可通过淘宝直通车的方式推广品牌商品。不建议商家违规上架和推广商品,就算能获得极好的推广效果,但是销量起来以后也总有一天会出现被投诉售假的情况。

3、在没有授权的情况下,可以选择其他推广工具进行推广,比如淘宝客、钻展、淘宝直播等等,也能获得不错的推广效果。

淘宝品牌授权怎么弄?

1、品牌资质

若是推广使用他人商品、品牌名称,那么直通车用户需要提供相应的品牌资质,具体资质如下:

农药广告审查批准文号_农药广告审查表范文_农药广告审查表号是什么样的

品牌注册商标

商标持有者主体证明

商标持有者给店铺的销售

logo使用授权

提交路径:登录直通车后台找到账户,点击资质管理的新增资质。大概审核需要1-2个工作日,审核通过后1个工作日后才能推广。

2、行业资质

一般为药品药械、化妆品、保健品,才需要提供行业资质。

农药广告审查表号是什么样的_农药广告审查批准文号_农药广告审查表范文

药品药械农药兽药行业需要提供的资质:药品医疗器械仅支持天猫商家推广,需提供食品药品监督管理局颁发的广告审查表,在浙江省内备案。特殊功效的化妆品商品,需要提供食品药品监督管理局核发的批准文号。

保健品仅支持天猫客户推广,需提交完整且有效期内食品药品监督管理局核发的《保健食品广告审查表》。

3、媒介资质

直通车推广出现媒介或活动方,就需要提供合作资质。合作资质,包括媒体合作协议或直接授权方转授权给开店主体使用等信息。

资质提交入口:

登录卖家后台→直通车入口→直通车后台→点击账户→资质管理→选择正确的资质类型提交资质→提交审核。如果没有资质的话很难开通。

总而言之,淘宝商家们如果没有品牌资质的话,想要继续推广的话,可能会麻烦一些,毕竟淘宝直通车推广方式对于商家是有一些要求的,各位淘宝商家们可以先去申请品牌哦。