预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共11页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

(完整word版)STM32调试经验(完整word版)STM32调试经验(完整word版)STM32调试经验PVD//可编程电压检测器Lib中加入stm32f10x_pwr。c和bkp。c文件。去掉conf。h中的两个注释开启时钟APB1的BKP和PWRPVD的中断时位于EXTI16上的外部中断具体步骤:缺省值设置,清中断标志位,选择中断线路,模式,触发方式,线路使能,初始化结构体,后备寄存器操作使能,设置电压的阀值,使能PVD中断的优先级推荐选择抢占最高级PVD中断中保存的数据量和供电的电源上的电容大小有绝对关系。SPI//串行外设接口加入spi.c文件,去掉conf.h中的两个注释开启时钟APB2(SPI1),开启端口复用配置SPI的MISO,MOSI,Clock,NSS(复用推挽输出,浮空输入,NSS选择软件模式不需要配置,但是模块的NSS还是需要设置的)用开发板的话,需要失能其他不用的SPI模块,避免出现问题.结构体数组初始化,模式,极性,相位,校验,等等.6。SPI的发送和接收,SPI读数据需要发送任意数据才能读。(原因是主设备提供时钟)7。SPI的NSS引脚在硬件模式下可输入可输出,设置主模式输出模式的时候需要SPI_SSOutputCmd(SPI1,ENABLE);8。(16.6。14)SPI不用中断的发送接收函数测试:SPI是全双工,读写分别有数据线,共用SCK时钟,写,读是同步进行,不过操作具体芯片的时候,返回值要根据芯片的datasheet操作。所以一般读的时候都需要写数据启动时钟。9.(16。7.27)用IO口模拟时序的时候,MOSI和MISO的初始化引脚置高2016/3/1B码程序MAX485在无输入信号的情况下,输出保持高电平。定时器输入捕获的时候,捕获上升沿时,捕获引脚设置为下拉输入.上拉输入:外部无信号输入时,引脚电平保持高电平(比如I2C)在定时器输入捕获时,捕获引脚设置成浮空输入的话,引脚电平状态是不稳定的,有波动2016/3/30I2CSTM32的硬件I2C模块不稳定,使用软件模拟时序的方式使用I2C模块,硬件I2C存在Bug.FATFS32的MP3程序在支持中文文件名之后存在目录读取英文文件名失败的现象,此问题未解决(已解决,指针地址没有回送)。2016/4/5CAN在设置一个寄存器之前,相应的位先清空,再设置。CAN总线告一段落,设置CAN总线CAN_InitTypeDef(设置工作模式,波特率)和CAN_FilterInitTypeDef(设置屏蔽滤波器)。设置发送报文的ID格式,IDE,RTR,数据等参数CanTxMsg和CanRxMsg。相应的中断。屏蔽过滤寄存器关联FIFO,FIFO0时是USB_LP_CAN1_RX0_IRQHandler.FIFO1时是CAN1_RX1_IRQHandler。2016/4/5中断Stm32f10x_it。c中的中断名称是在startup_stm32f10x_hd。s中查找添加。NVIC组管理中的中断通道名称是在stm32f10x_it。h中查找添加.2016/4/13Systick和TFT触摸屏1.systick在设置成1us中断时,容易出现问题,具体的等液晶触摸屏功能实现后再测试。2。TFT触摸屏使用SPI通信时,SPI的频率选择速度太快(8分频)时,高电平的时间达不到200ns,会丢失数据。3.等差数列中位数(a0+an)/24。触摸屏使用中断法画点的时候,出现描点非常慢的现象。解决:因为串口不停的在打印消息占用中断资源,在描点的时候不要打印5。液晶取模软件的使用,字模3和LCD2002完美版,取模的方式不同,字模3是整体取模,但是LCD是每个字单独取模,所以编程上不同。2016.8。42016/4/23定时器延迟函数1.定时器更新标志位放在结构体初始化前清空标志位2016/4/25Modbus之CRC校验1。串口发送数据时或者检测定时器更新事件时,通过读SR的相应标志位保证发送或者事件的发生.2。Modbus的CRC16校验在发送时是低8位在前,高8位在后。3。注意运算符的优先级问题。4.对于memcpy(目标数组,源数组,个数)。5.A?b:c若A为真,则表达式b;若B为假,则表达式C2016/4/27SDresponse,数据地址1.SomeSD’scommandhaveresponse,theirsavedinSDIO_RESPxregister.2.Whenwritetheaddress'sdata,ifaddress=0,Datawidthis4.Sowhenyouwriteintheaddress3,youshouldbe3*4=12,Use12replace3。Example:Address0—use0123,Address