RISC-V技术论坛
登录
直播中
xcs101
11年用户
118经验值
擅长:可编程逻辑,MEMS/传感技术,处理器/DSP,控制/MCU
私信
关注
【南京中科微CSM32RV20开发板试用体验】无调试器迈出第一步,建立工程,点亮一个LED
CSM32RV20
单片机
GPIO
开发板试用
RISC-V
点亮一个LED效果
本帖最后由 xcs101 于 2022-2-16 11:53 编辑
今天入门南京中科微CSM32RV20
开发板
,讲讲如何开展设计,迈出第一步,建立工程,点亮LED,做个记录,方便后面学习,与大家共同探讨。
一、需要用到的外设
1、一个IO口
查看
电路
图,开发板上有一个RGBLED灯,使用其中一个引脚PA8,对应蓝灯。
GPIO 是用户可配置的通用 IO,每一个 GPIO 口都可以独立配置成输入输出、外设复用功能或模拟功能。GPIOA0~15 对应 PA0~PA15,GPIOB0~13 对应PB0~PB13。
二、工程建立
根据该链接建立一个空白的工程
https://mp.weixin.qq.com/s/El8-GMhWRSGGQWrMXCVcBA
首先安装软件,设置为中文;
新建一个工程:
]
三、程序设计
1.使用到的函数
void GPIO_MODE_Init(GPIO_TypeDef *GPIOx,uint8_t PINx,uint32_t GPIO_MODEx) //GPIO 模式
GPIO_MODEx可设置为:输入模式、输出模式、复用模式和模拟模式
GPIO模拟配置原理图
#define GPIO_MODE_INPUT 0x00000000UL
#define GPIO_MODE_OUTPUT 0x00000001UL
#define GPIO_MODE_AF 0x00000002UL
#define GPIO_MODE_ANALOG 0x00000003UL
void GPIO_Toggle(GPIO_TypeDef *GPIOx,uint8_t PINx); //GPIO 翻转
2.GPIO其他函数
void GPIO_MODE_Init(GPIO_TypeDef *GPIOx,uint8_t PINx,uint32_t GPIO_MODEx); //GPIO 模式
void GPIO_OutType_Init(GPIO_TypeDef *GPIOx,uint8_t PINx,uint32_t GPIO_OTYPEx); //GPIO 输出模式
void GPIO_InType_Init(GPIO_TypeDef *GPIOx,uint8_t PINx,uint32_t GPIO_ITYPEx); //GPIO 输入模式
void GPIO_PULL_Init(GPIO_TypeDef *GPIOx,uint8_t PINx,uint32_t GPIO_PULLx); //GPIO 上拉
void GPIO_OutSpeed_Init(GPIO_TypeDef *GPIOx,uint8_t PINx,uint32_t GPIO_SPEEDx); //GPIO 压摆率
void GPIO_AF_Init(GPIO_TypeDef *GPIOx,uint8_t PINx,uint32_t GPIO_AFx); //GPIO 复用模式
void GPIO_EXIT_MODE_Init(GPIO_TypeDef *GPIOx,uint8_t PINx,uint32_t GPIO_EXIT_MODEx); //GPIO 中断模式
void GPIO_INTER_enable(GPIO_TypeDef *GPIOx,uint8_t PINx); //GPIO 中断使能
void GPIO_INTER_disable(GPIO_TypeDef *GPIOx,uint8_t PINx); //GPIO 中断关闭
void GPIO_Write(GPIO_TypeDef *GPIOx,uint8_t PINx,uint32_t GPIO_PinState); //GPIO 输出
uint8_t GPIO_Read(GPIO_TypeDef *GPIOx,uint8_t PINx); //GPIO 读输入
void GPIO_Toggle(GPIO_TypeDef *GPIOx,uint8_t PINx); //GPIO 翻转
void GPIO_EXIT_Init_case1(GPIO_TypeDef *GPIOx, uint8_t PINx); //检测高电平
void GPIO_EXIT_Init_case2(GPIO_TypeDef *GPIOx, uint8_t PINx); //检测低电平
void GPIO_EXIT_Init_case3(GPIO_TypeDef *GPIOx, uint8_t PINx); //检测上升沿
void GPIO_EXIT_Init_case4(GPIO_TypeDef *GPIOx, uint8_t PINx); //检测下降沿
void EXIT0_IRQHandler(void) __attribute__((interrupt("SiFive-CLIC-preemp
ti
ble")));
void EXIT1_IRQHandler(void) __attribute__((interrupt("SiFive-CLIC-preemptible")));
void EXIT2_IRQHandler(void) __attribute__((interrupt("SiFive-CLIC-preemptible")));
void EXIT3_IRQHandler(void) __attribute__((interrupt("SiFive-CLIC-preemptible")));
void EXIT4_IRQHandler(void) __attribute__((interrupt("SiFive-CLIC-preemptible")));
void EXIT9_5_IRQHandler(void) __attribute__((interrupt("SiFive-CLIC-preemptible")));
void EXIT15_10_IRQHandler(void) __attribute__((interrupt("SiFive-CLIC-preemptible")));
void CAW_IRQhandler(void) __attribute__((interrupt("SiFive-CLIC-preemptible")));//载波检测中断函数
void CAW_Init(void);//载波检测配置
3.修改DEMO里的程序
查看建立的模板程序,在里面找到Chapter 5 GPIO Test Init 的代码段,将第一句修改如下,设置PA8引脚的GPIO模式
///----Chapter 5 GPIO Test Init-----------------------------------------
GPIO_MODE_Init(GPIOA,PIN8,GPIO_MODE_OUTPUT); //GPIO 模式
修改PA8引脚电平翻转程序,实现100ms电平翻转
for(uint8_t i=0;i<10;i++)
{
GPIO_Toggle(GPIOA,PIN8); //GPIO 翻转
Delay32M_ms(100);
}
修改主程序里while循环电平翻转程序,实现500ms电平翻转
while(1)
{
Delay32M_ms(500);
GPIO_Toggle(GPIOA,PIN8);
}
按下Ctrl+F9,完成程序编译完成的程序在工程文件的default文件夹里的elf文件。
四、烧录程序
使用CSM-ISP烧录程序, 同样在这条链接里面就可以找到相关介绍:
https://mp.weixin.qq.com/s/El8-GMhWRSGGQWrMXCVcBA
五、总结
本次建立工程,很是顺利,代码风格跟
STM32
的HAL库比较像,上手很快,后续再对其他外设进行使用,完成项目设计。
出厂程序效果
回帖
(2)
xcs101
2022-1-19 16:22:54
demo文件已经初始化串口,按下复位会发送“HelloCSM32RV20”到上位机。
相关程序如下:
///---- Chapter 15 UART Test Init ---------------------------------------
UART_Init_case1(UART1);//非中断模式
ee_printf("nHello CSM32RV20:");
demo文件已经初始化串口,按下复位会发送“HelloCSM32RV20”到上位机。
相关程序如下:
///---- Chapter 15 UART Test Init ---------------------------------------
UART_Init_case1(UART1);//非中断模式
ee_printf("nHello CSM32RV20:");
1
举报
xcs101
2022-1-19 23:23:51
上传好几次,视频一直只有略缩图,就不展示视频效果了。
上传好几次,视频一直只有略缩图,就不展示视频效果了。
2
举报
更多回帖
rotate(-90deg);
回复
相关帖子
CSM32RV20
单片机
GPIO
开发板试用
RISC-V
【
南京
中科
微
CSM32RV20
开发板
试用
体验】
无调试器
迈出
第一步
,
建立
工程
,
点亮
一
个
LED
1754
【
南京
中科
微
CSM32RV20
开发板
试用
体验】定时
器
点亮
LED
1020
【
南京
中科
微
CSM32RV20
开发板
试用
体验】
CSM32RV20
调试
记录
1966
【
南京
中科
微
CSM32RV20
开发板
试用
体验】linux
调试
1377
【
南京
中科
微
CSM32RV20
开发板
试用
体验】mac os
调试
1080
【
南京
中科
微
CSM32RV20
开发板
试用
体验】
CSM32RV20
测评报告
1993
【
南京
中科
微
CSM32RV20
开发板
试用
体验】+1.
CSM
32上手初体验
2106
【
南京
中科
微
CSM32RV20
开发板
试用
体验】定时
器
点亮
LED
1371
【产品
试用
】
南京
中科
微
CSM32RV20
开发板
免费
试用
945
【
南京
中科
微
CSM32RV20
开发板
试用
体验】
开发
环境构建及项目创建
2622
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分