页次: 1
来来来,结帖,问题找到了,附上新的代码
timer1.c
#include "timer1.h"
#include "air001xx_ll_tim.h"
#include "air001xx_ll_bus.h"
#include "air001xx_ll_gpio.h"
#include "air001xx_ll_rcc.h"
#include "led.h"
void pwm_gpio_config(void)
{
LL_IOP_GRP1_EnableClock(LL_IOP_GRP1_PERIPH_GPIOA);
LL_GPIO_InitTypeDef GPIO_InitStruct = {0};
GPIO_InitStruct.Pin = LL_GPIO_PIN_0;
GPIO_InitStruct.Mode = LL_GPIO_MODE_ALTERNATE;
GPIO_InitStruct.Alternate = LL_GPIO_AF13_TIM1;
GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_HIGH;
GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL;
GPIO_InitStruct.Pull = LL_GPIO_PULL_NO;
LL_GPIO_Init(GPIOA, &GPIO_InitStruct);
}
void timer1_ch3_config(void)
{
LL_APB1_GRP2_EnableClock(LL_APB1_GRP2_PERIPH_TIM1);
LL_TIM_InitTypeDef TIM_InitStruct = {0};
LL_TIM_StructInit(&TIM_InitStruct);
TIM_InitStruct.Prescaler = 48-1;
TIM_InitStruct.CounterMode = LL_TIM_COUNTERMODE_UP;
TIM_InitStruct.Autoreload = 1000-1;
TIM_InitStruct.ClockDivision = LL_TIM_CLOCKDIVISION_DIV1;
LL_TIM_Init(TIM1, &TIM_InitStruct);
NVIC_EnableIRQ(TIM1_BRK_UP_TRG_COM_IRQn);
NVIC_SetPriority(TIM1_BRK_UP_TRG_COM_IRQn,1);
LL_TIM_ClearFlag_UPDATE(TIM1);
LL_TIM_EnableIT_UPDATE(TIM1);
LL_TIM_EnableCounter(TIM1);
}
static uint32_t counter= 0;
void TIM1_BRK_UP_TRG_COM_IRQHandler(void)
{
if(LL_TIM_IsActiveFlag_UPDATE(TIM1))
{
LL_TIM_ClearFlag_UPDATE(TIM1);
counter++;
if(counter >= 500)
{
counter = 0;
led_toggle();
}
}
}
timer3.c内容
#include "main.h"
#include "timer3.h"
#include "air001xx_ll_tim.h"
#include "air001xx_ll_bus.h"
#include "air001xx_ll_gpio.h"
#include "air001xx_ll_rcc.h"
#include "air001xx_ll_dma.h"
#include "led.h"
#define TIM_ARR_VALUE (60-1)
void timer3_ch2_gpio_init(void)
{
LL_IOP_GRP1_EnableClock(LL_IOP_GRP1_PERIPH_GPIOA);
LL_GPIO_InitTypeDef GPIO_InitStruct = {0};
GPIO_InitStruct.Pin = LL_GPIO_PIN_7;
GPIO_InitStruct.Mode = LL_GPIO_MODE_ALTERNATE;
GPIO_InitStruct.Alternate = LL_GPIO_AF1_TIM3;
GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_HIGH;
GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL;
GPIO_InitStruct.Pull = LL_GPIO_PULL_NO;
LL_GPIO_Init(GPIOA, &GPIO_InitStruct);
}
void timer3_ch2_init(void)
{
LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_TIM3);
LL_TIM_InitTypeDef TIM_InitStruct = {0};
LL_TIM_StructInit(&TIM_InitStruct);
TIM_InitStruct.Prescaler = 0;
TIM_InitStruct.CounterMode = LL_TIM_COUNTERMODE_UP;
TIM_InitStruct.Autoreload = TIM_ARR_VALUE;//周期
TIM_InitStruct.ClockDivision = LL_TIM_CLOCKDIVISION_DIV1;//
LL_TIM_Init(TIM3, &TIM_InitStruct);
LL_TIM_OC_InitTypeDef TIM_OC_InitStruct = {0};
LL_TIM_OC_StructInit(&TIM_OC_InitStruct);
TIM_OC_InitStruct.OCMode = LL_TIM_OCMODE_PWM1;
TIM_OC_InitStruct.OCState = LL_TIM_OCSTATE_ENABLE;
TIM_OC_InitStruct.CompareValue = 0;
TIM_OC_InitStruct.OCPolarity = LL_TIM_OCPOLARITY_HIGH;
LL_TIM_OC_Init(TIM3, LL_TIM_CHANNEL_CH2, &TIM_OC_InitStruct);
LL_TIM_EnableARRPreload(TIM3);
LL_TIM_EnableDMAReq_UPDATE(TIM3);
LL_TIM_CC_SetDMAReqTrigger(TIM3,LL_TIM_CCDMAREQUEST_UPDATE);
}
//16位定时器
static uint16_t dma_buffer[128]= {0};
void timer3_dma_config(void)
{
LL_DMA_InitTypeDef dma_initstruct;
/* 使能DMA时钟 */
LL_AHB1_GRP1_EnableClock(LL_AHB1_GRP1_PERIPH_DMA1);
LL_APB1_GRP2_EnableClock(LL_APB1_GRP2_PERIPH_SYSCFG);
LL_SYSCFG_SetDMARemap_CH1(LL_SYSCFG_DMA_MAP_TIM3_UP);
/* 配置DMA功能参数 */
dma_initstruct.PeriphOrM2MSrcAddress = (uint32_t)&(TIM3->CCR2); /* ????? */
dma_initstruct.MemoryOrM2MDstAddress = (uint32_t)dma_buffer; /* ?????? */
dma_initstruct.Direction = LL_DMA_DIRECTION_MEMORY_TO_PERIPH; /* M2M ?? */
dma_initstruct.Mode = LL_DMA_MODE_NORMAL; /* DMA?????? */
dma_initstruct.PeriphOrM2MSrcIncMode = LL_DMA_PERIPH_NOINCREMENT; /* ?????????? */
dma_initstruct.MemoryOrM2MDstIncMode = LL_DMA_MEMORY_INCREMENT; /* ??????????? */
dma_initstruct.PeriphOrM2MSrcDataSize = LL_DMA_PDATAALIGN_HALFWORD; /* ???????32? */
dma_initstruct.MemoryOrM2MDstDataSize = LL_DMA_MDATAALIGN_HALFWORD; /* ????????32? */
dma_initstruct.NbData = 0x00000000U;
dma_initstruct.Priority = LL_DMA_PRIORITY_VERYHIGH; /* ??????? */
/* ???DMA */
if (LL_DMA_Init(DMA1, LL_DMA_CHANNEL_1, &dma_initstruct) != SUCCESS)
{
Error_Handler();
}
}
void timer3_dma_send_data(uint16_t *pbuf,uint16_t len)
{
LL_DMA_SetMemoryAddress(DMA1,LL_DMA_CHANNEL_1,(uint32_t)pbuf);
LL_DMA_SetDataLength(DMA1, LL_DMA_CHANNEL_1, len);
LL_DMA_EnableChannel(DMA1, LL_DMA_CHANNEL_1);
LL_TIM_SetCounter(TIM3,TIM_ARR_VALUE);
LL_TIM_EnableCounter(TIM3);
while(!LL_DMA_IsActiveFlag_TC1(DMA1));
LL_TIM_DisableCounter(TIM3);
LL_DMA_DisableChannel(DMA1, LL_DMA_CHANNEL_1);
LL_DMA_ClearFlag_TC1(DMA1);
}
static uint32_t counter= 0;
void TIM3_IRQHandler(void)
{
counter++;
if(counter >= 500000)
{
counter = 0;
led_toggle();
}
}
void DMA1_Channel1_IRQHandler(void)
{
if(LL_DMA_IsActiveFlag_TC1(DMA1) == 1)
{
LL_DMA_ClearFlag_GI1(DMA1);
}
else if(LL_DMA_IsActiveFlag_TE1(DMA1) == 1)
{
}
}
timer1.c内容
#include "timer1.h"
#include "air001xx_ll_tim.h"
#include "air001xx_ll_bus.h"
#include "air001xx_ll_gpio.h"
#include "air001xx_ll_rcc.h"
#include "led.h"
void pwm_gpio_config(void)
{
LL_IOP_GRP1_EnableClock(LL_IOP_GRP1_PERIPH_GPIOA);
LL_GPIO_InitTypeDef GPIO_InitStruct = {0};
GPIO_InitStruct.Pin = LL_GPIO_PIN_0;
GPIO_InitStruct.Mode = LL_GPIO_MODE_ALTERNATE;
GPIO_InitStruct.Alternate = LL_GPIO_AF13_TIM1;
GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_HIGH;
GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL;
GPIO_InitStruct.Pull = LL_GPIO_PULL_NO;
LL_GPIO_Init(GPIOA, &GPIO_InitStruct);
}
void timer1_ch3_config(void)
{
LL_APB1_GRP2_EnableClock(LL_APB1_GRP2_PERIPH_TIM1);
LL_TIM_InitTypeDef TIM_InitStruct = {0};
LL_TIM_StructInit(&TIM_InitStruct);
TIM_InitStruct.Prescaler = 48-1;
TIM_InitStruct.CounterMode = LL_TIM_COUNTERMODE_UP;
TIM_InitStruct.Autoreload = 1000-1;
TIM_InitStruct.ClockDivision = LL_TIM_CLOCKDIVISION_DIV1;
LL_TIM_Init(TIM1, &TIM_InitStruct);
NVIC_EnableIRQ(TIM1_BRK_UP_TRG_COM_IRQn);
LL_TIM_EnableIT_UPDATE(TIM1);
LL_TIM_EnableCounter(TIM1);
}
static uint32_t counter= 0;
void TIM1_BRK_UP_TRG_COM_IRQHandler(void)
{
counter++;
if(counter >= 500000)
{
counter = 0;
led_toggle();
}
}
hzqlz 说:我来补个链接
链接: https://pan.baidu.com/s/1ZMdeVF56wABmGKvq4BSDxA
提取码:ueab您好 可以重新分享下吗?已经失效了。
来来来,换一个链接
「芯灵思SIN-V3s光盘资料」
https://www.aliyundrive.com/s/2Jxcu1xfuDS
提取码: 86bq
点击链接保存,或者复制本段内容,打开「阿里云盘」APP ,无需下载极速在线查看,视频原画倍速播放。
我来补个链接
链接: https://pan.baidu.com/s/1ZMdeVF56wABmGKvq4BSDxA
提取码:ueab
@0x7c00 感谢大佬建议,感谢晕哥提供平台支持,问题已解决!是样式的问题
一、ARC控件测试代码(彩色主题)
//创建一个屏幕对象
lv_obj_t* scr = lv_obj_create(lv_scr_act());
lv_obj_set_size(scr, 390, 390);
lv_obj_set_style_bg_color(scr, lv_color_white(), LV_PART_MAIN);
lv_obj_set_style_border_color(scr, lv_color_black(), LV_PART_MAIN);
//创建一个arc对象
lv_obj_t* arc_progress = lv_arc_create(scr);
//背景设置
static lv_style_t style_bg;
lv_style_init(&style_bg);
//lv_style_reset(&style_bg);
lv_style_set_bg_color(&style_bg,lv_color_make(0x00, 0x00, 0xff));//设置背景颜色
lv_style_set_bg_opa(&style_bg, LV_OPA_COVER);//设置背景透明度
lv_style_set_bg_grad_color(&style_bg,lv_color_make(0x24, 0xf9, 0xcf));//设置渐变颜色
lv_style_set_bg_grad_dir(&style_bg, LV_GRAD_DIR_VER);//设置渐变方向
lv_style_set_border_opa(&style_bg, LV_OPA_COVER);//设置边框透明度;
lv_style_set_border_width(&style_bg, 3);//设置边框宽度
lv_style_set_border_color(&style_bg, lv_color_make(0, 255, 0));//设置边框颜色
lv_obj_set_style_arc_rounded(arc_progress, true, LV_PART_INDICATOR);
//enum lv_arc_draw_part_type_t
lv_obj_add_style(arc_progress, &style_bg, LV_PART_MAIN);//设置背景样式
lv_obj_set_style_arc_width(arc_progress, 40, LV_PART_MAIN);//设置背景ARC宽度
lv_style_set_arc_color(&style_bg, lv_color_make(255, 0, 0));//设置ARC背景颜色
//去掉圆点
lv_obj_remove_style(arc_progress, NULL, LV_PART_KNOB);
static lv_style_t arc_style_ind;
//lv_style_reset(&style_blue);
lv_style_init(&arc_style_ind);
lv_style_set_arc_color(&arc_style_ind, lv_color_make(255, 255, 0));
lv_obj_set_style_arc_width(arc_progress, 60, LV_PART_INDICATOR);//设置前景ARC宽度
lv_obj_add_style(arc_progress, &arc_style_ind, LV_PART_INDICATOR);//设置Indicator样式
lv_arc_set_bg_angles(arc_progress, 0, 360);
lv_obj_align(arc_progress, LV_ALIGN_CENTER, 0, 0);
lv_arc_set_angles(arc_progress, 0, 270);
lv_obj_set_size(arc_progress, 300, 300);
测试效果如下:
二、ARC测试代码(单色主题)
打开lv_conf.h,将宏定义LV_COLOR_DEPTH设为1
lv_theme_t* th;
lv_disp_t *lv_disp;
lv_disp = lv_disp_get_default();
lv_disp_set_bg_color(lv_disp, lv_color_white());
th = lv_theme_mono_init(lv_disp, false, LV_FONT_DEFAULT);
lv_disp_set_theme(lv_disp, th);
//创建一个屏幕对象
lv_obj_t* scr = lv_obj_create(lv_scr_act());
lv_obj_set_size(scr, 390, 390);
lv_obj_set_style_bg_color(scr, lv_color_white(), LV_PART_MAIN);
lv_obj_set_style_border_color(scr, lv_color_black(), LV_PART_MAIN);
//创建一个arc对象
lv_obj_t* arc_progress = lv_arc_create(scr);
//背景设置
static lv_style_t style_bg;
lv_style_init(&style_bg);
//lv_style_reset(&style_bg);
lv_style_set_bg_color(&style_bg,lv_color_make(0xff, 0xff, 0xff));//设置背景全白
lv_style_set_bg_opa(&style_bg, LV_OPA_COVER);//设置背景透明度
lv_style_set_bg_grad_color(&style_bg,lv_color_make(0xff, 0xff, 0xff));//设置渐变颜色
lv_style_set_bg_grad_dir(&style_bg, LV_GRAD_DIR_VER);//设置渐变方向
lv_style_set_border_opa(&style_bg, LV_OPA_COVER);//设置边框透明度;
lv_style_set_border_width(&style_bg, 3);//设置边框宽度
lv_style_set_border_color(&style_bg, lv_color_make(0, 0, 0));//设置边框颜色
lv_obj_set_style_arc_rounded(arc_progress, true, LV_PART_INDICATOR);
//enum lv_arc_draw_part_type_t
lv_obj_add_style(arc_progress, &style_bg, LV_PART_MAIN);//设置背景样式
lv_obj_set_style_arc_width(arc_progress, 40, LV_PART_MAIN);//设置背景ARC宽度
lv_style_set_arc_color(&style_bg, lv_color_make(255, 0xff, 0xff));//设置ARC背景颜色
//去掉圆点
lv_obj_remove_style(arc_progress, NULL, LV_PART_KNOB);
static lv_style_t arc_style_ind;
//lv_style_reset(&style_blue);
lv_style_init(&arc_style_ind);
lv_style_set_arc_color(&arc_style_ind, lv_color_make(0, 0, 0));
lv_obj_set_style_arc_width(arc_progress, 60, LV_PART_INDICATOR);//设置前景ARC宽度
lv_obj_add_style(arc_progress, &arc_style_ind, LV_PART_INDICATOR);//设置Indicator样式
lv_arc_set_bg_angles(arc_progress, 0, 360);
lv_obj_align(arc_progress, LV_ALIGN_CENTER, 0, 0);
lv_arc_set_angles(arc_progress, 0, 270);
lv_obj_set_size(arc_progress, 300, 300);
效果如下:
根据提供的adc相关接口,我做了一些测试,但是发现采集到的数据是乱的,ADC使用的是IO5,代码如下:
#define ADC1_PORT_NUM (4)
adc_dev_t mic_adc =
{
ADC1_PORT_NUM,
{0,1000},
NULL,
};
uint8_t adc_buffer[10];
void mic_adc_cb(adc_event_t event, void *data, uint32_t size)
{
int i;
printf("evnet:%d\r\n", event);
if (NULL != data) {
for (i = 0; i < size; i++) {
printf("adc_data:%u\r\n", ((uint16_t *)data)[i]);
}
}
}
void mic_adc_task(void* p)
{
uint32_t adc_value;
while(1)
{
hal_adc_value_get(&mic_adc,&adc_value,HAL_WAIT_FOREVER);
printf("adc:%d\n",adc_value);
aos_msleep(30);
}
}
void mic_adc_init(void)
{
int ret = -1;
ret = hal_adc_init(NULL);
ret = hal_adc_init(&mic_adc);
if(ret != 0)
{
printf("adc init err\n");
}
ret = hal_adc_start(&mic_adc, adc_buffer, 1);
aos_task_new("adc_task",mic_adc_task,NULL,1024);
}
ADC输入端的变化很小,结果打印日志如下
adc:746
adc:275
adc:313
adc:2514
adc:302
adc:374
adc:1578
adc:886
adc:898
adc:250
adc:414
adc:2811
adc:1347
adc:2147
adc:1595
adc:1616
adc:261
adc:263
adc:255
adc:1799
adc:1749
adc:329
adc:1318
adc:267
adc:1123
adc:977
adc:268
adc:454
adc:412
adc:1910
adc:994
adc:1565
adc:268
adc:914
adc:1962
adc:247
adc:2760
adc:459
adc:268
adc:1123
adc:3998
adc:1095
adc:2928
adc:1406
adc:257
adc:1766
adc:2557
adc:366
adc:2929
adc:356
adc:376
采用查询的方式,麻烦帮忙看看,非常感谢!
从别的地方嫖的
UCGUI3.98源码.rar
串口通讯C++源码.rar
按需下载
Modbus TCPIP协议Client-Server端C++源代码.zip
有需要的大佬可以看看
从别处转过来的,有需要的可以参考一下
低通滤波器算法.7z
这是某论坛收费之前用朋友的收费账号扒下来的,如有用到可以参考一下
51bootloader.rar.rar
我来补上,花了我好几个积分,心疼
Video Decoder API.pdf
感谢 深圳市启明云端科技 友情赠送的7寸电容 4G & WIFI SSD202 开发板
http://whycan.com/t_5891.html
(出处:哇酷开发者社区)这个据说不涨价,据说而已,涨价了别打我, (逃
这价格得多少呢
Beyond_Compare_Pro_v4_x_Windows_CracKed.7z
上传一个我一直用的,按照文档操作就可以安心使用
在M论坛搞下来的,已经买了芯片,暂未验证功能,有兴趣的可以玩玩,怕资料搞丢了,先传到坑网跟大家学习一下
DAC Audio 4Bit ADPCM.rar
我不记得以前改过什么东西,编译是没啥问题的
别的论坛搞过来的,先分享一下
Everything桌面搜索_原理_源码.zip
我找个一个带源码的字库,超级牛,大家可以看看,不会上传,分享下百度链接吧,
链接:
提取码:kekc
复制这段内容后打开百度网盘手机App,操作更方便哦
感谢,我来帮忙上传一下
FontMaster.rar
没看到源码啊
51黑论坛_晓琪取模.zip
感谢热心网友
fatfs 精简版 http://elm-chan.org/fsw/ff/00index_p.html
Features
Very small RAM consumption (44 bytes work area + certain stack).
Very small code size (2K-4K bytes).
FAT12, FAT16 and FAT32.
Single volume and Single file.
Streaming file read.
File write function with some restrictions.
多谢大侠分享
你看合不合适,代码在此:ch12-SDCard-Fat32.zip
之前用STM32单片机,移植了这个文件系统,貌似占用资源还是比较大啊
https://whycan.cn/files/members/3/QQ图片20191117111144.jpg
左边是热敏打印机, 右边是驱动板.
我记得之前传过一次这个热敏打印机的手册和网上找的资料,晕哥看能不能把这个驱起来
有部分参考价值,不知道合泰为什么这么封闭,技术支持不到位
EAS-BSHT-V1_2_7z_001.zip
用的是合泰的BS83B12C,代理只给了这个库和芯片手册,其他资料没有,头大
head printer.rar
FTP-638MCL101_Specifications.pdfftp628_printer.rar
FTP-628 MCL101103, Easy Loading Method.pdf
Com32.rar
不知道怎么玩,网上找了一些资料,先分享一下,有想玩的一起交流下,咸鱼上老板只给了一个pdf文档,貌似没什么用
个人原创系列之使用寄存器控制IO口,比官方的SDK方便
https://blog.csdn.net/hzqhmlz/article/details/81078889
同理给出博客链接,都搬移过来浪费时间
https://blog.csdn.net/hzqhmlz/article/details/81078822
直接给我博客的链接,裸机开发 https://blog.csdn.net/hzqhmlz/article/details/80702548
页次: 1