王超的独立博客

发现更大的世界和更小的自己

使用系统定时器SysTick实现精确延时微秒和毫秒函数

东芝开发板试用

SysTick定时器简介 SysTick定时器是存在于系统内核的一个滴答定时器,只要是ARM Cortex-M0/M3/M4/M7内核的MCU都包含这个定时器,它是一个24位的递减定时器,当计数到 0 时,将从RELOAD 寄存器中自动重装载定时初值,开始新一轮计数。使用内核的SysTick定时器来实现延时,可以不占用系统定时器,由于和MCU外设无关,所以代码的移植,在不同厂家的Cor...

东芝半导体最新ARM开发板——TT_M3HQ开箱评测

东芝开发板试用

前言 最近从面包板社区申请到一块东芝最新ARM Cortex-M3内核的开发板——TT_M3HQ,其实开发板收到好几天了,这几天一直在构思怎么来写这第一篇评测文章,看大家在社区也都发了第一篇评测,我也趁着周末有时间来写一下开箱报告。了解过东芝的光耦和存储设备,但不知道东芝还有MCU产品,更没有用过相关的开发板,这次有幸能申请到一块最新的M3开发板,非常感谢面包板社区、东芝半导体、中科创达的...

STM32F407外部晶体改为25M后检测不到芯片的解决办法

STM32踩坑记录

问题描述 分享一个之前遇到的STM32F4晶体频率问题,导致单片机死机的解决办法。使用一款新的F4开发板,直接使用的正点原子STM32F407工程模板代码,管脚配置正确,下载到外部晶体为25MHz的开发板之后,LED不闪烁,串口无输出,单片机直接死机,调试器检测不到芯片。 问题分析 之前写过一篇文章:STM32串口打印输出乱码的解决办法,那个F103乱码是因为外部晶体频率12M,而程序...

详解串行通信协议及其FPGA实现

通信协议

前言 好久没更新博客了,这篇文章写写停停,用了近一周的时间,终于写完了。本篇文章介绍,串口协议数据帧格式、串行通信的工作方式、电平标准、编码方式及Verilog实现串口发送一个字节数据和接收一个字节数据。 对于MCU串口的发送接收,可能就是1行代码就能实现串口的发送和接收: STM32的串口接收和发送 //STM32发送1个字节 USART_SendData(USART1, 'A')...

玄铁910是个啥?是芯片吗?

阿里平头哥首次交货

1.平头哥首次交货 2019年7月25日,阿里云上海峰会,平头哥半导体发布新品玄铁910,最高支持16核,2.5GHz,7.1 Coremark/MHz。阿里平头哥,走出了万里长征第一步。 玄铁910的研发绝对不是一蹴而就,其前身中天微自研开发的CK801、CK802、CK803、CK805、CK807、CK810、CK860等7款嵌入式CPU IP核,均已得到大规模量产的验证,授权...

Qt平台下使用QJson解析和构建JSON字符串

QJson的使用

前言 上一篇介绍了C语言写的JSON解析库cJSON的使用:使用cJSON库解析和构建JSON字符串 本篇文章介绍,Qt开发环境下QJson库的使用示例,JSON解析配合API接口,就可以实现一些有趣的工具了,如全国油价查询工具,全国天气查询,空气质量查询,黄历查询,生活指数等等实用工具的开发。 分享几个免费的API提供平台: K780:http://www.k780.com/...

使用cJSON库解析和构建JSON字符串

C语言

前言 其实之前的两篇博文已经介绍了json格式和如何使用cJSON库来解析JSON: 使用cJSON库解析JSON JSON简介 当时在MCU平台上使用时,会出现时间长了死机的情况,在调用cJSON_Print输出格式化后的JSON数据之后, LOG("JSON数据:\n%s\n", cJSON_Print(root)); 要使用cJSON_Delete释放...

【2019北京国际消费电子博览会】参观总结

展览参观

关于消费电子展览 目前国内较大的几个消费电子博览会: 关于青岛SINOCES 青岛环球国际消费电子博览会有限公司成立于2015年,坐落于美丽的海滨城市青岛,注册资本500万元人民币。公司主要经营展览展示服务、会务服务、庆典礼仪服务、代理,设计、制作、代理、发布国内广告业务等。 官网:中国电博会 关于北京3E展览 2019北京国际消费电子博览会,简称“3E”,是由振威展...

织女星开发板RISC-V内核实现微秒级精确延时

织女星开发板使用

前言 收到VEGA织女星开发板也有一段时间了,好久没玩了,想驱动个OLED屏,但是首先要实现IIC协议,而实现IIC协议,最基本的就是需要一个精确的延时函数,所以研究了一下如何来写一个精确的延时函数。众所周知,ARM Cortex-M内核都有一个24位的SysTick系统节拍定时器,它是一个简易的周期定时器,用于提供时基,多为操作系统所使用。RV32M1的RISC-V内核RI5CY也有一个...

QLineEdit限制数据类型——只能输入浮点型数

Qt学习

前言 最近做了一个小的上位机,要通过串口来下发几个时间参数,为了防止误输入,产生不必要的麻烦,我把输入范围限制在0-680的浮点型数据,支持小数点后2位。学习了一下QLineEdit类是如何限制输入类型的。本来是想写一个函数,在下发参数时,传QLineEdit的字符串参数进去,然后判断是否合法,如果不合法,则不下发参数,请用户修改后再确认。这么做也实现了,但是想Qt这么强大,应该会考虑到这...