Cortex-M
文章平均质量分 90
--
刻BITTER
这个作者很懒,什么都没留下…
展开
-
STM32 实现简单定时任务调度器,动态创建任务,两种思路实现流水灯
代码实现和硬件没关系,所以并不限于STM32,Arduino 之类的其他地方也能用,只要有一个能获取时间的函数就行,或者说,只要有一个会随着时间自动增加的变量就行,时间单位无所谓,所以确实想的话,拿到电脑上也能用。原创 2023-06-06 19:27:45 · 3482 阅读 · 0 评论 -
用C++ 包装STM32 官方固件库 - 链式调用改写初始化结构体
在继续之前,先说明一下,当然,这么包一层肯定会付出一些代价,包括运行时间和空间占用,后面会有编译结果比较。有官方库“珠玉在前”,我觉得相比之下,这层包装付出的代价并不显著,有兴趣可以看看常用的GPIO 初始化函数在固件库里是怎么实现的,可以说是资源浪费的典范[doge]。另一方面,固件库里都是C 函数,函数实现都分开放在.c 文件里,编译器内联的可能性应该不大,因此就算是简单的给引脚设置个电平,用固件库也会产生额外的函数调用,所以很多人是在宏里自己写寄存器操作的。用C++ 的话,这种简单的函数放在头文件里,原创 2023-06-01 21:23:56 · 757 阅读 · 0 评论 -
HK32F030MF4P6 引脚分配辅助表格
也适用于HK32F0301MF4P6。官方的SDK 里附带了一个IO SELECT.xlsx 表格,就是用来辅助做引脚功能分配的,不太好用,因为里面用了复选框控件,兼容性不好。于是基于官方的文件,重新设计了一个表格:功能没区别,只是方便的显示出所有引脚的复用功能,标记出已经分配的引脚,避免冲突。标记功能全是用条件格式做的,兼容性好多了,相对更美观。可以随便调整单元格的大小,不会像复选框控件一样错位。原创 2023-06-01 16:40:30 · 447 阅读 · 0 评论 -
自制Arduino 风格开发板 - HK32F030MF4P6 紧凑开发板
模仿Arduino Nano 做一个HK32F030M 的紧凑开发板,排针间距和Arduino Nano 相同,整体尺寸略小,适合插在面包板上。兼容HK32F030MF4P6 和0301M,板载CH340N 串口和DS1307 时钟模块。。尺寸4.2 X 1.8cm,因为引脚数量更少,本来板子是可以更短一点的,但是没必要。原创 2023-05-29 17:54:32 · 1526 阅读 · 1 评论 -
STM32 编译期检查EXTI 中断函数是否正确定义
检查中断函数的目的是避免被低级错误浪费时间,比如,一开始用PA0 引脚输入中断信号,中断函数写的是,后来引脚换成PA2 了,但是中断函数忘记改。原创 2023-05-10 22:08:24 · 546 阅读 · 0 评论 -
C++ 特性简化STM32 风格固件库的GPIO 操作,使用HK32F030M
首先要处理的就是引脚定义的问题。这个引脚的Port 指针引脚的Pin时钟一类的宏,有几个固件库函数也要用到,于是常见的写法就是像上面的代码那样,一个引脚要定义好几个宏,东一榔头西一棒槌的,连最简单的给引脚置高电平都得同时引用和// 51 单片机 LED1 = 1;心智负担明显小多了,时间和精力也是很宝贵的,除了AVR,倒是和STM32 的风格差不多[doge]。// 分配PA0 引脚为LED1 LED1 = PA0;// 点亮LED1,置高电平 setpin(LED1);原创 2023-04-15 00:02:39 · 521 阅读 · 0 评论 -
Cortex M0 和M0+ 的简单说明 - 《Cortex M0/M0+ 权威指南》 英文版PDF 资料
ARM® Cortex-M0 处理器和 Cortex-M0+ 处理器都是 32 位处理器。它们的寄存器组内部寄存器、数据路径和总线接口都是 32 位。它们都有一个主系统总线接口,因此被认为是冯·诺依曼总线架构。Cortex-M0+ 处理器具有可选的单周期 I/O 接口,主要用于更快地访问外设 I/O 寄存器。翻译 2023-04-13 19:36:37 · 2587 阅读 · 0 评论