页次: 1
@sh200436
请问下DMA多通道怎么配置?比如ADC用DMA通道1,定时器用DMA通道2,两个都开DMA只有定时器的DMA可以工作,手册看了又看不懂应该怎么设置
你看我上面帖子里附件:app_adc_dma.txt 我这个代码里,DMA读取多个通道的ADC数据。你把这个文件txt换成.c就行了。我这个例子,参考了官方例程:PY32F003-STK\Example_LL\ADC、ADC_MultiChannelSingleConversion_TriggerSW_DMA。
多路ADC采集设置方式:
(1)配置ADC的采集方式和采集通道,要设置ADC里一个关于DMA的选项;
(2)配置DMA,设置为通道1,外设为ADC,设置传输方向:外设----> 内存, 设置DAM中断;
(3)开启转换后,DMA会自动读取转换结果,多个通道的时候,会按照设定好的顺序,依次被DMA读取,当DMA读取完所有设置的通道后,会产生DMA中断,此时可以批量处理多路ADC数据了。
(4)数据处理完后,重新开启ADC采集。
定时器自身不是也有中断吗,为什么还要用DMA处理定时器的中断呢?多个DMA的方式,我没用过,所以这个情况不清楚。
@sh200436
看看是不是上面 84, 85 楼的情况. 如果接了UART, 把上位机的TX断开试试
我用的是TSSOP-20封装的PY32F003,使用官方的ADC LL例程
(1)PA0-PA3用作模拟电压采集AIN0-AIN3,使用DMA模式,开启了内部参考和温度传感器;
(2)串口使用的是PB6,PB7(UART1),串口干扰的问题可以排除;
--------------------------------------------------------------------------------
测试结果来看,4路模拟电压测量都是准确的,温度数据经过上面的函数解算后,得到的是0XB1, 十进制177。
这个温度值,感觉有点不对。详细代码如下:
@sh200436
See an example of an interrupt handler: https://github.com/minilogic/f1c_nonos/tree/main/src/irq
Wonderful!
I found 'IRQ' in /drv/sys.c, but i didn’t know how to deal with it, so new irq example is very wonderful.
Thank you so much!
@Ozelot
hi, dear friend, i downloaded baremetal project from your repository.
I set timer0 interrupt enable, but it didn't work.
how to add irq_handler( such as timer, uart, gpio ...) to f1c_nonos-main\src\lvgl\main.c?
------------------------------------------
void timer_irq_handler(void) {
lv_tick_inc(1);
tim_clear_irq(TIM0);
timer_count ++;
if(timer_count == 1000)//1S
{
timer_count = 0;
uart_sendbyte(UART1, 0x55);//send 1byte every 1s
}
}
void timer_init(void) {
// Configure timer to generate update event every 1ms
tim_init(TIM0, TIM_MODE_CONT, TIM_SRC_HOSC, TIM_PSC_1);
tim_set_period(TIM0, 24000000UL / 1000UL);//1ms
tim_int_enable(TIM0);
// IRQ configuration
intc_set_irq_handler(IRQ_TIMER0, timer_irq_handler);
intc_enable_irq(IRQ_TIMER0);
tim_start(TIM0);
}
------------------------------------------
thank you.
@晕哥
大佬, 我用 https://github.com/minilogic/f1c_nonos 在Linux下调试裸机程序,但是遇到一个问题,我直接复制您的例程,编译的时候出现了截图里的错误,不知道如何解决。。。。[
请问,如何把MDK里的中断例程引入到linxu下的裸机程序里?
谢谢
参考这个帖子,后面楼主分享了一个烧录的文件(在第17楼):
https://whycan.com/t_9695.html
嗯...最后还是解决不了ESP8089,这个项目烂尾了
https://oshwhub.com/zhou2008/f1c200s
楼主可以先做一块或买一块论坛里大佬们使用的各种开发板。
先把软件跑通,然后再根据他们的开发板,比着设计一款满足自己需求的板子。
如果一开始就自己设计,容易跳进各种软件、硬件的坑里。
其实这个文件和main里做的是同一个事情,初始化lvgl 显示和触摸 user-gui 就是你自己的界面,因为你没这个函数 所以报错 ,删掉就行
我买了一块F1C100S的串口屏,拆掉了板子上的SPI-FLASH芯片,用TF-JTAG的转接板,把J-LINK下载器和板子连接起来。当下载程序时,出现了上面的错误信息。硬件接线和软件环境如下:
(1)J-LINK下载器使用TCK, TMS, TDI, TDO, VCC, GND,总计6根线和板子连接;
(2)拆掉了板子自带的SPI_FLASH芯片;
(3)电脑是Win7系统,RT-Studio整个编译软件,按照楼主的操作步骤,均采用最新的版本;
(4)RT-Studio调试配置里,下载地址为: 0x08000000
--根据错误信息,J-LINK下载器已经识别芯片了,就是不能下载,不知道问题出在了哪里。
请问楼主,我的配置方式,和你那边的配置方式,有什么不同吗?谢谢
按照大家的指引,成功编译了楼主提供的裸机工程。但当我导入了LVGL的文件后,出现了一堆和LVGL文件相关的编译错误:
----------------------------------------------
....\f1c100s_keil2/LVGL/GUI/lvgl/src/draw/lv_img_decoder.c:331: undefined reference to `strcmp'
----------------------------------------------
该错误是没有找到<string.h>文件,但该头文件应该已经存在了,因为f1c100s_keil2工程的main里,也调用了该文件。
-- 不知道这个问题如何解决。。。
另外,LVGL的移植的过程,我参考了这个视频:https://www.bilibili.com/video/BV1CG4y157Px/?spm_id_from=333.337.search-card.all.click
页次: 1