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_Master;
SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b;
SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low;
SPI_InitStructure.SPI_CPHA = SPI_CPHA_1Edge;
SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;
SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_64;
SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_LSB;
SPI_Init(SPI1, &SPI_InitStructure); /* Enable SPI_MASTER */
SPI_Cmd(SPI1, ENABLE);
经试验发现,在单线模式下,只能使用SPI_I2S_FLAG_BSY标志来判断设备是否空闲,而不能使用SPI_I2S_FLAG_TXE发送完成标志。
SPI1->DR = byte;
while((SPI1->SR & SPI_I2S_FLAG_BSY) != RESET); //等待SPI忙完,这里不能使用SPI_I2S_FLAG_TXE发送完成标志,只能使用SPI_I2S_FLAG_BSY标志
记录在此,以防忘记。
stm32f103 SPI单线TX发数据来驱动LCD的更多相关文章
- STM32 SPI 发送第一个数据不成功问题
STM32的标准库,跟HAL库都是很实用的, 在使用SPI库的过程中一定要注意时序的问题. 我在调试SPI过程中,调试了两个IC,都是用HAL库, 第一个IC没出问题,第二个IC出现了第一次发送数据不 ...
- STM32F0系列芯片SPI发送一字节数据却输出16个CLK时钟的解决办法
问题 上一个项目在用寄存器操作STM32F0芯片的SPI_DR寄存器的时候,发现一个问题: 我给DR寄存器赋值一个uint8_t一字节大小的数据,SPI引脚能正确输出数据和时钟,但前面八位正确的数据输 ...
- android Fragment与Activity交互,互相发数据(附图具体解释)
笔者最近看官方training.发现了非常多实用又好玩的知识. 当中.fragment与Activity通信就是一个. fragment与Activity通信主要是两点: 1.fragment传递信息 ...
- C socket udp方式发数据
#define HOST_SERVER_IP "192.168.3.35" #define HOST_PORT 9501 #define SLEEP_TIME 1 #define ...
- TCP网络编程-----客户端请求连接服务器、向服务器发数据、从服务器接收数据、关闭连接
SOCKET m_sockClient; unsigned short portNum; ------------------------------------------------------- ...
- Arduino 串口测试 电脑发数据接收后立马返回
String comdata = ""; void setup() { Serial.begin(9600); while(Serial.read()>= 0){} //cl ...
- Python-实现socket简单地连续发数据
只需用while条件判断来实现 服务器端 # -*- coding:utf-8 -*- __author__ = "MuT6 Sch01aR" import socket serv ...
- 简单案例:form表单应用向后端发数据
效果如下图: 先新建一Django项目. 最后在terminal执行python manage.py runserver 8090 运行djago程序 浏览器输入http://127.0.0.1:80 ...
- LcdTools如何实现PX01读取SD中BIN文件并通过端口发出去
在实际应用中我们会碰到需要下载很大容量固件,比如TP固件几百K大小BIN文件,这种情况下用LcdTools写初始化代码的方式实现就不大现实:此时我们可以通过PX01 SD来实现. 首先,把需要操作的B ...
随机推荐
- JAVA Socket:文件传输
客户端:读取文件(FileInputStream),发送文件(OutputStream) 服务器端:接收文件(InputStream),写文件(FileOutputStream) 客户端代码: pac ...
- Linux下查看文件和文件夹大小(转)
觉得挺有用的,就转到了自己的博客里,方便以后查询: 转自:http://www.cnblogs.com/benio/archive/2010/10/13/1849946.html 当磁盘大小超过标准时 ...
- selenium简介
Selenium是一个开源的和便携式的自动化软件测试工具,用于测试Web应用程序有能力在不同的浏览器和操作系统运行.Selenium真的不是一个单一的工具,而是一套工具,帮助测试者更有效地基于Web的 ...
- html5标签css3的常用样式
<meta name=''> name:有如下6个值:application-name:文档名或者应用名,整个文档只能包含一个值.author:文档作者description:文档描述ge ...
- Spring Cloud 开门见山
Spring Cloud简介 Spring Cloud是一个基于Spring Boot实现的云应用开发工具,为开发者提供了在分布式系统(配置管理,服务发现,熔断,路由,微代理,控制总线,一次性toke ...
- python --那些你应该知道的知识点
1.python函数参数(含星号参数)http://blog.useasp.net/archive/2014/06/23/the-python-function-or-method-parameter ...
- yii中第三方库
yii中存在一些路径别名:ext:表示包含了所有第三方扩展的目录 参考:http://www.yiiframework.com/doc/guide/1.1/zh_cn/basics.namespac ...
- linux 将foo制定n, m之间行的内容, 追加到bar文件
sed -ne '196, 207 p' foo >> bar;把文件foo 196-行207行的内容追加到 bar文件
- word-wrap:break-word和word-break:break-all的小小比较
个人感觉word-break:break-all;的用法比word-wrap:break-word;要好点, 当然这是出于某些需求而言,下面简单说下word-break:break-all的优点 wo ...
- rel="stylesheet" 描述
<link type="text/css" rel="stylesheet" href="css/style.css"/> re ...