12 2019 档案

摘要:串行通讯与并行通讯 按数据传送的方式,通讯可分为串行通讯与并行通讯,串行通讯是指设备之间通过少量数据信号线(一般是8 根以下),地线以及控制信号线,按数据位形式一位一位地传输数据的通讯方式。 而并行通讯一般是指使用8、16、32 及64 根或更多的数据线进行传输的通讯方式,它们的通讯传输对比说明见图 阅读全文
posted @ 2019-12-31 10:05 国产零零柒 阅读(659) 评论(0) 推荐(0)
摘要:USART 初始化结构体详解 标准库函数对每个外设都建立了一个初始化结构体,比如USART_InitTypeDef,结构体成员用于设置外设工作参数,并由外设初始化配置函数,比如USART_Init()调用,这些设定参数将会设置外设相应的寄存器,达到配置外设工作环境的目的。 初始化结构体和初始化库函数 阅读全文
posted @ 2019-12-30 11:28 国产零零柒 阅读(13411) 评论(0) 推荐(1)
摘要:启动文件简介 启动文件由汇编编写,是系统上电复位后第一个执行的程序。主要做了以下工作: 1、初始化堆栈指针SP=_initial_sp 2、初始化PC 指针=Reset_Handler 3、初始化中断向量表 4、配置系统时钟 5、调用C 库函数_main 初始化用户堆栈,从而最终调用main 函数去 阅读全文
posted @ 2019-12-27 09:46 国产零零柒 阅读(1449) 评论(0) 推荐(0)
摘要:问题不能拖,我这就来学习一下吧,争取一次搞定。 在任何程序设计环境及语言中,内存管理都十分重要。 内存管理的基本概念 分析C语言内存的分布先从Linux下可执行的C程序入手。现在有一个简单的C源程序hello.c 1 #include 2 #include 3 int var1 = 1; 4 5 i 阅读全文
posted @ 2019-12-26 09:30 国产零零柒 阅读(595) 评论(0) 推荐(0)
摘要:我们知道,存储器本身没有地址,给存储器分配地址的过程叫存储器映射,那什么叫寄存器映射?寄存器到底是什么? 在存储器Block2 这块区域,设计的是片上外设,它们以四个字节为一个单元,共32bit,每一个单元对应不同的功能,当我们控制这些单元时就可以驱动外设工作。我们可以找到每个单元的起始地址,然后通 阅读全文
posted @ 2019-12-25 09:57 国产零零柒 阅读(3025) 评论(0) 推荐(0)
摘要:异常类型 F103 在内核水平上搭载了一个异常响应系统, 支持为数众多的系统异常和外部中断。其中系统异常有8 个(如果把Reset 和HardFault 也算上的话就是10 个),外部中断有60个。除了个别异常的优先级被定死外,其它异常的优先级都是可编程的。有关具体的系统异常和外部中断可在标准库文件 阅读全文
posted @ 2019-12-24 09:23 国产零零柒 阅读(820) 评论(0) 推荐(0)
摘要:GPIO 是通用输入输出端口的简称,简单来说就是STM32 可控制的引脚,STM32 芯片的GPIO 引脚与外部设备连接起来,从而实现与外部通讯、控制以及数据采集的功能。STM32 芯片的GPIO被分成很多组,每组有16 个引脚,如型号为STM32F103VET6 型号的芯片有GPIOA、GPIOB 阅读全文
posted @ 2019-12-23 09:46 国产零零柒 阅读(1555) 评论(0) 推荐(0)
摘要:STM32 的I2C 特性及架构 如果我们直接控制STM32 的两个GPIO 引脚,分别用作SCL 及SDA,按照上述信号的时序要求,直接像控制LED 灯那样控制引脚的输出(若是接收数据时则读取SDA 电平),就可以实现I2C 通讯。同样,假如我们按照USART 的要求去控制引脚,也能实现USART 阅读全文
posted @ 2019-12-20 15:47 国产零零柒 阅读(3131) 评论(0) 推荐(0)
摘要:文件和目录(底部有视频资料) cd /home 进入 ‘/ home’ 目录’ cd … 返回上一级目录 cd …/… 返回上两级目录 cd 进入个人的主目录 cd ~user1 进入个人的主目录 cd - 返回上次所在的目录 pwd 显示工作路径 ls 查看目录中的文件 ls -F 查看目录中的文 阅读全文
posted @ 2019-12-19 09:03 国产零零柒 阅读(214) 评论(0) 推荐(0)
摘要:CMSIS 标准及库层次关系 因为基于Cortex 系列芯片采用的内核都是相同的,区别主要为核外的片上外设的差异,这些差异却导致软件在同内核,不同外设的芯片上移植困难。为了解决不同的芯片厂商生产的Cortex 微控制器软件 的兼容性问题,ARM 与芯片厂商建立了CMSIS 标准(CortexMicr 阅读全文
posted @ 2019-12-18 10:09 国产零零柒 阅读(1477) 评论(0) 推荐(0)
摘要:中断作为stm32中必不可少的一个功能,其重要性是不言而喻的因此把中断学习好是根本。 所以今天就来好好啃一下中断配置的知识,俗话说:磨刀不误砍柴工。问题是什么呢?项目中我用到了一个触摸键盘TTP229,结果在测试键盘时,不能够输入密码?最终,调试出bug就是由于中断优先级的影响。 本项目使用到的是S 阅读全文
posted @ 2019-12-17 10:18 国产零零柒 阅读(3977) 评论(0) 推荐(0)
摘要:stm32作为现在嵌入式物联网单片机行业中经常要用多的技术,相信大家都有所接触,今天这篇就给大家详细的分析下有关于stm32的出口,还不是很清楚的朋友要注意看看了哦,在最后还会为大家分享有些关于stm32的视频资料便于学习参考。 什么是串口 UART : Universal Asynchronous 阅读全文
posted @ 2019-12-16 11:12 国产零零柒 阅读(842) 评论(0) 推荐(0)
摘要:手头上有一个差分驱动的小车,使用两个直流电机驱动,要实现小车的在给定速度下运动,完成直线行驶,转向,加速,刹车等复杂运动。 使用的电机是12v供电的直流电机,带编码器反馈,这样就可以采用闭环速度控制,这里电机使用PWM驱动,速度控制框图如下: 由以上框图可知,STM32通过定时器模块输出PWM波来控 阅读全文
posted @ 2019-12-12 16:04 国产零零柒 阅读(3348) 评论(0) 推荐(0)
摘要:Linux系统上命令的使用格式,及常用命令示例 1、命令提示符 登录系统后,第一眼看到的内容是: [root@node01 ~]# 上图就是 Linux 系统的命令提示符。那么,这个提示符的含义是什么呢? []:这是提示符的分隔符号,没有特殊含义。 root:显示的是当前的登录用户,笔者现在使用的是 阅读全文
posted @ 2019-12-11 16:47 国产零零柒 阅读(230) 评论(0) 推荐(0)
摘要:一、互斥锁 为啥要有互斥? 多个进程/线程执行的先后顺序不确定,何时切出CPU也不确定。 多个进程/线程访问变量的动作往往不是原子的。 1. 操作步骤 (1)创建锁 // 创建互斥锁mutex pthread_mutex_t mutex; (2)初始化锁 在Linux下, 线程的互斥量数据类型是pt 阅读全文
posted @ 2019-12-09 16:23 国产零零柒 阅读(330) 评论(0) 推荐(0)
摘要:很多答案都谈到算法的重要性,我的答案主要集中在C++上,只是一些个人经验。 其实我以前也有这样的困惑,感觉完了不知道怎么用。而且我也不是学计算机的,也没有从事相关工作,所以大概有十年的时间都没写什么程序。最近因为想做点东西,所以又重新开始写。 刚开始用的是python,比较好学。但是因为神经网络计算 阅读全文
posted @ 2019-12-06 14:40 国产零零柒 阅读(990) 评论(0) 推荐(0)
摘要:其实,vii 就是写的一个脚本,跟 vi 没半毛钱关系,只不过借用一下这个名字而已。那这个脚本长什么样呢?look: 下面来详细的解析上面的代码,来看第1行: #!/bin/bash 这是Shell脚本的格式,没啥好讲的。 再来看第3-6行: if [ $# -eq 0 ] then vi fi 这 阅读全文
posted @ 2019-12-04 11:07 国产零零柒 阅读(401) 评论(0) 推荐(0)
摘要:刚开始看STM32的库函数,会有很多疑惑,例如指针怎么用,结构体跟指针怎么配合,例如函数的参数有什么要求,如何实时更新IO口的数据等。如果重新进行C语言的学习,那么要学很久才能够系统地认识。本文则将比较容易想不起来的知识点进行简单的整理。 1、#ifdef 和 #ifndef #ifdef 标识符A 阅读全文
posted @ 2019-12-03 16:33 国产零零柒 阅读(400) 评论(0) 推荐(0)
摘要:本篇文章是对C语言字符串操作进行了详细的总结分析,需要的朋友参考下 1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, p1) 附加字符串 strncat(p, p1, n) 附加指定长度字符串 strlen(p) 取字 阅读全文
posted @ 2019-12-02 15:23 国产零零柒 阅读(3307) 评论(0) 推荐(0)