久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
STC8A8K64S4A12單片機驅動nRF24L01發送/接收/半雙工收發
[打印本頁]
作者:
michaelchain
時間:
2021-11-13 16:36
標題:
STC8A8K64S4A12單片機驅動nRF24L01發送/接收/半雙工收發
連線方式如代碼注釋所示. 基于STC12的nRF24L01代碼修改. 通過修改CURRENT_SCEN的值可以切換發送, 接收和發送接收半雙工方式
寄存器初始化方法使用python工具生成, 工具地址
https://github.com/IOsetting/stcmx
main.c
/*****************************************************************************/
/**
* \file spi_nrf24l01_tx.c
* \brief Example code of SPI driving NRF24L01 module in all scenarios
* \note Pin connection:
* P12(SS, Ignored) => CSN,
* P13(MOSI) => MOSI,
* P14(MISO) => MISO,
* P15(SPCLK) => CLK,
* P32(INT0) => IRQ,
* P37(IO) => CE,
*
* \version v0.1
* \ingroup example
* \remarks test-board: Minimum System; test-MCU: STC8A8K64S4A12
* In my test STC12 cannot achive the best performance of nRF24L01,
* you have to put 20~40ms delay betwen each sending, or error rate
* will increase dramatically.
******************************************************************************/
#include "stc8a.h"
#include "uart.h"
#include "nrf24l01.h"
#include "util.h"
#include "spi.h"
const NRF24_SCEN CURRENT_SCEN = NRF24_SCEN_HALF_DUPLEX;
extern uint8_t idata xbuf[NRF24_PLOAD_WIDTH + 1];
void clock_init()
{
// [ BAH,0,0x00]: 外設端口切換控制寄存器2,串口2/3/4,I2C,比較器
P_SW2 = 0x80;
// [FE01H,1,0x00]: 時鐘分頻寄存器,ISP可能寫入預設值
CLKDIV = 0x00;
// [ 9FH,0,0x00]: IRC頻率調整寄存器, ISP可能寫入預設值, 0x75:24MHz
IRTRIM = 0x75;
// [ 9EH,0,0x00]: IRC頻率微調寄存器, ISP可能寫入預設值
LIRTRIM = 0x00;
// [ BAH,0,0x00]: 外設端口切換控制寄存器2,串口2/3/4,I2C,比較器
P_SW2 = 0x00;
}
void timer_init()
{
// [ D6H,0,0x00]: 定時器2高字節
T2H = 0xFF;
// [ D7H,0,0x00]: 定時器2低字節
T2L = 0xCB;
// [ 87H,0,0x30]: 電源控制寄存器
PCON = 0xB0;
// [ 8EH,0,0x01]: 輔助寄存器
AUXR = 0x15;
}
void uart_init()
{
// [ 98H,0,0x00]: 串口1控制寄存器
SCON = 0x50;
// [ 87H,0,0x30]: 電源控制寄存器
PCON = 0xB0;
// [ 8EH,0,0x01]: 輔助寄存器
AUXR = 0x15;
}
void spi_init()
{
// [ CEH,0,0x00]: SPI控制
SPCTL = 0xD0;
}
void int_init()
{
IT0 = 1; // 低電平觸發
EX0 = 1; // 使能INT0中斷
EA = 1; // 使能全局中斷
}
INTERRUPT(int0_isr, 0)
{
NRF24L01_handelIrqFlag(xbuf);
}
void main(void)
{
uint8_t sta;
uint8_t code tmp[] = {
0x1F, 0x80, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18,
0x21, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x28,
0x31, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x38,
0x41, 0x12, 0x13, 0x14, 0x15, 0x16, 0x37, 0x48};
clock_init();
timer_init();
uart_init();
PrintString("UART Initialized\r\n");
spi_init();
PrintString("SPI Initialized\r\n");
while (NRF24L01_check() == 1)
{
PrintString("Check failed\r\n");
Delay1000ms();
}
PrintString("NRF24L01 Checked\r\n");
switch (CURRENT_SCEN)
{
case NRF24_SCEN_TX:
NRF24L01_init(NRF24_MODE_TX);
PrintString("NRF24L01 Initialized\r\n");
//int_init();
while (1)
{
if (NRF24L01_writeFast(tmp) == 0)
{
PrintChar('E');
}
else
{
PrintChar('.');
}
Delay30ms();
}
break;
case NRF24_SCEN_RX:
NRF24L01_init(NRF24_MODE_RX);
int_init();
while(1);
break;
case NRF24_SCEN_HALF_DUPLEX:
NRF24L01_init(NRF24_MODE_RX);
int_init();
while (1)
{
NRF24L01_tx(tmp);
Delay1000ms();
}
break;
default:
PrintString("Unknown scen\r\n");
break;
}
}
復制代碼
51hei.png
(7.05 KB, 下載次數: 49)
下載附件
2021-11-13 16:55 上傳
完整Keil代碼下載:
stc8a8k64s4_test02.zip
(17 KB, 下載次數: 28)
2021-11-13 16:33 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
h片在线观看免费
|
免费久久精品视频
|
九九热在线观看视频
|
精品国产免费人成在线观看
|
国产在线二区
|
亚洲国产高清在线观看
|
欧美三级视频
|
一级做a爰片性色毛片16美国
|
久久aⅴ乱码一区二区三区 亚洲欧美综合精品另类天天更新
|
中文字幕亚洲视频
|
成人在线中文字幕
|
天堂色
|
精品一区二区三区中文字幕
|
久久久做
|
中文字幕精品视频
|
91精品国产乱码麻豆白嫩
|
精品国产一区二区三区日日嗨
|
99久久精品一区二区成人
|
免费一区二区三区
|
一区二区福利视频
|
国产精品99久久免费观看
|
日本一道本
|
九九热在线观看
|
国产www.
|
www.久久.com
|
av中文在线
|
91在线视频观看
|
天天久
|
国产乱码精品一区二区三区五月婷
|
亚州毛片
|
成人一区二区三区在线观看
|
99精品国产一区二区三区
|
羞羞视频在线观看
|
黄色播放
|
综合久久av
|
欧美日本一区二区
|
黄色一级大片在线免费看产
|
99re视频这里只有精品
|
久热国产精品视频
|
亚洲精品自在在线观看
|
国产成人精品一区二区
|