平时运行程序时默认设置BOOT0为0,BOOT1为0;若要用串口下载代码,则须要设置BOOT0为1、BOOT1为0,下载完后改为默认状态;
供电电源开拓板采取5V供电,请勿同时利用USB和凤凰端子供电。
外接扩展板时,需确保:
扩展板的VCC和GND之间没有短路;扩展板和开拓板之间的VCC是否对应。USB仿真器不能带电拔插USB仿真器;上电时,先插仿真器,后给开拓板供电;掉电时,先断开开拓板电源,再拔掉仿真器;仿真器操作不当,会烧坏开拓板芯片,乃至烧坏电脑主板的USB接口芯片。IO口输入(IN)输入电压范围:高(1)——0V,低(0)——3.3V;有些开拓板的IO口可容忍5V,须查看对应的芯片解释手册。如果电压不能担保在3.3V,采取3V稳压管(把稳限流电阻的选择)输出(OUT)输出电压范围:高(1)——0V,低(0)——3.3V;把稳负载的影响:-如果涉及强电(继电器)的掌握,采取光电隔离;
-负载大(需求电流大)时,需加缓冲。
c.用作ADC输入时,担保输入的仿照旗子暗记电平不超过3V,否则会烧坏开拓板。
电平当不知道某个IO口的电平时,可以用电压表连接IO口和GND进行丈量;或者连一个LED灯看他的亮灭。当须要测试IO口脉冲频率时候(如PWM),也可以用LED灯测试;但当频率很高以至于LED不能辨别时,可以通过逻辑剖析仪测试。
串口串口(COM)被占用当打开串口的时候,有时会提示“无法打开串口”,“串口被占用”,“串口资源不存在”等信息。
这些信息提示要利用的串口已经被其他进程占用,可以到打算机的设备管理器中进行查看
当知道这个进程是什么,可以到任务管理器中进行关闭;
当不知道这个串口被什么进程占用的时候,就须要从注册表处理;
在“开始菜单”中的“运行”中输入regedit,然后点“确定”,打开注册表编辑器。
按照下图中的路径找到COM Name Arbiter。然后在右侧“ComDb”上点“右键”选择“删除”。删除掉注册表的这个项目是让win7系统重新构建COM端口的列表,这样就可以改掉那些端口被占用的状态。
2. 发送测试数据,吸收端丢失第一个数据
硬件复位后,串口发送首个数据之前,先读取一下USART_SR,则能够担保首个数据发送时,不涌现覆盖的情形。当然,也有别的方法,比如先打消TC状态位,或是在write USART_DR之后,加入一个小延时,让数据发送完毕,该当也能间接打消这个缺点。
开拓板利用
1、只管即便利用得当的保护盒艳服,不要直策应用裸板,随意马虎破坏元件、造成短路等;
2、确定开拓板事情电压、事情电流,确定外设版本与接口类型,确定串口事情电平等;
3、常见事情电压为:5V,7.2V,9V,12V,15V等,常日为5V;
4、常见串口事情电平:1.8V,3.3V,5V,常日为3.3V,个别开拓板串口事情电平1.8v且与芯片直连,随意马虎烧坏;
5、常见事情电流为500mA,1A,2A,4A几个级别;
6、常见的显示接口为HDMI,microHDMI,displayport;
7、根据开拓板事情须要,判断散激情亲切况,适当的为主芯片安装散热片、散热风扇;
8、不要超频事情;
9、不要用手直接抓上电的开拓板。
10、不要永劫光让开发板供电,有些板卡散热做的不好,要把稳触摸主芯片有没有过热征象。
11、B3、B4、A15默认为JTAG引脚;A13、A14默认为SWD引脚。可利用GPIO_PinRemapConfig(GPIO_Remap_SWJ_NoJTRST,ENABLE)开启SWD而关闭JTAG功能,或用写寄存器的办法,SWG_CFG[2.0]写入000;
12、1个 USB 供电最多500mA,且由于导线电阻存在,供到开拓板的电压一样平常都不会有5V,如果利用了很多大负载外,比设比4.3 寸屏、7寸屏、网络摄像头模块等,那么可能引起 USB 供电不足,以是如果是利用 4.3 4.3屏/7 寸屏,或者同时用到多个模块的时候, 建议大家利用一个独立电源供电。如果没有独立电源,建议可以同时插 2个 USB 口,并插上 JTAG,这样供电可以更足一些。
烧芯片情形,紧张是静电缘故原由:
1、接入电脑 USB时烧了。电脑USB口带静电,然后接入到核心板,用手拿着核心板,随意马虎导致烧掉核心板,尤其是身体碰到金属和地的时候。只管即便不要用手直接拿核心板,身体不要碰到地面(穿鞋子)。
2、用开拓板做智能车,小车跑的过程中烧了。车轮与赛道摩擦的过程中使得小车带电,把电引到核心板就会烧了核心板。可以用锡纸包住车底盘来隔离保护核心板。铜屑等金属碰到芯片的管脚短路,建议用黑胶布包着核心板上的主芯片。小车跑的过程中碰撞,随意马虎导致短路,导致核心板烧了。对付露出金属表面的电路都只管即便用黑胶布包紧。电机刹车加速导致产生反冲电流,如果IO口没经由隔离保护而直接接入电机驱动模块,就随意马虎涌现烧芯片情形。建议IO口经由隔离保护电路后才接入电机驱动模块。舵机也是如此,要进行隔离(舵机内部也是电机)。
3、超频利用。超频实在是对单片机损耗很大的,虽然可以供应性能,但也更随意马虎烧坏。频率一样平常求稳定,不建议设置最高极限频率。环境温度高时候,如果超频过高,导致发热偏大,随意马虎导致芯片烧掉的。可以考虑安装散热片和降落频率
4、电源管脚短路或者电源电压拉低,芯片发热。这是芯片内部的电源模块破坏导致的。一样平常换个芯片就可以办理。
5、牢记不要GPIO配置输出高电平,然后硬件又接地这种类似的短路。非常随意马虎烧板子的!
不要以为程序就不会烧板子。
6、单片机涌现芯片发热,但可下载程序,可运行程序。这是芯片内部的电源模块破坏导致的,加大3.3V和GDN之间的电容,可减少发热,但最好是换个芯片。
芯片烧坏,只能从步骤,实验结果,推测缘故原由。
程序调试
有两种仿真模式:仿照仿真——MDK内部仿真,须要设置一下才可利用。蓝色箭头处可直接照填,橙色箭头处填你所用的开拓板型号。
2. 在线调试——连接好板子,可在线调试。
PWM波有毛刺,但把预分频系数调成199以下就没有这种征象发生,这种是过冲(振铃征象),串联电阻,就可以办理。
串口调试程序和串口调试工具的波特率必须要同等,否则无法吸收数据、或吸收禁绝确。在用到“复用重映射”的时候要先使能AFIO的时钟RCC_APB2PeriphClockCmd( RCC_APB2Periph_AFIO, ENABLE);
其次是
GPIO_PinRemapConfig(GPIO_FullRemap_USARTx, ENABLE);
x可以是1、2、3等的串口号。
末了是开时钟
RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3, ENABLE)
MDK(Keil)利用技巧
1. 快速找到函数定义
在阅读代码时,为了要知道某个函数所实现的功能以及其他详细的情形,每每须要查看某一个函数的定义。首先,我们的光标要选中该函数,再按下快捷键【F12】然后就可以跳到函数的定义处了;或者单击右键,然后在弹出来的快捷菜单中选择“Go To Definition Of ‘xxx’”(“xxx”为我们选中的函数名)。
2. 批量注释和批量取消注释
在编写函数的过程中,每每避免不了涌现各种各样的问题,出问题时在调试的过程中须要注释一些代码和对一些代码进行取消之前的注释,以此来对代码进行测试和完善。
3. 整段缩进
选中整段后,按table键即可一起缩进;整段反向缩进,按shift+table。
4. 用户自定义关键字
进入User Keywords 选项卡,C/C++ Editor Files,在右边的 User Keywords 对话框下面输入自己定义的关键字:
5. 语法检测和代码提示
keil MDK5 支持代码提示与动态语法检测功能,打开配置对话框,选择 Text Completion 选项卡。
Strut/Class Members,用于开启构造体/类成员提示功能。
Function Parameters,用于开启函数参数提示功能。
Symbols after xx characters,用于开启代码提示功能。
Dynamic Syntax Checking,则用于开启动态语法检测。
6. 代码补全
可以在configuration(配置项)的Editor(编辑器)选项卡里设置汉语字符编码GB23132,担保复制出来的汉语注释不会乱码,此外,可以在User Keywords(用户自定义关键字)选项卡设置自己常用的关键字,Shortcut Keys(快捷键)设置符合自己利用习气的快捷键,尤其是Text Completion(代码补全)非常实用。
Show Code Completion List for (代码自动补全列表)
struct/class Members (构造体/类成员)
Function Parameters (函数参数列表)
Symbols after 4 Characters
ENTER/TAB all fill-up character (enter/tab键自动补全)
Dynamic syntax Checking (动态语法检讨)
Enable (打开)(此选项会导致误报,只要编译通过便可不予理会)
STM32工程目录下面的组以及主要文件讲解
1.组 USER 下面存放的紧张是用户代码。system_stm32f10x.c 里面紧张是系统时钟初始化函数 SystemInit 干系的定义,一样平常情形下文件用户不须要修正。 stm32f10x_it.c 里面存放的是部分中断做事函数,main.c函数紧张存放的是主函数。
2.组 HARDWARE 下面存放的是每个实验的外设驱动代码,他的实现是通过调用 FWLib下面的固件库文件实现的,比如 led.c 里面调用 stm32f10x_gpio.c 里面的函数对 led 进行初始化。
3.组 SYSTEM 是 ALIENTEK 供应的共用代码, 包含 Systick 延时函数, IO 口位带操作以及串口干系函数
4.组 CORE 下面存放的是固件库必须的核心文件和启动文件。这里面的文件用户不须要修
改。
5.组 FWLib 下面存放的是 ST 官方供应的外设驱动固件库文件,这些文件大家可以根据工程须要来添加和删除。每个 stm32f10x_ppp.c 源文件对应一个 stm32f10x_ppp.h 头文件
6.README 分组紧张便是添加了 README.TXT 解释文件,对实验操作进行干系解释
STM32 的 IO 口可以由软件配置成 8 种模式
1、 输入浮空
2、 输入上拉
3、 输入下拉
4、 仿照输入
5、 开漏输出
6、 推挽输出
7、 推挽式复用功能
8、 开漏复用功能
每个 IO 端口都有 7 个寄存器来掌握,每个寄存器的详细利用方法,可以参考《STM32 中文参考手册 V10》 P105~P129。
每个 IO 口可以自由编程, 但 IO 口寄存器必须要按 32 位字被访问