N32G401总体上和STM32F4系列差不多,无论是从芯片资源,还是各种寄存器,都有相通之处,所以N32G401的所有驱动,如果使用smt32的话也可以借鉴使用(修改函数名)
文章代码仅限于参考,如果直接CV是肯定用不了的,源代码链接在最后
PS:所有驱动基于N32G401F7S8-1,一共20个引脚,并且没有外接晶振,用的是内部的8MHZ的HSI,倍频到64MHZ,所以接下来的配置都以64MHZ为基准。
在编写驱动的过程中发现STM32单片机有直接写bitband操作,比如:
讯享网
在N32G401也能进行类似的操作,不过比较复杂,所以不建议使用
本质上这个就是对寄存器进行操作,所以我们可以直接这样来写,效果也是一样的:
讯享网
以上三个是基于ds18b20温度传感器的单总线传输配置的宏定义(下面有详细介绍)
GPIO
N32G401的GPIO挂载在APH总线,所以在移植代码的时候务必看清时钟开启函数
以配置KEY为例:KEY.c
KEY(按键中断,短按长按)
中断配置:KEY.c
讯享网
中断服务函数:N32G401IT.c
这里的中断服务函数,按键使用了枚举,以k8为例:IT.h

讯享网
一共有四个状态,枚举了五个元素,最后一个为状态的数量,至于为什么要多枚举一个状态的数量,从中断服务函数中可以看到
讯享网
这里按键每按下一次,进入中断,在中断中将按键对应的计数值加一,将得到的计数值对按键状态取余,这样就能保证按键能在设定的几种状态中不断循环切换。
如果需要长按,就用while代替if,然后加上一个延迟,建议延迟不易太久,不然一直卡在中断里面,芯片无法做别的事情,最后清除标志位。
LCD(HT1621驱动,用PWM控制背光)
HT1621驱动在网上已经有很多详细的教程,这里只简单的介绍
初始化就按上面GPIO的格式进行配置
首先是背光PWM配置如下:LCD.c
讯享网
除了函数名称以及结构体变量名称不一样之外,名称对应的功能基本相符,所以N32G401和STM32都可以参考这个进行PWM配置。(PULSE是用来设置占空比的,有专门的函数更改)
HT1621驱动函数配置:
在源文件里有详细的代码,代码都有详细的备注
ONE-Wire(DS18B20)
DS18B20注意事项:时序要求,在使用前请确认你的延迟函数精度能到1us,建议使用系统时针。
讯享网
代码仅限于参考时序图,如果直接CV是肯定用不了的,源代码链接在最后
USART
IWDG
讯享网
DELAY(系统时钟延迟)
源码地址:
(如果觉得内容不错,帮忙点亮星星~)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/138299.html