N32G430C8L7
夏侯城临
这个作者很懒,什么都没留下…
展开
-
国民技术N32G430开发笔记(21)- 软件模拟i2c的使用
prescaler = 64-1 ,1us加一次,Period设置最大,最大延时数就是这个。1、i2c硬件资源不太够的时候,可以用普通gpio模拟i2c的功能,3、延时函数换成自己的即可,楼主为了准确性,延时函数开了一个定时器。话不多说,直接上代码,使用时直接替换对应管脚即可。原创 2023-05-17 05:57:36 · 625 阅读 · 0 评论 -
国民技术N32G430开发笔记(20)- FreeRTOS的移植
我们从demo中copy一份FreeRTOSConfig.h,我选择的是这个目录下的文件。protable文件夹,因为是gcc环境,所以保留Gcc文件夹。而N32G430的内核是CM4F,所以只保留ARM_CM4F。2、新建一个FreeRTOSDemo的工程,可以把之前的工程中的Bootloader工程复制一份。3、打开下载的freertos代码将相应代码移植到我们的工程中。在FreeRTOSConfig.h中打开多编译器的支持。内存溢出了,我们在config.h文件修改,定义小一点,原创 2023-05-14 18:35:49 · 1825 阅读 · 0 评论 -
国民技术N32G430开发笔记(19)- IAP 升级 I2C1 从机收发数据
1、之前讲过usart2收发数据进行IAP升级,上节i2c1设置为从机后,可跟Android版卡通讯,那么融合之前的代码,我们这一节用i2c收发数据进行IAP升级。跟usart不用的是数据包数据长度为0x80,串口之前受限于usb转串口驱动,长度为0x40。4、N32版卡都在handle_i2c_message函数中处理,发送升级模式指令 —>>> 发送升级文件大小—>>>>5、其他 写flash以及跳转跟串口升级一样。分包发送数据—>>>数据包发送完成指令。原创 2023-05-06 18:02:53 · 883 阅读 · 0 评论 -
国民技术N32G430开发笔记(18)- I2C1 从机收发数据
接收到数据都放在 send_i2c_message跟handle_i2c_message函数中处理。1、将PB6 PB7设置为i2c从机,跟android板卡通讯。3、i2c从机配置,采用中断方式收发数据。n32将app_version返回电视端。main.c中增加收发buffer的定义。n32将收到的命令打印出来。2、Android发送。原创 2023-05-06 16:20:56 · 1043 阅读 · 0 评论 -
国民技术N32G430开发笔记(17)- I2C1 Master的设置
1、将PB6 PB7 初始化为I2C1 i2c master 模式,然后往AT24C02里写五个数据,然后读出来。2、在Common里增加i2c.c i2c.h文件。3、main.c里调用验证。原创 2023-05-04 16:35:00 · 591 阅读 · 0 评论 -
国民技术N32G430开发笔记(16)- IAP升级 整合多个bin文件为一个升级包
3、我们新建一个(16+8+20)*1024个字节的数组,将Bootloader.bin从0开始填到数组中,将Settings.bin从0x4000处填充到数组中,将Application.bin 从0x6000填充到数组中,最后写入文件中,即可得到我们想要的all.bin。Bootloader.bin. 起始地址0x8000000。Application.bin 起始地址0x8006000。7、根目录下make后回在output下生成all.bin文件。原创 2023-05-04 16:14:47 · 736 阅读 · 0 评论 -
国民技术N32G430开发笔记(15)- IAP升级 树莓派串口发送数据
3、数据包发送 0x04 0x80 0x00 0x00 0x00 0x00 …2、升级文件大小 0x03 0x04 0x00 0x00 0x00 0x00 checksum。1、获取版本号 0x01 0x02 0x00 0x00 checksum。1、进入升级模式 0x02 0x02 0x00 0x00 checksum。4、数据包发送完成 0x05 0x02 0x00 0x00 checksum。原创 2023-05-03 15:46:26 · 957 阅读 · 0 评论 -
国民技术N32G430开发笔记(14)-IAP升级 usart2接收数据
5、重启后,mcu进入bootloader后,读取update_flag,如果为1,将download区域数据拷贝到App区域,然后跳转到App执行,完成App区域的升级。3、数据包发送 0x04 0x80 0x00 0x00 0x00 0x00 …2、升级文件大小 0x03 0x04 0x00 0x00 0x00 0x00 checksum。1、进入升级模式 0x02 0x02 0x00 0x00 checksum。原创 2023-05-03 14:24:18 · 1233 阅读 · 1 评论 -
国民技术N32G430开发笔记(13)- 实现一个轻量级的printf
1、在IAP升级中我们将App的代码固定在20K的大小,但是当使用printf函数时候发现,整个APP的代码会达到37K,远远超出我们20K的空间,所以决定不调用标准库的printf函数。2、在Common中增加Log文件夹,创建log.c log.h文件,并在Makefile中增加对log.c的编译。5、而编译后的代码仅仅只有7K,符合预期。3、在使用打印的地方掉用。原创 2023-05-02 17:17:54 · 212 阅读 · 0 评论 -
国民技术N32G430开发笔记(12)- IAP升级 Settings区域数据初始化
这里我们将setting区域的数据提前初始化,通过c语言的文件流的操作方法,创建一个setting.bin文件,然后将setting区域存储的结构体初始化后写入setting.bin文件,然后通过pyocd烧录到0x08004000地址即可。1、假如,有两个产品,A产品跟B产品,硬件都一样,要求一个软件里的board_name为N32G430C8L7_STB_A,另一个软件里的board_name为N32G430C8L7_STB_B。4、setting_init.c文件。6、根目录执行make后,原创 2023-04-28 22:08:48 · 794 阅读 · 0 评论 -
国民技术N32G430开发笔记(11)- IAP升级 Settings区域数据读写
1、Settings区域可以储存我们的一些数据,我们定义成结构体形式,然后按照结构体的形式写进falsh,使用时读取即可。比如我们定义了一个system_info的结构体,我们要获取是否升级的这个flag值,2、新增setting.c setting.h文件。我们调用下看看效果,是不是我们想要的。我们写入一个2,看打印读取的是否为2.原创 2023-04-28 16:20:56 · 165 阅读 · 0 评论 -
国民技术N32G430开发笔记(10)- IAP升级 Application 的制作
程序的执行地址变成了之前flash设定的0x08006000处,1、App程序跟Bootloader程序最大的区别就是,直接输入 make gdapp也是可以烧录的。所以修改Application工程的ld文件。烧录是起始地址也要改为x0x08006000。origin 改成 0x08006000。length 改成0x5000。原创 2023-04-28 16:06:28 · 1116 阅读 · 0 评论 -
国民技术N32G430开发笔记(9)- IAP升级 Bootloader的制作
之前的教程都是基于Application程序开发,所以跳转到Application后,会看到定时器6每100ms去开关LED1,1、上节提到Flash的分区,0x8000000-0x8004000为Boot分区,我们的bootloader就烧录到此分区。代码路径:https://gitee.com/xiaoguo-tec_0/n32iap。Bootloader很简单,新建一个普通的工程,也不用初始化外部设备,开机后,直接跳转到。当然App的分区程序也要提前烧录进去,App分区所在的地址即可,原创 2023-04-28 15:52:56 · 1854 阅读 · 0 评论 -
国民技术N32G430开发笔记(8)- 内部Flash的读写操作
1、主存储区最大为 64KB,也称作主闪存存储器,包含 32 个 Page,用于用户程序的存放和运行,以及数 据存储。3、我们在程序里从0x8004000地址往flash写入一行字符串,然后再从flash读出。新增flash.c flash.h文件。每一页的大小为2K字节。读出我们写入的字符串。原创 2023-04-28 14:22:47 · 1706 阅读 · 1 评论 -
国民技术N32G430开发笔记(7)- Gpio EXTI中断的使用
1、N32G430C8L7_STB板卡带有三个用户按键,我们初始化key1 key2 按键,当按键按下时,在中断处理函数里输出我们的打印信息。3、16条中断线与gpio的对应关系,在芯片手册上映射关系如下,但是我觉得是错的。5、烧录后,按下key1 key2 中断处理函数里会有相关打印。新增key_input.h key_input.c 文件。贴一张GD32 的映射图:(这个对应关系是对的)4、KEY1 – PA4 对应EXTI4。KEY2 – PA5 对应EXTI5。原创 2023-04-28 09:48:31 · 1112 阅读 · 0 评论 -
国民技术N32G430开发笔记(6)- 通用定时器TIM2 pwm的输出
1、tim2 为通用定时器,使用其通道3 产生一个pwm波形。新增pwm.c pwm.h文件。占空比50%,频率1KHZ。通道3 对应的管脚为PA2.原创 2023-04-27 18:29:21 · 799 阅读 · 0 评论 -
国民技术N32G430开发笔记(5)- 基本定时器TIM6的使用
4、main.cpp引用time6_init()后,重新烧录,即可看到led1 100ms闪烁。1、设置一个定时器,100ms一次去开关LED灯。大部分代码来自官方demo。原创 2023-04-27 15:16:28 · 1568 阅读 · 0 评论 -
国民技术N32G430开发笔记(4)- - 串口2中断+IDLE接收不定长数据
1、根据手册可查PA6 PA7可复用usart2功能。我们将电脑端发送过来的数据 返还回电脑。2、复用功能配置如图。原创 2023-04-27 10:23:24 · 1178 阅读 · 1 评论 -
国民技术N32G430开发笔记(3)- 串口1的使用
4、printf重映射,因为gcc环境,重写_write函数。根据芯片手册,PA9 PA10可用作uasrt1。1、usart1用作printf的打印使用。5、使用printf就可以收到打印了。3、main.c调用。原创 2023-04-27 09:38:36 · 589 阅读 · 0 评论 -
国民技术N32G430开发笔记(2)- 点亮开发板的LED
1、官方下载的AN_N32G430_GCC Development Environment Application Note_V1.zip文件里。2、将LedBlink工程 的bsp_led.c bsp_led.h移到我们的代码,这里包含了对板载三颗LED灯的初始化以及控制。有LedBlink例子,我们在此基础上修改即可。原创 2023-04-27 06:51:44 · 496 阅读 · 0 评论 -
国民技术N32G430开发笔记(1)-macos开发环境搭建
pyocd 没有找到官方的pack,所以我们从国民技术官网下载最新的pack,解压PACK.zip包,将文件Nations.N32G430_DFP.1.0.0.pack放置工程根目录。1、安装arm-none-eabi- 工具链。a、python官网下载最新版的python。如果没有安装brew,请先安装brew。我的开发板为N32G430C8L7-STB。4、烧写程序命令,针对我的工程目录。输入命令显示如下,表明连接成功。2、安装vscode。原创 2023-04-27 06:26:06 · 1316 阅读 · 2 评论