G2500_LPC11U35早見表
2025年11月15日
6:16
G2500_lpc11u35_quick_reference_table
各ページのプロジェクトを保存して公開することは、煩雑で不正確になることから、定型コードを早見表として保存し、自身の開発効率のアップをねらいます
複数のプロジェクトを同時にインポートする

ヘッダーファイル
#include "LPC11Uxx.h"
#include "\LPC\LPC11U35\U35_KYO\type.h"
#include <stdlib.h> // atoi()活用のため
#include <string.h> // atoi()活用のため
#include "\LPC\LPC11U35\U35_KYO\uart_LPC11U35.h"
#include "\LPC\LPC11U35\U35_KYO\i2c_LPC11U35.h"
#include "\LPC\LPC11U35\U35_KYO\adc_LPC11U35.h"
#include "\LPC\LPC11U35\U35_KYO\ssp_LPC11U35.h"
#include "\LPC\LPC11U35\U35_KYO\lpc11u35_kyo.h"
#include "\LPC\lpc_kyo.h"
#include <cr_section_macros.h>
#include <NXP/crp.h>
//__CRP const unsigned int CRP_WORD = CRP_NO_CRP;
////////////////////////////////////////////////
// ここに、グローバル変数を定義します
//volatile uint8_t CS_pin = 0;
// volatile は調査継続中、おまじない程度
////////////////////////////////////////////////
待機タイマーを使うときの共通関数
// インターバル割り込み関数を msec 待ち時間関数に活用しています
void SysTick_Handler(void)
{
if(--Goma_msec_wait_cnt == 0)
{ NVIC_DisableIRQ(SysTick_IRQn); // 割り込み無効
}
}
main() 関数の定型文
int main(void)
{
// シリアル通信の受信データ
uint8_t rcv_buf_max = 40;
char rcv_buf[40+2];
uint8_t rcv_cnt = 0;
uint8_t led_pin = 1; // 1番ピンをLEDモニタとします
pin_set_output(led_pin); // LEDモニタピンを出力に設定します
SystemCoreClockUpdate(); // システムクロックを初期化します
UART_Configuration(115200); // (1) UARTの初期化(通信速度9600bps)
UART_puts("LPC11U35 THERMAL HOT\r\n");
I2C通信の初期化
LPC_i2c_init(); // I2C初期化
速度計測の基本処理
// 命令の処理時間を計測するための自動変数です
uint32_t loop_cnt = 0; // カウンター変数
uint32_t loop_cnt_max = 0;// 最大値追加
uint8_t loop_stop_cnt = 99; // 送信オーバーフロー防止カウンター
while(1)
{
// 送信オーバーフロー防止のため、停止カウンター処理を追加します
if(loop_stop_cnt < 5)
{
++loop_cnt;
if(loop_cnt_max < loop_cnt)
{ // 指示された回数ループしました
UART_msg_dec("max=",loop_cnt_max,"\r\n");
loop_cnt = 0;
++loop_stop_cnt; // 計測回数制限のための加算
}
// 速度計測
}
シリアル通信のコマンド処理の定型文
while(1)
{
// コマンド受信
if(UART_rcv_buf_get(rcv_buf,&rcv_cnt,rcv_buf_max) == 0) continue;
// 受信をLEDで確認する
pin_out(led_pin,0,'m',300); pin_out(led_pin,1,'m',0);
if(rcv_buf[0] == 's' || rcv_buf[0] =='S') // 反応するI2Cアドレス調査
{
LPC_i2c_add_all_chk();
}
if(rcv_buf[0] == 'a' || rcv_buf[0] == 'A')
{
// ループ速度の計測指示を処理します
// 9桁制限があります
loop_cnt_max = cha_dec_to_int(rcv_buf,1,9);
loop_cnt = 0;
loop_stop_cnt = 0; // 停止カウンターを初期化することでスタートさせます
UART_msg_dec("start cnt_max=",loop_cnt_max,"\r\n");
}
if(rcv_buf[0] == 'B' || rcv_buf[0] =='b')
{
}
if(rcv_buf[0] == 'c' || rcv_buf[0] =='C')
{
}
if(rcv_buf[0] == 'd' || rcv_buf[0] =='D')
{
// 内蔵AD変換の実験をします
// コマンド解析
// 0123456
// D0
ch = cha_dec_to_int(rcv_buf,1,1);
ad_dat = Get_ADC_Data(ch);
UART_puts("Bilt-in AD CH=");
UART_putdec(ch);
UART_puts(" DAT=");
UART_putdec(ad_dat);
UART_puts("\r\n");
}
if(rcv_buf[0] == 'T' || rcv_buf[0] == 't')
{
// 時計登録 TyyyymmddHHMMWW
//rcv_buf_to_cal_tbl(rcv_buf,cal_tbl);
//err = ds1307_cal_wrt(cal_tbl);
//if(err != 0) UART_msg_dec("I2C_ERR=",err,"\r\n");
}
if(rcv_buf[0] == 'z' || rcv_buf[0] == 'Z')
{
}
UART_rcv_buf_clr(rcv_buf,&rcv_cnt); // 受信コマンド初期化
} // while()