首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
stm32上的can总线难不难
2024-08-02
重学STM32---(十) ——CAN通信(二)
CAN协议是非常难的,但是在stm32中却是简单的,只需要我们配置寄存器即可,,,即使这样,我在学习的时候也遇到了许多困难 1.开时钟,不用说 2.设置GPIO口,,CAN_TX复用推挽输出,CAN_RX上拉或浮空输入 3.CAN初始化了,分三步 (1) 一般设置 /*对CAN初始化*/ CAN1->MCR |= 1 << 15; //软复位 CAN1->MCR &= ~(1 << 1); //退出睡眠模式 (郁闷,忘退出睡眠模式了,折腾了半天) CAN1-&g
怎样把UCos-ii_在STM32上的移植
下载代码 stm32 标准外设库是 stm32 全系列芯片的外设驱动,有了它能够大大加速我们 开发 stm32. 首先从 st 公司的站点下载最新的 stm32 标准外设库,写本文时最新的版本号是 V3.5.0. 解压该 zip 文件.得到例如以下目录和文件 STM32F10x_StdPeriph_Lib_V3.5.0\ _htmresc Libraries Project Utilities Release_Notes.html stm32f10x_stdperiph_lib_um
STM32上移植ds1307笔记
PS:网上关于ds1307的资料最多还是基于51等单片机的,和stm32上还是略有差别,代码是参考了http://www.openedv.com/posts/list/20167.htm 但是他的代码有一定错误,在我的设备上读不了数据,更别谈写数据了. 说明:此程序是控制IO口模拟i2c控制ds1307 关于ds1302的资料这里就不多说了,主要分析下代码.让各位入门的新手参考一下,附上代码的下载链接:http://download.csdn.net/detail/u012062785/8966
朱晔的互联网架构实践心得S2E1:业务代码究竟难不难写?
注意,这是我的架构实践心得的第二季的系列文章,第一季有10篇你也可以回顾. 见https://www.cnblogs.com/lovecindywang/category/1296779.html 最近我一直在思考几个问题: 业务代码究竟难不难写? 一直开发业务代码是不是完全学不到东西? 5年+开发经验的老程序员的价值在哪里? 如何通过面试来区分业务代码开发的水平? 其实,这几个问题或多或少是相互关联的.有的时候大家也会自嘲说,"程序员接手的代码永远是烂摊子,然后自己继续在这个烂摊子上产出代码,
php难不难?
php难不难?多久能学会? 我认为php难不难学和php多久学会是一个共性问题,所以我们首先来总结下有那么几种情况. 好的情况: 1.不排除有的人有天赋.智商高脑仁大.上手很快,这个和脑仁中的Z字回形沟有关.不过大部分人的脑仁都是差不多分量的. 2.不排除有的人具备疯狗般的疯狂学习精神.这种人从上手到提升周期也很短. 3.不排除有的人人缘很好,譬如MM程序员.一碰到问题就会有个中哥哥姐姐弟弟妹妹们来帮助.指导.甚至代为调试程序.如果自身努力再高一些,这类人进步也是很快.编程的世界里如果有大神帮你
自学java难不难 搞定这十三步就够了
自学java难不难,对不同的人来说可能不一样,有着编程基础的来说,相对容易.如果是完全小白,就会稍微困难点,下面总结了十三步来自学java的步骤. 第1步:自学JAVA的开发环境配置.开发首个Java程序.也推荐大家刚开始使用eclipse等IDE,无需纠结是不是必须要从记事本刚开始. 第2步:自学数据类型.运算符.变量.这也是编程的基本,是程序的“砖块”.这类内容大部分编程语言都有,并且非常类似. 第3步:自学控制语句.这也是编程的基本,是程序的“混凝土”.有了控制语句+变量,理论上你也就可以
stm32上的Lava虚拟机开发进度汇报(1)
这几天我打算在stm32上做一个lava的虚拟机,只要160*80的黑白显示就行了,主要是想怀旧一下,嘿嘿. 目前的进度是图形显示和按键处理完成了,还有文本显示.文件处理.其他函数等. 当然,这都仅是在C语言的状态下写函数,真正的工作是读取一个lav的文件然后解析.目前我还对lav文件不是很熟悉,还要查找一下资料. 图形显示这里浪费了很长时间,主要是考虑到刷屏的速度,接下来是将文字显示做好.
FreeRTOS移植到STM32上的移植过程
所有的单片机都是顺序执行的,而对于多任务而言就显得力不从心了,虽然在一些小项目中可以通过定时器来实现,但这种实现方式没有实时性,一旦任务需要在规定时间内做出响应,那只能通过实时操作系统来完成了.在很多实时操作系统中,FreeRTOS有这良好的移植,而且体积小,其可剪裁性和优越的实时性能无不让其成为众多实时操作系统的首选,最大的好处当然就是他的免费开源.废话不多说,下面是FreeRTOS移植到STM32上的详细步骤. 首先,下载FreeRTOS源代码,网址:https://www.freertos
一步步学习操作系统(1)——参照ucos,在STM32上实现一个简单的多任务(“啰里啰嗦版”)
该篇为“啰里啰嗦版”,另有相应的“精简版”供参考 “不到长城非好汉:不做OS,枉为程序员” OS之于程序员,如同梵蒂冈之于天主教徒,那永远都是块神圣的领土.若今生不能亲历之,实乃憾事! 但是,圣域不是想进就能进的呀…… OS融合了大量的计算机的基础知识,各个知识领域之间交织紧密,初来乍到者一不小心就会绕出个死结. 我的方法是:死结就死结,不管三七二十一,直接剪断,先走下去再说,回头我们再把这个剪断的死结再接上. 我们知道,“多任务”一般在介绍OS的书籍中,是属于中间或者靠后的部分,又或者分散在各
LWIP在STM32上的移植
本文做记录摘抄,加上自己的体会: 文章标题:STM32使用LWIP实现DHCP客户端 http://www.cnblogs.com/dengxiaojun/p/4379545.html 该文章介绍了几点,LWIP源码的内容.关键点:1.include下新建arch文件夹,在arch文件夹下的sys_arch.c多任务定时检测功能,配合的timer.c文件完成协议栈心跳抽水泵. 2.lwipopts.h文件是对协议栈的配置文件,内存大小设置.是否使用操作系统.是否使能DHCP功能. 3.netif
一步步学习操作系统(2)——在STM32上实现一个可动态加载kernel的"my-boot"
如果要做嵌入式Linux,我们首先要在板子上烧写的往往不是kernel,而是u-boot,这时需要烧写工具帮忙.当u-boot烧写成功后,我们就可以用u-boot附带的网络功能来烧写kernel了.每当板子上电时,u-boot一般会被加载到内存的前半段,如果我们的kernel之前就已经被烧写到开发板了,那么u-boot会加载kernel到内存的后半段并跳转到kernel的起始地址处执行(或者直接跳转到kernel的起始地址处执行,如果kernel可以直接在flash上执行的话.) 如上图所示,绿
STM32上使用JSON
一.STM32工程中添加JSON 最近在一网2串项目,串口和网口之间可能需要定义一下简单的通信协议,而通信协议上则需要去定义一下通信的数据格式,上次听剑锋说要用Json来定义,目前查了下资料具体如何去应用还不 会.因为最新的KEIL上支持JSON的调用,软件中有JSON库,只需要添加到自己的工程中就好.如何添加在keil添加json到工程如下所示步骤: 并且在主程序中包含json的头文件#include "jansson.h",就可以调用json的函数. root=json_pack(
DevOps 转型到底难不难(转自成哥的世界)
原文:https://mp.weixin.qq.com/s/QwZf6ZsKGNT6YyereSmpQg DevOps 自 2009 年诞生以来,至今整整过去了十年,从最初的摸索,逐步变成一种主流的软件开发交付模式.DevOps 这个词来自于 Development 和 Operations 的组合,可以说,DevOps 的应用,很好地填补了开发端和运维端之间的信息鸿沟,改善了团队之间的协作关系. 相信你也发现,DevOps 在我们身边出现的频率越来越高.各种大会上经常出现DevOps专场,行业
在stm32上移植wpa_supplicant(一)
wifi芯片为88w8686,已经写好了驱动,用的是SPI方式,接下来准备移植wpa_supplicant.参考的资料为一篇论文----<基于微控制器的WPA技术研究与应用>. wpa_supplicant src目录是wpa认证的源码,wpa_supplicant是wpa_supplicant程序的源码.分析wpa_supplicant里的源码可以了解wpa接口的使用方法. VS2013工具 在wpa_supplicant目录里面提供了两个工程VS2005和Qt Create,我打开的是VS
stm32内部的CAN总线
功能概述: bxCAN是基本扩展CAN(Basic Extended CAN)的缩写,它支持CAN协议2.0A和2.0B:它的设计目标是以最小的CPU负载来高效处理大量的报文.它也支持报文发送的优先级要求(优先级可软件配置). CAN2.0B内核: bxCAN模块可以完全自动地接收和发送CAN报文,且完全支持标准标识符(11位)和扩展标识符(29位). 主要特征: 支持CAN协议2.0A和2.0B主动模式: 波特率最高可达1兆位/秒:(属于OSI11898标准) 支持时间触发通信功能:(可以通过
lwip移植到stm32上-enc28j60,103mcu(2)
前面小玩了一下ucos和lwip,但是都还不是真正的网络多任务,真正的网络多任务应该是什么样子的呢?应该是有一个专门的任务负责网络的通讯,他负责将数据发送出去,将数据接收回来,而其他的需要用到网络的任务与这个任务通讯,这才是能够极大提升网络效率的办法,lwip支持这种办法,不过移植起来就比较磨人了 首先第一步是修改lwip的配置文件,如下 #define NO_SYS 0 //使用UCOS操作系统 改了这个之后会发现卧槽一下子缺了好多东西,实际上是这样,lwip使用一系列的宏和方法封装了一个操作
在STM32上如果不使用外部晶振,OSC_IN和OSC_OUT的接法
如果使用内部RC振荡器而不使用外部晶振,请按照下面方法处理: 1)对于100脚或144脚的产品,OSC_IN应接地,OSC_OUT应悬空.2)对于少于100脚的产品,有2种接法: 2.1)OSC_IN和OSC_OUT分别通过10K电阻接地.此方法可提高EMC性能. 2.2)分别重映射OSC_IN和OSC_OUT至PD0和PD1,再配置PD0和PD1为推挽输出并输出'0'.此方法可以减小功耗并(相对上面2.1)节省2个外部电阻. 以下是在ST英文网站FAQ上抄下的详细解释: 1) In 100
百度上有个最难数独, 用python跑它
直接上代码 #!/usr/bin/python3 #coding=GB2312 import tkinter as tk import threading import time import random import copy import sys class Sudoku(threading.Thread): winw = 500 winh = 510 def __init__(self): threading.Thread.__init__(self) self.ui = tk.Tk()
在stm32上移植wpa_supplicant(二)
第一层调用的移植和裁剪. wpa_supplicant_init 照论文的指示,删除wpa_params和wpa_global相关的东西.初始化流程也相当简单,driver初始化,eap_register_methods加密方法初始化,eloop_init事件循环初始化. wpa_supplicant_run 这其中注册了两个回调函数,然后eloop_run开始事件循环. wpa_supplicant_deinit eap_peer_unregister_methods注销加密方法,eloop_
stm32上的Lava虚拟机开发进度汇报(4)
这段时间颓废了,基本上没在弄这个东西. 主要是因为前段时间把代码基本上写完之后,但是问题一大堆,除了自己写的几个简单测试程序,其他现成的东西没有一个是能正常运行的,很是郁闷,也不知道哪里有错误,所以放下了. 后来觉得不甘心,又从头到尾把伪指令部分写了一遍,好了一点,有几个程序能显示logo了,但是,还是会卡死. 后来除了补了几个严重的bug,比如Block函数,比如函数调用部分等. 今天心血来潮又调试了一下,发现旧代码直接跳过logo部分但是能进入<橡皮屋>的游戏部分,而新代码在logo部分正
stm32上的Lava虚拟机开发进度汇报(3)
感觉遇到一个瓶颈了,这几天都没有什么进度. 前几天把函数和一些最基本的伪指令实现了一下,能跑一点仅使用了绘图函数的lav,但是函数调用的问题一直没解决. 后来发现是粗心漏写了个++,解决了函数调用的问题. 接下来解决一些稍微麻烦点的,push字符串.printf.sprintf函数等. 以为差不多了,结果跑一下没一个能完整运行起来的,最好的是坦克,能显示完整一幅图,而我做的<橡皮屋>似乎文件读写有问题. 上午把伪指令部分从头整理了一下,按大小全部写在switch里,结果似乎还是没有什么起色,任
热门专题
tomcat 配置context
spark groupbykey分组计算
eclipse src js 缺项目名 404
web端如何连接扫描枪
mybatis-plus 类对象关联
宝塔 计划任务 thinkphp5
ceph的卷共享给3个主机使用
linux centos 如何备份还原
pandas读取excel数据,逐行插入mysql
mysql 动态列转行
mysql输入中午显示问号
cuvidCtxLockCreate 失败
nuxtjs首屏加载优化至50ms
jpa merge 不生效
synology webhook什么意思
Project的日程表中拖任务时不见了
mysql 导入 oracle 库
centos mysql进去命令
spring boot postgres数据库配置
python的map存储数据