单片机

stm32驱动sd卡问题记录

匿名 (未验证) 提交于 2019-12-02 23:36:01
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011123091/article/details/90727146 问题记录:将程序从51单片机移植到stm32以后就一直出现一个问题,单片机不能以很高的速度驱动sd卡,导致数据采集的速度一直跟不上。但是在测试的过程中发现程序在debug下是可以正常驱动的,试图通过对比正常启动驱动和在debug下的区别来发现原因。发现debug下单片机的复位是通过软件复位来完成的,硬件直接启动通过外部的阻容复位。后来就一直纠结硬件的复位问题,后来又发现启动后通过手动复位sd卡驱动正常,所以更坚定是硬件问题了。后来在网上查询可以也猜测是外部的外设没复位弯成单片机就对其初始化,所以导致初始化不成功。所以后来通过在main函数最开始的地方加延时来解决,发现依然是不能高速驱动!!!!!!!!,最后想通过外加看门狗加一个长时间的复位来解决。 -----------------------------------------------------时间分割线-------------------- 由于手头有其他事要忙,所以这个问题搁置了一个月。。。直到今天,我不忙了。。 在忙的一个月期间,也没有修改硬件电路打板。。今天有冷静了下来看了看sd卡的驱动流程。 发现网上说在初始化阶段要以低速,初始化以后转换为高速

17级单片机期中测试题目

匿名 (未验证) 提交于 2019-12-02 23:34:01
硬件是msp430f169的板子,软件ccs8.3 一、简答题 1、试说明DMA工作原理 2、试说PWM的工作原理 3、试写出中断函数的框架结构,并说明基本特征 二、编程题 1、利用msp430f169单片机开发板的现有硬件情况,编写循环流水灯; 2、利用msp430f169单片机开发板的现有硬件并结合显示器件完成温度计设计,编写程序实现;

单片机 I2C总线

匿名 (未验证) 提交于 2019-12-02 23:32:01
I2C总线 I2C总线是Inter-IntegratedCircuit(集成电路总线),这种总线类型是由飞利浦半导体公司在八十年代初设计出来的,主要是用来连接整体电路(ICS) ,IIC是一种多向控制总线,也就是说多个芯片可以连接到同一总线结构下,同时每个芯片都可以作为实时数据传输的控制源。 I2C串行总线一般有两根信号线,一根是双向的数据线SDA,另一根是时钟线SCL。所有接到I2C总线设备上的串行数据SDA都接到总线的SDA上,各设备的时钟线SCL接到总线的SCL上。 数据有效性 数据位的有效性:I2C总线进行数据传送时,时钟信号为高电平期间,数据线上的数据必须保持稳定,只有在时钟线上的信号为低电平期间,数据线上的高电平或低电平状态才允许变化。 起始和终止信号 SCL线为高电平期间,SDA线由高电平向低电平的变化表示起始信号;SCL线为高电平期间,SDA线由低电平向高电平的变化表示终止信号。 起始和终止信号都是由主机发出的,在起始信号产生后,总线就处于被占用的状态;在终止信号产生后,总线就处于空闲状态。 I2C字节的传送与应答 每一个字节必须保证是8位长度。数据传送时,先传送最高位(MSB),每一个被传送的字节后面都必须跟随一位应答位(即一帧共有9位)。 应答位的作用 主机在发送数据时,每次发送一字节数据,都需要读取从机应答位,当从机空闲可以接收该字节数据时,从机会发出应答

单片机点亮第一个小灯

匿名 (未验证) 提交于 2019-12-02 23:05:13
一、点亮第一个小灯 1、设计要求 用一个开关控制LED亮灭。 2、硬件设计 Proteus ISIS 仿真,选择元器件,AT89C51 、 RES 、SWITCH、LED-BLUE 3、软件设计 源程序: /********************主程序*****************/ #include<reg51.h> sbit LED = P1^0 ; //位定义 LED 为P1.0口 void main() { while (1); { LED = 0; //P1^0引脚输出低电平 } } 文章来源: https://blog.csdn.net/moofoogoo/article/details/88082897

STM32单片机硬件I2C驱动程序(软件轮询方式)---摘自:FeoTech

匿名 (未验证) 提交于 2019-12-02 22:56:40
http://feotech.com/?p=69 本程序主要用于驱动STM32单片机芯片的硬件I2C寄存器,实现通过使用芯片自带的I2C寄存器进行数据的发送与接收. 本例程中采用I2C寄存器查询的方式来实现数据传输,当I2C对应寄存器指定状态时方可执行下一步操作. /** ****************************************************************************** * @file Hardware_I2C.c * @author Ryan Zhao * @version V1.0.0 * @date 2017-04-27 * @brief STM32硬件I2C底层驱动. ****************************************************************************** * @attention Null * ****************************************************************************** */ /** * @brief I2C引脚与寄存器功能配置. * @param None. * @retval None. */ void I2C_Configuration(void) { /

单片机 GUI收集 :

