- 博客(49)
- 资源 (12)
- 收藏
- 关注
原创 vscode打开esp-idf工程,找不到头文件,有波浪线
多半是因为原始的工程不是用vscode的插件新建的,因此没有相关的路径。需要在工程文件夹下的.vscode文件夹中的c_cpp_properties.json文件中增加路径,可以参考插件自动新建的工程里面的写法。仅供参考,原理就是这样,如果不行就自己用插件新建一个工程,去看看插件是怎么生成的,复制一下即可。有人写的文章说明怎么解决这个问题都要付款才能看,简直想钱想疯了。改成这样的就可以了。
2024-05-12 22:16:11 827 1
原创 ESP32建立TCP连接
联网完毕之后进入tcp的过程,首先是建立socket连接,然后通过这个socket进行数据的收发,例如可以把数据的收发设计成两个任务分别执行,这样就可以实现收发互相不影响。打开官方的命令行工具,进入到代码所在的目录,习惯使用vsc进行代码的编辑,使用官方的命令行工具进行编译等。回归到tcp通信,首先第一步是要联网,可以把官方的WiFi联网的例子拿过来用,直接把代码拿过来自己改改就行。使用官方的下载器下载好,就可以自动安装,同时也可以使用vscode进行代码的编辑。打开串口显示终端,观察程序的运行输出。
2023-11-10 14:06:44 658
原创 STM32串口DMA双缓冲,数据接收与发送,HAL库实现
STM32F429系列DMA支持双缓冲模式进行数据传输,相当于数字电路设计领域的乒乓操作,但是HAL库并没有实现像单缓冲区一样可以简单使用的函数,有的方法是使用单缓冲的方式,但是通过接收半满的中断控制CPU进行数据处理,相当于是把一个缓冲区拆成两半使用。双缓冲的优势是显而易见的,在将串口数据写入到一个缓冲区时,CPU同时可以进行另一个缓冲区的读取,可以加快数据的处理HAL库没有实现硬件双缓冲的代码,需要自己实现一下。
2023-06-12 12:33:52 7450 3
原创 STM32 USB CDC VPC
通过使用stm32cubemx,实现USB CDC虚拟串口,并与硬件串口进行数据传输,实现了硬件串口数据的不定长接收,以及USB虚拟串口超过64字节的数据接收,最终实现了一个简单的USB转串口功能。
2023-06-08 16:25:53 4573 3
原创 HAL库配置通用定时器TIM触发ADC采样,然后DMA搬运到内存空间。
HAL库配置通用定时器TIM触发ADC采样,然后DMA搬运到内存空间。
2022-07-05 09:09:36 10153 8
原创 PLUTO SDR ,使用GNU Radio 和 SDR# ,搭建简单FM接收
PLUTO SDR ,使用GNU Radio 和 SDR# ,搭建简单FM接收
2022-06-17 10:00:53 5539 4
原创 ZYNQ_GPIO_中断
开发平台为vivado2019.2,硬件为正点原子启明星,项目主要包含MIO驱动,EMIO驱动,AXI_GPIO驱动,PS端中断配置,AXI中断配置。
2022-06-04 20:11:16 1535
原创 STM32移植u8g2库(HAL库)(硬件SPI)(sh1106_128x64)
STM32移植u8g2库(HAL库)(硬件SPI)(sh1106_128x64)MCU型号为STM32F103RCT6,OLED屏为中景园电子1.3寸屏,驱动芯片为sh1106,分辨率为128x64,MDK版本为V5.34。
2022-01-07 11:02:44 5355 4
原创 FPGA流水线
简单了解了一下流水线的概念,以下内容都是看了一些资料自己的理解,可能有些地方是不对的,有大佬看见了还希望能指导小弟一手,万分感谢。
2021-12-30 11:21:03 2158
原创 Vitis初步使用
学习ZYNQ嵌入式的时候,很多教程都是基于SDK进行的,但是新版的vivado已经没有SDK了,取而代之的是vitis,进行了一些尝试实现了工程创建和程序下载等一些简单的功能。
2021-12-06 12:46:15 6792
原创 HDLbits Verfication: Writing Testbenches
Verfication: Writing Testbenches
2021-12-01 17:45:13 129
原创 HDLbits Verification: Reading Simulations
Verification: Reading Simulations
2021-12-01 17:44:15 249
原创 Verilog中generate for的用法
Verilog中generate用法必须用genvar来定义ibegin:后边必须加一个名字,随便起一个????一种用法:genvar i;generate for( i=1; i<=99; i=i+1) begin:add1 assign sum[i] = a[i] ^ b[i]^ cout[i-1]; assign cout[i] = a[i]&b[i] | a[i]&cout[i-1] | b[i]&cout[
2021-11-09 14:52:45 1320
原创 verilog向量位选择
verilog向量位选择1.常用方式x=data[3:0];这里表示data的后4位选择。在这种方式中a,b必须为常数,不能是一个变量。2.含有变量的方式data[0 +:8]和data[7:0]是等价的data[15 -:8]和data[15:8]是等价的。//在这里0和15就可以为变量,比如:integer i;always @( *) begin i = sel; out = in[(4*i)+:4];end...
2021-11-09 14:20:34 1174
原创 C中static的作用
(1)在修饰变量的时候,static 修饰的静态局部变量只执行初始化一次,而且延长了局部变量的生命周期,直到程序运行结束以后才释放。(2)static 修饰全局变量的时候,这个全局变量只能在本文件中访问,不能在其它文件中访问,即便是 extern 外部声明也不可以。(3)static 修饰一个函数,则这个函数的只能在本文件中调用,不能被其他文件调用。static 修饰的变量存放在全局数据区的静态变量区,包括全局静态变量和局部静态变量,都在全局数据区分配内存。初始化的时候自动初始化为 0。(4)不想被释
2021-11-03 14:04:31 566
axi_gpio_pro.rar
2022-06-04
STM32移植u8g2库(HAL库)(硬件SPI)(sh1106_128x64)
2022-01-07
STM32F429芯片DAP下载失败,STLINK下载失败,设置FLASH的读写保护与解除
2019-07-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人