Paderboy
获得 0 次赞
帮助过4人
这个帖子继续演示adc 基于dma 获取数据。。 adc 使用12mhz 时钟源。。f1 adc不要超过14mhz 就可以。。 进入配置adc。。 adc dma 配置 需要注意的是: scanconvmode = adc_scan_enable; continuousconvmode = enable; nbrofconversion = 4; 然后每个通道,对于好rank 就可以 sconfig.channel = adc_channel_0; sconfig.rank = 1; sconfig.samplingtime = adc_sampletime_239cycles_5; hal_adc_configchannel(&hadc1, &sconfig); 需要注意: dma_periph_to_memory;设备到内存 dma_pdataalign_word;32位 dma_mdataalign_word;32位 mode = dma_circular;循环 配置好后,就生成文件。。就可以。。然后在keil下添加程序。。 uint32_t uhadcxconvertedvalue; 编译后,就可以下载到单片机里了。。 下图是,演示效果。。。 这里是原程序:
这里继续单通道,单个adc采样后由串口输出结果。。 。先配置好pa0引脚。。 然后设置好,adc的工作频率在12mhz。这里需要注意f1的adc最高频率是14mhz。。设置在14mhz以内都可以正常运行 以下是配置adc的参数。。大家可以参考下。。 好的配置好后,输出文件后,到keil里添加程序。。 这需要注意下,f1的adc初始化好后需要校准下,才能正常使用。。 hal_adcex_calibration_start(&hadc1); 用以下变量保存adc返回的数据 __io uint16_t uhadcxconvertedvalue = 0; 这里就是adc hal下使用的函数使用方法。。 if(hal_adc_start(&hadc1) != hal_ok) { } hal_adc_pollforconversion(&hadc1, 10); if(hal_adc_getstate(&hadc1) == hal_adc_state_eoc_reg) { uhadcxconvertedvalue = hal_adc_getvalue(&hadc1); } 把编译好的程序,下载到单片机里。。就可以运行了。。 这里是源程序:
大家好, 这个帖子,简单的介绍使用cube配置pc13端口为输出。 这个最经典gpio翻转教程。 首先配置外部晶振引脚还有gipo pc13 接下来介绍下配置外部晶振为8mhz 然后配置cube 输出生成keil 5 的文件格式。详细的设置细节请,查看cube使用教程。。 最后打开keil 5 ide 使用hal_gpio_togglepin();函数翻转pc13的输出电平。 我这里使用hal_gettick(); 没有使用hal_delay(); 配置下,jlink 使用sw 下载到单片机里就可以看到。。pc13 灯在闪烁了。。 这是工程文件: