NRF52832笔记(13)软件模拟spi 4种模式
发布日期:2021-06-29 05:35:42 浏览次数:2 分类:技术文章

本文共 2154 字,大约阅读时间需要 7 分钟。

在这里插入图片描述

2 .h文件

#define SET_GPIO(A)   NRF_GPIO->OUTSET = (1UL << (A)) #define CLEAR_GPIO(A) NRF_GPIO->OUTCLR = (1UL << (A))#define READ_GPIO(A)   NRF_GPIO->IN&(1<<(A))#define OUTPUT_GPIO(A) nrf_gpio_cfg_output(A)#define INPUT_GPIO(A) nrf_gpio_cfg_input(A,NRF_GPIO_PIN_NOPULL)

2 .c文件

static void hal_spi_init (void) {
OUTPUT_GPIO(LORA_NSS_PIN); OUTPUT_GPIO(LORA_SCK_PIN); OUTPUT_GPIO(LORA_MOSI_PIN); INPUT_GPIO(LORA_MISO_PIN); OUTPUT_GPIO(LORA_NRST_PIN); INPUT_GPIO(LORA_BUSY_PIN); CLEAR_GPIO(LORA_SCK_PIN);}void hal_spi_select (int on){
if(on==0){
SET_GPIO(LORA_NSS_PIN);}else{
CLEAR_GPIO(LORA_NSS_PIN);}}// perform SPI transaction with radiou1_t hal_spi (u1_t out) {
#define CPHA 0 #define CPOL 0 u1_t dataValue=0,i,wr_data;; wr_data=out; #if CPHA==0 && CPOL ==0 for(i=0;i<8;i++)//以MSB方式按位接收一个字节数据,上升沿一位数据被存入移位寄存器 {
if(wr_data&0x80) {
SET_GPIO(LORA_MOSI_PIN) ; }else {
CLEAR_GPIO(LORA_MOSI_PIN); } SET_GPIO(LORA_SCK_PIN); wr_data<<=1; dataValue<<=1; if(READ_GPIO(LORA_MISO_PIN)) dataValue|=0x01; CLEAR_GPIO(LORA_SCK_PIN); __NOP(); } #elif #if CPHA==0 && CPOL ==1 for(i=0;i<8;i++)//以MSB方式按位接收一个字节数据,上升沿一位数据被存入移位寄存器 {
if(wr_data&0x80) {
SET_GPIO(LORA_MOSI_PIN) ; }else {
CLEAR_GPIO(LORA_MOSI_PIN); } CLEAR_GPIO(LORA_SCK_PIN); wr_data<<=1; dataValue<<=1; if(READ_GPIO(LORA_MISO_PIN)) dataValue|=0x01; SET_GPIO(LORA_SCK_PIN); __NOP(); } #elif #if CPHA==1 && CPOL ==0 for(i=0;i<8;i++)//以MSB方式按位接收一个字节数据,上升沿一位数据被存入移位寄存器 {
SET_GPIO(LORA_SCK_PIN); if(wr_data&0x80) {
SET_GPIO(LORA_MOSI_PIN) ; }else {
CLEAR_GPIO(LORA_MOSI_PIN); } CLEAR_GPIO(LORA_SCK_PIN); wr_data<<=1; dataValue<<=1; if(READ_GPIO(LORA_MISO_PIN)) dataValue|=0x01; } #elif #if CPHA==1 && CPOL ==1 for(i=0;i<8;i++)//以MSB方式按位接收一个字节数据,上升沿一位数据被存入移位寄存器 {
CLEAR_GPIO(LORA_SCK_PIN); if(wr_data&0x80) {
SET_GPIO(LORA_MOSI_PIN) ; }else {
CLEAR_GPIO(LORA_MOSI_PIN); } SET_GPIO(LORA_SCK_PIN); wr_data<<=1; dataValue<<=1; if(READ_GPIO(LORA_MISO_PIN)) dataValue|=0x01; } #endif return dataValue;}

可以加入QQ群:687360507

与大伙沟通交流,技术在于分享而进步

转载地址:https://blog.csdn.net/zhi_Alanwu/article/details/105560977 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:NRF52832笔记(14) 软件模拟I2C
下一篇:c 语言面试题(二)

发表评论

最新留言

关注你微信了!
[***.104.42.241]2024年04月23日 23时34分01秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

攻防对抗蓝队必修课——文末有文档模板分享 2019-04-29
云计算领域的安全威胁如何应对? 2019-04-29
你了解三证合一的数据保护官(DPO)吗? 2019-04-29
小白入门网络安全,需要学习哪些内容? 2019-04-29
如何找回丢失的比特币 2019-04-29
日本交易所Zaif因黑客攻击损失近6000万美元 2019-04-29
以太坊智能合约如何运作? 2019-04-29
赛迪全球公链指数第5期名单:EOS、ETH排名不变 比特股首进前3 2019-04-29
能依靠0.21个比特币生存21天吗 2019-04-29
比特币核心发现网络漏洞CVE-2018-17144 社区敦促所有节点尽快升级补丁 2019-04-29
泰达币对比特币价格的影响不具有统计意义 2019-04-29
Atitit nlp自然语言处理类库(java python nodejs c#net) 目录 1.1. Python snownlp 1 1.2. NLP.js一个nodejs/javascri 2019-04-29
Atitit nlp用到的技术与功能自然语言处理 v3 t99.docx Atitit nlp用到的技术与常见类库 目录 1. 常用的技术 1 1.1. 语言处理基础技术 分词 相似度等 1 1.2 2019-04-29
Atitit 2000drmmr v2 t05.docx Atitit 2000drmmr v1 t99 2000.1.26 hs,yweywe jla n dashw ner kl .na ni 2019-04-29
常见方案 目录 1. 发现目前 WEB 上主流的视频直播方案有 HLS 和 RTMP, 1 2. 实现直播的方法有很多,但是常用的,就这几个。 3个直播协议:rtmp、rtsp、hls。 和三个端: 2019-04-29
Atitit 直播问题总结ffmpeg 目录 1.1. 屏幕太大,可以使用-s调整分辨率 1 1.2. Full size 1 1.3. 流畅度调整 1 2. 1 2.1. 没有录音 1 2.2. 2019-04-29
paip.索引优化---sql distict—order by 法 2019-04-29
paip.输入法编程---带ord gudin去重复- 2019-04-29
paip.输入法编程---增加码表类型 2019-04-29
paip.提升性能--- mysql 建立索引 删除索引 很慢的解决. 2019-04-29