在线时间1465 小时
UID2037623
注册时间2013-8-30
NXP金币0
TA的每日心情 | 开心 2021-12-10 16:14 |
---|
签到天数: 1442 天 连续签到: 1 天 [LV.10]以坛为家III
金牌会员
 
- 积分
- 8291
- 最后登录
- 2021-12-10
|
FRDM-KL05Z 在 MBED 环境下并没有 SPI 的例程,但是 MBED 基本上在不同 MCU 之间的语法应该是差不多的,因此我拿了先前在别的板子上运行过的程序在 FRDM-KL05Z 上运行看看,将板子的 SPI 信号连接到使用 MAX7219 驱动的 8x8 点阵板,连接的方式如下:
PTA7(MOSI) -> DIN
PTB0(SCK) -> CLK
PTA5 -> CS
修改 SPI 函数对管脚的定义:
SPI spimax(PTA7, PTA6, PTB0);
程序如下:
- #include "mbed.h"
- const char sprite[8] = {
- 0xFF,
- 0x81,
- 0x81,
- 0x81,
- 0x81,
- 0x81,
- 0x81,
- 0xFF
- };
- SPI spimax(PTA7, PTA6, PTB0);
- DigitalOut CS(PTA5);
- void max7219(char reg,char dta)
- {
- CS = 0;
- spimax.write(reg);
- spimax.write(dta);
- CS = 1;
- }
- int main()
- {
- max7219(0x09,0);
- max7219(0x0a,8);
- max7219(0x0b,7);
- max7219(0x0c,1);
- max7219(0x0f,0);
- for(char j=0; j<8; j++) {
- max7219(j+1,sprite[j]);
- }
- while(1) {
- }
- }
复制代码
运行结果如下,程序是可以正常运行的。
修改程序,while 回圈里面2张图循环显示,看看 FRDM-KL05Z 在 MBED 编程下心动的感觉。
- #include "mbed.h"
- const char sprite[][8] = {
- 0x00, 0x00, 0x14, 0x3e, 0x3e, 0x1c, 0x08, 0x00 ,
- 0x00, 0x66, 0xff, 0xff, 0xff, 0x7e, 0x3c, 0x18
- };
- SPI spimax(PTA7, PTA6, PTB0);
- DigitalOut CS(PTA5);
- void max7219(char reg,char dta)
- {
- CS = 0;
- spimax.write(reg);
- spimax.write(dta);
- CS = 1;
- }
- int main()
- {
- max7219(0x09,0);
- max7219(0x0a,8);
- max7219(0x0b,7);
- max7219(0x0c,1);
- max7219(0x0f,0);
- while(1) {
- for(char i=0; i<2 ;i++) {
- for(char j=0; j<8; j++) {
- max7219(j+1,sprite[i][j]);
- }
- wait_ms(200);
- }
- }
- }
复制代码
演示视频
https://v.youku.com/v_show/id_XOTQyOTMwNzQw.html
看看这个程序使用了多少空间:
建立 FRDM-KL05Z 在 MBED 环境下开发的过程
https://www.nxpic.org.cn/module/forum/thread-598659-1-1.html
|
|