stm32f103 SPI单线TX发数据来驱动LCD】的更多相关文章

有一黑白LCD,有CS/SI/SCK三线,时序满足SPI时序,但STM32的SPI有四线NSS/MOSI/SCK/MISO,这里MISO没有用到.因此可以使用SPI的单线发送模式进行驱动LCD. 关键代码如下: /* SPI_MASTER configuration -*/ SPI_InitStructure.SPI_Direction = SPI_Direction_1Line_Tx;//这里使用单线发送模式 SPI_InitStructure.SPI_Mode = SPI_Mode_Mast…
STM32的标准库,跟HAL库都是很实用的, 在使用SPI库的过程中一定要注意时序的问题. 我在调试SPI过程中,调试了两个IC,都是用HAL库, 第一个IC没出问题,第二个IC出现了第一次发送数据不成功问题, 不管发什么数据,交互结果都是0x00, 我一开始用的是HAL_SPI_TransmitReceive(): 这个函数,一直无法成功,改用标准库结果也是一样: 后来查到可能是收发太快的原因, 这里说的收发太快并不是说两个数据之间,而是一个交互的时候收发太快: 于是我把它改为发送接收之间加个…
问题 上一个项目在用寄存器操作STM32F0芯片的SPI_DR寄存器的时候,发现一个问题: 我给DR寄存器赋值一个uint8_t一字节大小的数据,SPI引脚能正确输出数据和时钟,但前面八位正确的数据输出完成后,时钟CLK没有停下来,又紧接着输出了八个时钟脉冲 也就是原数据0xfe 变成了十六位的 0xfe00 , 导致时序错误,使用逻辑分析才得以检查出来 为什么 去国外的st论坛转了一圈,发现有几个老外也是遇到了相同的问题,但他们是使用正确的固件库函数解决的,这并不是我想要找到的寄存器解决方法…
笔者最近看官方training.发现了非常多实用又好玩的知识. 当中.fragment与Activity通信就是一个. fragment与Activity通信主要是两点: 1.fragment传递信息给Activity 此点是通过在fragment中定义接口与Activity共享数据. 2.Activity传递信息给fragment 此点主要是通过fragment的getArgument()和setArgument()两个函数传递bundle来传递. 效果:(最后附上源代码) 主要流程: 1.在…
#define HOST_SERVER_IP "192.168.3.35" #define HOST_PORT 9501 #define SLEEP_TIME 1 #define LOOP_TIME 3 #define DATA_SIZE 80 int judge_socket_exist() { ; fd_set send_data_flag; ; ) { ) { socket_fd = socket(AF_INET, SOCK_DGRAM, ); loop_time++; } )…
SOCKET m_sockClient; unsigned short portNum; ----------------------------------------------------------------------------------------- bool connect(unsigned short portNum); void DisConnectHost(); short SendCmd(AnsiString sendData);short ReceiveData(A…
String comdata = ""; void setup() { Serial.begin(9600); while(Serial.read()>= 0){} //clear serialbuffer pinMode(13, OUTPUT); } // the loop function runs over and over again forever void loop() { if(Serial.available()>0){ delay(1); comdata…
只需用while条件判断来实现 服务器端 # -*- coding:utf-8 -*- __author__ = "MuT6 Sch01aR" import socket server = socket.socket() server.bind(('127.0.0.1',8080)) server.listen() while True: conn,addr = server.accept() while True: data = conn.recv(1024) print(data)…
效果如下图: 先新建一Django项目. 最后在terminal执行python manage.py runserver 8090 运行djago程序 浏览器输入http://127.0.0.1:8090/lzh/ 结果如下:…
在实际应用中我们会碰到需要下载很大容量固件,比如TP固件几百K大小BIN文件,这种情况下用LcdTools写初始化代码的方式实现就不大现实:此时我们可以通过PX01 SD来实现. 首先,把需要操作的BIN文件考到SD卡根目录下,如下图,我测试的文件为XTB06101.XKB二进制文件:考好文件后,把SD卡装入PX01. 读取SD中BIN文件需要通过指令ReadSdBinFile()来实现,其中一个重要的变量sdrdlen来表示调用读取函数后读到的数据个数,如下图所示例程. BIN文档操作数据量庞…