嵌入式物联网开发,linux,单片机32
- 一.嵌入式介绍
- 二.linux系统介绍
- 1.ubuntu使用安装
- 以下自行查阅资料学习,内容较多不是一时半会能学完的编程内容,最基本是C语言的熟练掌握
- 2.shell编程
- 3.系统编程
- 4.io编程
- 5.网络编程
- 5.1重点套接字,tcp udp ip协议介绍
- 6.编译环境 ,交叉编译,开发板
- 三.单片机stm32介绍 arm概述
- 1.开发环境mkd5安装
- 1.1mkd5工程开发环境配置
- 2.stm32单片机如何编写硬件进行使用
- 2.1 gpio
- 2.2 时钟体系
- 2.3 位带操作
- 2.4 中断
- 2.5 启动文件
- 2.6 系统定时器
- 2.7 硬件定时器
- 2.8 脉冲宽度调节
- 2.9 串口usart
- 2,10 蓝牙模块
- 2.11 温湿度模块
- 2.12 独立看门狗 窗口看门狗
- 2.13 红外
- 2.14 RTC
- 2.15 FLASH
- 2.16 ADC DAC
- 2.17 I2C
- 2.18 spi
- 3.单片机编程思想(要会看开发文件)
一.嵌入式介绍
一个嵌入式系统装置一般都由嵌入式计算机系统和执行装置组成,嵌入式计算机系统是整个嵌入式系统的核心,由硬件层、中间层、系统软件层和应用软件层组成。执行装置也称为被控对象,它可以接受嵌入式计算机系统发出的控制命令,执行所规定的操作或任务。执行装置可以很简单,如手机上的一个微小型的电机,当手机处于震动接收状态时打开;也可以很复杂,如SONY 智能机器狗,上面集成了多个微小型控制电机和多种传感器,从而可以执行各种复杂的动作和感受各种状态信息。
二.linux系统介绍
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
Unix衍生linux,Linux操作系统诞生于1991 年10 月5 日(这是第一次正式向外公布时间)。Linux存在着许多不同的Linux版本(ubuntu Red Hat CentOS 安卓。。。),但它们都使用了Linux内核。Linux可安装在各种
计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。linux系统场合:手机 平板 路由器 电视 服务器.
1.ubuntu使用安装
ubuntu下载地址:https://ubuntu.com/download/alternative-downloads (下载16.04 桌面版)
虚机:https://blog.csdn.net/qq_31362105/article/details/80706096:VMware-workstation-full-12.1.0-3272444.exe
Linux系统搭建过程:
1、下载VMware及ubuntu
2、安装VMware(在之前已经安装过,则不要再装虚拟机)
3、安装ubuntu-16.04.4-desktop-amd64.iso
Linux系统认知:linux没有盘的概念,Linux文件以目录的概念存在,最大的目录叫根目录,根目录挂子目录 目,录理解为window的文件夹,最大目录为根目录 : /
以下自行查阅资料学习,内容较多不是一时半会能学完的编程内容,最基本是C语言的熟练掌握
2.shell编程
3.系统编程
4.io编程
5.网络编程
5.1重点套接字,tcp udp ip协议介绍
6.编译环境 ,交叉编译,开发板
三.单片机stm32介绍 arm概述
1.开发环境mkd5安装
破译的方法 自行查询网上资料都有破译软件进行破译
1.1mkd5工程开发环境配置
然后选择自己对应的开发板的信号,如果没用对应的型号 自行网上下载固件库移植。
然后以下操作是以我自己选的一个芯片对应的固件库来操作 不同芯片对应固件库不一样,自然编程也不一样,就好如f1系列的编写和f4编写,f4函数定义比f1多,不过大同小异,都是要自己根据手册进行程序编写即可
把刚刚复制到对应的文件夹的 文件添加进去
输入 USE_STDPERIPH_DRIVER ,并在include paths 选择刚刚对应的三个文件夹库
2.stm32单片机如何编写硬件进行使用
你添加的 固件库有对应的编写函数定义好的,自行阅读编写即可
2.1 gpio
2.2 时钟体系
给单片机提供一个时钟信号(一个非常稳定的频率信号),使单片机各内部组件同步工作,并且在和外部设备通信时是也能达到同步。
● HSI 振荡器时钟,也就是高速内部时钟,一般来说很少用,因为精度没有外部高速时钟那么高。
● HSE 振荡器时钟,也就是高速外部时钟,GECM4 开发板 8MHz。
● 主 PLL (PLL) 时钟
b.器件具有以下两个次级时钟源:
● 32 kHz 低速内部 RC (LSI RC),该 RC 用于驱动独立看门狗,也可选择提供给 RTC 用于停机/待机模式下的自动唤醒。
● 32.768 kHz 低速外部晶振(LSE 晶振),用于驱动 RTC 时钟 (RTCCLK)对于每个时钟源来说,在未使用时都可单独打开或者关闭,以降低功耗。
2.3 位带操作
GPIO_SetBits、GPIO_ResetBits操作IO口的性能没有达到极致,因为这些函数都需要进行现场保护和现场恢复的动作,比较耗时间,没有进行一步到位,使用位带操作则没有上述的烦恼,简单快速!
GPIO_SetBits(GPIOF,GPIO_Pin_9);修改为PFout(9)=1;
2.4 中断
中断的定义及中断工作方式
由于内部或外部“偶然”事件的发生,导致CPU暂停当前的进程,转入预先安排好的事件服务程序(中断服务程序)中去,执行其代码并为其服务(事件处理),待服务完成后,CPU再回到被打断的进程中继续工作的过程。
如何编写 自行查阅固件库文件函数
2.5 启动文件
1、定义 启动文件由汇编编写,是系统上电复位后第一执行的程序。
2、特征
1)初始化堆栈指针,主要是为 C 语言提供良好的运行环境
2)进行复位处理,执行该 Reset_Handler 函数
3)初始化向量表,中断入口地址列表
4)配置系统的时钟,调用 SystemInit
5)调用 C 库函数__main 进入 main.c 中的 main 函数执行
2.6 系统定时器
SysTick 叫做系统滴答时钟、系统定时器,属于 Cortex-M4 内核中的一个外设(外围设备),并且是24bit 向下递减 的计数器。
2.7 硬件定时器
举个例子 比如STM32F407
2 个高级控制定时器、10 个通用定时器和 2 个基本定时器高级控制定时器 (TIM1 和 TIM8),挂载到APB2
具有 16 位定时器功能,也具有 PWM 输出高级控制功能
通用定时器(TIM2 到 TIM5),挂载到APB1
具有 16或32位定时功能,也具有 PWM 输出控制功能
通用定时器(TIM9 到 TIM14),挂载到APB2
具有 16 位定时功能,也具有 PWM 输出控制功能
基本定时器(TIM6 和 TIM7),挂载到APB1
具有 16 位定时功能。
2.8 脉冲宽度调节
2.9 串口usart
看我以前的文章有写
2,10 蓝牙模块
2.11 温湿度模块
2.12 独立看门狗 窗口看门狗
看门狗电路的应用,使单片机可以在无人状态下实现连续工作,其工作原理是:看门狗芯片和单片机的一个I/O引脚相连,该I/O引脚通过程序控制它定时地往看门狗的这个引脚上送入高电平(或低电平),这一程序语句是分散地放在单片机其他控制语句中间的,一旦单片机由于干扰造成程序跑飞后而陷入某一程序段进入死循环状态时,写看门狗引脚的程序便不能被执行,这个时候,看门狗电路就会由于得不到单片机送来的信号,便在它和单片机复位引脚相连的引脚上送出一个复位信号,使单片机发生复位。即程序从程序存储器的起始位置开始执行,这样便实现了单片机的自动复位。
2.13 红外
2.14 RTC
看我以前的文章有写
2.15 FLASH
闪存(Flash Memory)是一种长寿命的非易失性(在断电情况下仍能保持所存储的数据信息)的存储器。用途SD卡、固态硬盘、芯片内存存储单元存储代码
2.16 ADC DAC
ADC,Analog-to-Digital Converter的缩写,指模/数转换器或者模数转换器。是指将连续变化的模拟信号转换为离散的数字信号的器件。真实世界的模拟信号,例如温度、压力、声音或者图像等,需要转换成更容易储存、处理和发射的数字形式。模/数转换器可以实现这个功能,在各种不同的产品中都可以找到它的身影。
2.17 I2C
2.18 spi
3.单片机编程思想(要会看开发文件)
每一款芯片都会有它自己的使用手册,基本是英文的,因为stm不是国产的,也有可能有中文版本的手册可以阅读,根据手册进行函数编写,还可以看固件库的函数.c也有对应的 初始化编写代码。