本文来源电子发烧友社区,作者:川楠, 帖子地址:https://bbs.elecfans.com/jishu_2241443_1_1.html
前言
大家好。
首先,感谢南京中科微提供的CSM32RV20开发板,同时也感谢发烧友提供的试用平台。
这次测试的是定时器,测试目标:使用定时器,周期性的控制LED灯。
代码编程
还是一样的,按照官方的教程,建立DEMO程序,查看main.c文件。
基本上定时器的相关代码就在这里的,但是定时器的中断函数呢?函数入口呢?
这里可以直接查看启动文件。
按照这个函数名称,查找:ctrl+f(基本上绝大多说的查找命令都是这个快捷键组合)
这样你就能找到中断函数:
在中断函数里,交替改变的是PA12引脚的电平变化。
到了这里,我基本上有了编程的思路的,这还在没有看数据手册的情况下:
具体代码如下:
复制代码
程序编译下载:
结果灯好像没有什么变化?就一个红灯常亮?
不要着急,使用示波器,或者逻辑分析仪看一下,PA12引脚的电平,你就明白了。
频率都达到了500HZ了,肉眼能看到,才是怪事。
到了这里,实验目的是达到了。但是通常,我们是需要改变定时的周期/频率的,所以,这里就需要仔细的研究下定时器初始化了。
PSC-预分频,值为31;ARR-自动重装寄存器,值为1000。
结合系统时钟是32MHZ,所以定时器的频率分频应该是31+1,所以计时时钟为1MHZ。
在这个频率下,计数1000个,也就是1KHZ,1MS,所以,定时器的中断周期是1MS,LED的频率就是500HZ了。
如果是这样的话,ARR的值应该是1000-1=999才是更精确的1MS定时中断啊。不过都是小问题。
调整验证一下:
将定时器中断周期改为500MS,使得LED1S闪烁一次。更改Timer1_UpCounting_Mode_Init();
可以看到预分频的值范围是0-65535;
定时器为16位定时器,计数范围也是0-65535;
所以修改定时器初始化值为:
在抓PA12波形:
试用感受
CSM32整体用起来,感觉还是不错基本上不用看手册就可以了,把单个功能实现。但是,如果在仔细的看官方的源代码,其实还是能找到一些小问题。
就比如,定时器ARR应该要减1才对,
前言
大家好。
首先,感谢南京中科微提供的CSM32RV20开发板,同时也感谢发烧友提供的试用平台。
这次测试的是定时器,测试目标:使用定时器,周期性的控制LED灯。
代码编程
还是一样的,按照官方的教程,建立DEMO程序,查看main.c文件。
基本上定时器的相关代码就在这里的,但是定时器的中断函数呢?函数入口呢?
这里可以直接查看启动文件。
按照这个函数名称,查找:ctrl+f(基本上绝大多说的查找命令都是这个快捷键组合)
这样你就能找到中断函数:
在中断函数里,交替改变的是PA12引脚的电平变化。
到了这里,我基本上有了编程的思路的,这还在没有看数据手册的情况下:
具体代码如下:
- int main(void)
- {
- ///----System Init ---------------------------------------------------------------------------------------------
- CLIC_Init();//系统中断配置
- System_Clock_Init();//系统时钟初始化
- GPIO_MODE_Init(GPIOA,PIN12,GPIO_MODE_OUTPUT); //GPIO 模式
- //外设配置
- timer1_UpCounting_Mode_Init();//向上计数
- Interrupt_Enable(TIMER1_updata_int_ID);//CLIC使能中断
- //使能系统总中断
- SYS_Interrupt_Enable();//CLIC开总中断
- while(1)
- {
- }
- return 0;
- }
程序编译下载:
结果灯好像没有什么变化?就一个红灯常亮?
不要着急,使用示波器,或者逻辑分析仪看一下,PA12引脚的电平,你就明白了。
频率都达到了500HZ了,肉眼能看到,才是怪事。
到了这里,实验目的是达到了。但是通常,我们是需要改变定时的周期/频率的,所以,这里就需要仔细的研究下定时器初始化了。
PSC-预分频,值为31;ARR-自动重装寄存器,值为1000。
结合系统时钟是32MHZ,所以定时器的频率分频应该是31+1,所以计时时钟为1MHZ。
在这个频率下,计数1000个,也就是1KHZ,1MS,所以,定时器的中断周期是1MS,LED的频率就是500HZ了。
如果是这样的话,ARR的值应该是1000-1=999才是更精确的1MS定时中断啊。不过都是小问题。
调整验证一下:
将定时器中断周期改为500MS,使得LED1S闪烁一次。更改Timer1_UpCounting_Mode_Init();
可以看到预分频的值范围是0-65535;
定时器为16位定时器,计数范围也是0-65535;
所以修改定时器初始化值为:
在抓PA12波形:
试用感受
CSM32整体用起来,感觉还是不错基本上不用看手册就可以了,把单个功能实现。但是,如果在仔细的看官方的源代码,其实还是能找到一些小问题。
就比如,定时器ARR应该要减1才对,
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
南京中科微
+关注
关注
0文章
60浏览量
646 -
CSM32RV20
+关注
关注
0文章
40浏览量
177
发布评论请先 登录
相关推荐
【中科微CSM32RV003绿色开发板免费体验】+ISP下载测试
在收到中科微的CSM32RV003绿色开发板后,首先到官网和技术支持微信群寻找资料。要实现CSM32RV
发表于 10-11 08:58
【中科微CSM32RV003绿色开发板免费体验】2.RISC-V RV32IMAC内核
CSM32RV003绿色开发板免费体验】1.上手
我要感谢南京中科微电子有限公司提供的CSM32RV003绿色
发表于 10-10 00:03
【中科微CSM32RV003绿色开发板免费体验】 开箱和安装工具帖
我申请项目:滑翔伞空中速率计。
我于2023年9月9日下午收到中科微CSM32RV003开发板快递包裹。拿回后立马打开包裹,出现南京
发表于 10-09 23:34
【中科微CSM32RV003绿色开发板免费体验】1.上手
首先,我要感谢南京中科微电子有限公司提供的CSM32RV003绿色开发板和试用机会,这让我有机会深入了解并使用该公司的产品。经过几天的熟悉和
发表于 10-09 23:21
【中科微CSM32RV003绿色开发板免费体验】了解和认识中科微CSM32RV003绿色开发板
芯片,最高主频32MHz,最大支持32KB嵌入式FlASH、4KB SRAM和4.5KB NVM,集成ADC和UART、I2C、SPI等通用外设接口。
中科微CSM32RV003绿色
发表于 09-22 16:56
【中科微CSM32RV003绿色开发板免费体验】中科微CSM32RV003绿色开发板初次使用测试
封装。## 开发资料: |
中科微CSM32RV003绿色开发板上电后有rgb显示状态,有随时复位的功
发表于 09-22 16:35
【中科微CSM32RV003绿色开发板免费体验】中科微CSM32RV003绿色开发板初体验
收到南京中科微的CSM32RV003绿色开发板,板子做的很小巧,绿色阻焊也很漂亮,板子布局合理,功能
发表于 09-22 16:25
【中科微CSM32RV003绿色开发板免费体验】第一帖-开箱体验
本帖最后由 ele2022 于 2023-9-20 16:40 编辑
今天开箱体验南京中科微推出的CSM32RV003
发表于 09-20 13:56
【中科微CSM32RV003绿色开发板免费体验】+初识篇
尽管就芯片规格来讲,CSM32RV003开发板不是很大,但在器件选择上并非以价格和尺寸规格为标准,而应以设计的需求为目标,故中科微CSM32RV
发表于 09-10 15:39
试用南京中科微电子CSM32RV003开发板
非常迅速头一天接收信息,第二天雨中快递送到南京中科微电子有限公司CSM32RV003开发板(TSSOP20)封装的RISC-V处理器芯片。迷
发表于 09-09 19:01
评论