匿名 (未验证) 提交于 2019-12-02 22:56:40
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wowocpp/article/details/83745564 自己写了一个uCGUI3.98 PC模拟器(附源码) https://www.amobbs.com/forum.php?mod=viewthread&tid=5536879&highlight=GUI&_dsign=0a26ab84 这两个UI感觉做的都很不错,出来效果很漂亮,感觉要比emWin要好,但是资料比较少,有一起玩的人吗 官网: https://littlevgl.com/ github地址: https://github.com/littlevgl 有个叫ugui的,超小 小产品就没有必要上GUI了,12864这种开个1024字节的显示存储区,自己做界面还是挺好的,一定要上的话可以用ZLG_GUI,虽然和UCGUI不是一个级别的,控件也少,不过可以加快自己的开发速度,牺牲的效率换时间 你搜看 SimpleGUI,开源,黑白的。 在用stemwin,oled12864 此GUI主要就是实现了窗口控件、Button控件、CheckBox控件、TextBox控件、Image控件这几个,支持触摸操作。 该GUI的官方地址: http://embeddedlightning.com/ugui/ GITHUB地址:

菜鸟之路――Python学习之串口通信(与STC89C51)源码及打包发布试水

匿名 (未验证) 提交于 2019-12-02 22:56:40
想做上位机控制系统,就拿51来试试水。 Python环境:Win10+Python 3.6.4(64位)+serial,pyserial 一、上位机程序的编写 import serial ser = serial.Serial("COM3", 4800) ser.write(‘1‘.encode()) ser.close() 对,没错,就这几行,就把“1”的ASCII以4800的波特率发送给COM3端口 .encode()是将字符串进行编码,可以用.decode()进行解码 以上只是实现了发送一个字符,为了,让他好看点,我加入了PythonGUI。用的是tkinter模块 import serial from tkinter import * ser = serial.Serial("COM3", 4800) def open(): ser.write(‘1‘.encode()) var.set("已打开") def close(): ser.write(‘2‘.encode()) data = ser.read() print(data) var.set("未打开") root = Tk() root.title("设备打开与关闭") frame1 = Frame(root) frame2 = Frame(root) var = StringVar() var.set("未打开"

零基础学习单片机切记这四点要求,少走弯路

半腔热情 提交于 2019-12-02 15:32:17
  单片机个人觉得先掌握其中一种,其它的都可以触类旁通,快速上手了。如果你这些条件都没有,我建议你学习51 单片机。   为什么要学习51单片机:   虽然现在单片机种类和型号非常多,每个型号都有一定的市场份额,但是哪个型号也没有早期 51单片机那般风光和火爆,虽然现在地位不是那么高了,但是因为 51 单片机积累的资料非常多,大家学起来就会拥有众多的参考资料,所以上手肯定比其他型号的要快一些。如果你学习稍微偏门的单片机,可能一个简单的软件问题就 要折腾你好长时间,不仅仅浪费了你的学习时间,更重要的是打击了学习单片机的信心。   那么是不是每种单片机我们都要学一遍呢?答案当然是否定的。大家跟着我来学习 51单片机,必须得跟着学会举一反三和融会贯通的能力。单片机型号那么多,挨个学下来估计头发白了也学不完,所以大家跟着我学 51 单片机,不能仅仅当做 51 来学习,更重要的是要当做“单片机”来学,要通过我们的这个教程,把所有的单片机的内部资源都搞清楚弄明白,每个内部模块的用法理解透彻,这样当你遇到一 个从没有用过的单片机,也就知道如何下手去使用它进行开发了。   如何学习单片机:   前边提到过,单片机是一门实用技术,我们学习它已经不是为了应付考试了,我给大家总结了单片机的学习方法是:一个要领,四个步骤。   学习单片机的要领就是:在实践中成长。   可为什么那么多人学单片机的时候

STM32第一周复习

Deadly 提交于 2019-12-02 14:45:58
资料可以去意法半导体官网 最底层(了解)CM3权威指南/CM4权威指南 芯片参考手册(了解)STM32F10x中文参考手册 官方其他资源教程(了解)固件库包(含参考源码),官方培训PPT 熟练掌握C语言 熟练掌握一种开发环境 库函数和寄存器对比学习 入门一款单片机的学习目标 基本外设 GPIO输入输出, 外部中断 定时器 串口 基本外设接口 SPI IIC WDG FSMC ADC/DAC SDIO 高级功能 UCOS FATFS EMWIN 外什么选择STM32 什么是STM32 Cortex-M3属于ARMv7架构 A系列 面对尖端的基于虚拟内存系统的操作系统和用户 R系列 针对于实时系统 M系列 对微控制器 性价比高,更稳定,所以可以替换ARM7 芯片有哪些资源 ZET6 144个引脚 112个IO 512K 64K RCT6 64个引脚 51个IO 256K 48K 强大的时钟系统 上电复位,掉电复位 低功耗 AD 3个12位 内置参考电压 内置温度 DA 2个12位 DMA 12个DMA通道 定时器 多达11个定时器 通信接口 2个I2C 5个串口 3个SPI 1个CAN2.0 1个USB FS 1个SDIO 最小系统 供电 复位 时钟 boot启动模式选择 下载电路 后备电池 程序下载 串口下载 STM32的ISP下载只能通过串口1,也就是对应的PA9,PA10